diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index f28239b..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,4 +0,0 @@
-root = true
-
-[*]
-charset = utf-8
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 8ad74f7..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-# Normalize EOL for all files that Git considers text files.
-* text=auto eol=lf
diff --git a/LICENSE b/LICENSE
index 8ff9a07..cb9c905 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2025 Persephone (KawaiiZenbo) Bubblegum-Holiday
+Copyright (c) 2025 kawaiizenbo
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
diff --git a/Models/3-Stage/3stHelen.glb b/Models/3-Stage/3stHelen.glb
deleted file mode 100644
index a2bdb2f..0000000
Binary files a/Models/3-Stage/3stHelen.glb and /dev/null differ
diff --git a/Models/3-Stage/3stHelen_cheer dress.png b/Models/3-Stage/3stHelen_cheer dress.png
deleted file mode 100644
index 5ecb4bf..0000000
Binary files a/Models/3-Stage/3stHelen_cheer dress.png and /dev/null differ
diff --git a/Models/3-Stage/3stHelen_cheer dress.png.import b/Models/3-Stage/3stHelen_cheer dress.png.import
deleted file mode 100644
index 040e12e..0000000
--- a/Models/3-Stage/3stHelen_cheer dress.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://c78fctfafkuon"
-path.s3tc="res://.godot/imported/3stHelen_cheer dress.png-c2a1c708bd40884f6dbb3748c5660c8c.s3tc.ctex"
-path.etc2="res://.godot/imported/3stHelen_cheer dress.png-c2a1c708bd40884f6dbb3748c5660c8c.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "7cedb51b071905707d033e23c77584cb"
-}
-
-[deps]
-
-source_file="res://Models/3-Stage/3stHelen_cheer dress.png"
-dest_files=["res://.godot/imported/3stHelen_cheer dress.png-c2a1c708bd40884f6dbb3748c5660c8c.s3tc.ctex", "res://.godot/imported/3stHelen_cheer dress.png-c2a1c708bd40884f6dbb3748c5660c8c.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/3-Stage/3stHelen_fur.png b/Models/3-Stage/3stHelen_fur.png
deleted file mode 100644
index b3c53a5..0000000
Binary files a/Models/3-Stage/3stHelen_fur.png and /dev/null differ
diff --git a/Models/3-Stage/3stHelen_fur.png.import b/Models/3-Stage/3stHelen_fur.png.import
deleted file mode 100644
index 5fc31ff..0000000
--- a/Models/3-Stage/3stHelen_fur.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dtd42wohdk5nf"
-path.s3tc="res://.godot/imported/3stHelen_fur.png-9bde7d93521e058da6cc6f8f43774856.s3tc.ctex"
-path.etc2="res://.godot/imported/3stHelen_fur.png-9bde7d93521e058da6cc6f8f43774856.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "d622cd261604f2451fe93281e2085d70"
-}
-
-[deps]
-
-source_file="res://Models/3-Stage/3stHelen_fur.png"
-dest_files=["res://.godot/imported/3stHelen_fur.png-9bde7d93521e058da6cc6f8f43774856.s3tc.ctex", "res://.godot/imported/3stHelen_fur.png-9bde7d93521e058da6cc6f8f43774856.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/3-Stage/3stHelen_hair.png b/Models/3-Stage/3stHelen_hair.png
deleted file mode 100644
index 56bd6e2..0000000
Binary files a/Models/3-Stage/3stHelen_hair.png and /dev/null differ
diff --git a/Models/3-Stage/3stHelen_hair.png.import b/Models/3-Stage/3stHelen_hair.png.import
deleted file mode 100644
index d34e5f2..0000000
--- a/Models/3-Stage/3stHelen_hair.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://b3264mrednlbd"
-path.s3tc="res://.godot/imported/3stHelen_hair.png-0b37fd8e5c162c865cb4a11d468dd921.s3tc.ctex"
-path.etc2="res://.godot/imported/3stHelen_hair.png-0b37fd8e5c162c865cb4a11d468dd921.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "35bb2072abe8c8e39214dcb47ee5fc3a"
-}
-
-[deps]
-
-source_file="res://Models/3-Stage/3stHelen_hair.png"
-dest_files=["res://.godot/imported/3stHelen_hair.png-0b37fd8e5c162c865cb4a11d468dd921.s3tc.ctex", "res://.godot/imported/3stHelen_hair.png-0b37fd8e5c162c865cb4a11d468dd921.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/3stHelen.glb b/Models/3stHelen.glb
new file mode 100644
index 0000000..06ed7ec
Binary files /dev/null and b/Models/3stHelen.glb differ
diff --git a/Models/3-Stage/3stHelen.glb.import b/Models/3stHelen.glb.import
similarity index 76%
rename from Models/3-Stage/3stHelen.glb.import
rename to Models/3stHelen.glb.import
index 29ea8c8..1daebe8 100644
--- a/Models/3-Stage/3stHelen.glb.import
+++ b/Models/3stHelen.glb.import
@@ -4,12 +4,12 @@ importer="scene"
importer_version=1
type="PackedScene"
uid="uid://f0fkcs7erhop"
-path="res://.godot/imported/3stHelen.glb-09c973ef19734a7d77b0f363ef6fade1.scn"
+path="res://.godot/imported/3stHelen.glb-c3541fdb7863c3136dcc986fabbb06be.scn"
[deps]
-source_file="res://Models/3-Stage/3stHelen.glb"
-dest_files=["res://.godot/imported/3stHelen.glb-09c973ef19734a7d77b0f363ef6fade1.scn"]
+source_file="res://Models/3stHelen.glb"
+dest_files=["res://.godot/imported/3stHelen.glb-c3541fdb7863c3136dcc986fabbb06be.scn"]
[params]
diff --git a/Models/3-Stage/3stHelen_beak.png b/Models/3stHelen_beak.png
similarity index 100%
rename from Models/3-Stage/3stHelen_beak.png
rename to Models/3stHelen_beak.png
diff --git a/Models/3-Stage/3stHelen_beak.png.import b/Models/3stHelen_beak.png.import
similarity index 56%
rename from Models/3-Stage/3stHelen_beak.png.import
rename to Models/3stHelen_beak.png.import
index 8788f58..c7dc48c 100644
--- a/Models/3-Stage/3stHelen_beak.png.import
+++ b/Models/3stHelen_beak.png.import
@@ -3,10 +3,9 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bprmuf7jpffy3"
-path.s3tc="res://.godot/imported/3stHelen_beak.png-093e64b7512180691d5a4d9b4796c163.s3tc.ctex"
-path.etc2="res://.godot/imported/3stHelen_beak.png-093e64b7512180691d5a4d9b4796c163.etc2.ctex"
+path.s3tc="res://.godot/imported/3stHelen_beak.png-da72f62ca7ac7e5bf5593b4d1be3a7ee.s3tc.ctex"
metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
@@ -15,8 +14,8 @@ generator_parameters={
[deps]
-source_file="res://Models/3-Stage/3stHelen_beak.png"
-dest_files=["res://.godot/imported/3stHelen_beak.png-093e64b7512180691d5a4d9b4796c163.s3tc.ctex", "res://.godot/imported/3stHelen_beak.png-093e64b7512180691d5a4d9b4796c163.etc2.ctex"]
+source_file="res://Models/3stHelen_beak.png"
+dest_files=["res://.godot/imported/3stHelen_beak.png-da72f62ca7ac7e5bf5593b4d1be3a7ee.s3tc.ctex"]
[params]
diff --git a/Models/3-Stage/3stHelen_shoes.png b/Models/3stHelen_shoes.png
similarity index 100%
rename from Models/3-Stage/3stHelen_shoes.png
rename to Models/3stHelen_shoes.png
diff --git a/Models/3-Stage/3stHelen_shoes.png.import b/Models/3stHelen_shoes.png.import
similarity index 56%
rename from Models/3-Stage/3stHelen_shoes.png.import
rename to Models/3stHelen_shoes.png.import
index ade3f95..7fa6728 100644
--- a/Models/3-Stage/3stHelen_shoes.png.import
+++ b/Models/3stHelen_shoes.png.import
@@ -3,10 +3,9 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cm8h5o5urcvym"
-path.s3tc="res://.godot/imported/3stHelen_shoes.png-61154e88a8b3c30e2bfb4db457818ce0.s3tc.ctex"
-path.etc2="res://.godot/imported/3stHelen_shoes.png-61154e88a8b3c30e2bfb4db457818ce0.etc2.ctex"
+path.s3tc="res://.godot/imported/3stHelen_shoes.png-97c060c3fc3442bff6f75c94bc90506a.s3tc.ctex"
metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
@@ -15,8 +14,8 @@ generator_parameters={
[deps]
-source_file="res://Models/3-Stage/3stHelen_shoes.png"
-dest_files=["res://.godot/imported/3stHelen_shoes.png-61154e88a8b3c30e2bfb4db457818ce0.s3tc.ctex", "res://.godot/imported/3stHelen_shoes.png-61154e88a8b3c30e2bfb4db457818ce0.etc2.ctex"]
+source_file="res://Models/3stHelen_shoes.png"
+dest_files=["res://.godot/imported/3stHelen_shoes.png-97c060c3fc3442bff6f75c94bc90506a.s3tc.ctex"]
[params]
diff --git a/Models/Balcony/BalconyStage.glb b/Models/Balcony/BalconyStage.glb
deleted file mode 100644
index 4d14ed5..0000000
Binary files a/Models/Balcony/BalconyStage.glb and /dev/null differ
diff --git a/Models/Balcony/BalconyStage_prankbg.png b/Models/Balcony/BalconyStage_prankbg.png
deleted file mode 100644
index 10e3109..0000000
Binary files a/Models/Balcony/BalconyStage_prankbg.png and /dev/null differ
diff --git a/Models/Balcony/BalconyStage_prankbg.png.import b/Models/Balcony/BalconyStage_prankbg.png.import
deleted file mode 100644
index f900444..0000000
--- a/Models/Balcony/BalconyStage_prankbg.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cm643d4g33g6h"
-path.s3tc="res://.godot/imported/BalconyStage_prankbg.png-be741b0faaf56dcb0bfe2448a6e85e19.s3tc.ctex"
-path.etc2="res://.godot/imported/BalconyStage_prankbg.png-be741b0faaf56dcb0bfe2448a6e85e19.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "437ade1d165b37a51e8dde9c8e10394d"
-}
-
-[deps]
-
-source_file="res://Models/Balcony/BalconyStage_prankbg.png"
-dest_files=["res://.godot/imported/BalconyStage_prankbg.png-be741b0faaf56dcb0bfe2448a6e85e19.s3tc.ctex", "res://.godot/imported/BalconyStage_prankbg.png-be741b0faaf56dcb0bfe2448a6e85e19.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Warblettes.glb.import b/Models/Chuck.fbx.import
similarity index 64%
rename from Models/Cyberamics/Warblettes.glb.import
rename to Models/Chuck.fbx.import
index 598bb73..fee6fc1 100644
--- a/Models/Cyberamics/Warblettes.glb.import
+++ b/Models/Chuck.fbx.import
@@ -3,13 +3,13 @@
importer="scene"
importer_version=1
type="PackedScene"
-uid="uid://dmh5upwts8y11"
-path="res://.godot/imported/Warblettes.glb-4411a6da11355afeccccd99ded899996.scn"
+uid="uid://cs0va7jp6fjfa"
+path="res://.godot/imported/Chuck.fbx-e0f76e66bd2d66a68bf43edbd8d1d948.scn"
[deps]
-source_file="res://Models/Cyberamics/Warblettes.glb"
-dest_files=["res://.godot/imported/Warblettes.glb-4411a6da11355afeccccd99ded899996.scn"]
+source_file="res://3-Stage/Models/Chuck.fbx"
+dest_files=["res://.godot/imported/Chuck.fbx-e0f76e66bd2d66a68bf43edbd8d1d948.scn"]
[params]
@@ -28,10 +28,11 @@ meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
-animation/trimming=false
+animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
-gltf/naming_version=1
-gltf/embedded_image_handling=1
+fbx/importer=0
+fbx/allow_geometry_helper_nodes=false
+fbx/embedded_image_handling=1
diff --git a/Models/ChuckEsCorner/ChuckEsCornerStage.glb b/Models/ChuckEsCorner/ChuckEsCornerStage.glb
deleted file mode 100644
index 4b206e4..0000000
Binary files a/Models/ChuckEsCorner/ChuckEsCornerStage.glb and /dev/null differ
diff --git a/Models/ChuckEsCorner/ChuckEsCornerStage.glb.import b/Models/ChuckEsCorner/ChuckEsCornerStage.glb.import
deleted file mode 100644
index 94fd5f3..0000000
--- a/Models/ChuckEsCorner/ChuckEsCornerStage.glb.import
+++ /dev/null
@@ -1,37 +0,0 @@
-[remap]
-
-importer="scene"
-importer_version=1
-type="PackedScene"
-uid="uid://bv66hlbvtekho"
-path="res://.godot/imported/ChuckEsCornerStage.glb-972590d495adda7be8c93e6d0989aa24.scn"
-
-[deps]
-
-source_file="res://Models/ChuckEsCorner/ChuckEsCornerStage.glb"
-dest_files=["res://.godot/imported/ChuckEsCornerStage.glb-972590d495adda7be8c93e6d0989aa24.scn"]
-
-[params]
-
-nodes/root_type=""
-nodes/root_name=""
-nodes/apply_root_scale=true
-nodes/root_scale=1.0
-nodes/import_as_skeleton_bones=false
-nodes/use_node_type_suffixes=true
-meshes/ensure_tangents=true
-meshes/generate_lods=true
-meshes/create_shadow_meshes=true
-meshes/light_baking=1
-meshes/lightmap_texel_size=0.2
-meshes/force_disable_compression=false
-skins/use_named_skins=true
-animation/import=true
-animation/fps=30
-animation/trimming=false
-animation/remove_immutable_tracks=true
-animation/import_rest_as_RESET=false
-import_script/path=""
-_subresources={}
-gltf/naming_version=1
-gltf/embedded_image_handling=1
diff --git a/Models/ChuckEsCorner/ChuckEsCornerStage_Chuck_Es_Corner_1.png b/Models/ChuckEsCorner/ChuckEsCornerStage_Chuck_Es_Corner_1.png
deleted file mode 100644
index 7cc6469..0000000
Binary files a/Models/ChuckEsCorner/ChuckEsCornerStage_Chuck_Es_Corner_1.png and /dev/null differ
diff --git a/Models/ChuckEsCorner/ChuckEsCornerStage_Chuck_Es_Corner_1.png.import b/Models/ChuckEsCorner/ChuckEsCornerStage_Chuck_Es_Corner_1.png.import
deleted file mode 100644
index 814f541..0000000
--- a/Models/ChuckEsCorner/ChuckEsCornerStage_Chuck_Es_Corner_1.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://buqvxu4n8q6qc"
-path.s3tc="res://.godot/imported/ChuckEsCornerStage_Chuck_Es_Corner_1.png-df2de8b158e2601de4629961436b760a.s3tc.ctex"
-path.etc2="res://.godot/imported/ChuckEsCornerStage_Chuck_Es_Corner_1.png-df2de8b158e2601de4629961436b760a.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "91cacf7bfdf049e3b957402daac9df21"
-}
-
-[deps]
-
-source_file="res://Models/ChuckEsCorner/ChuckEsCornerStage_Chuck_Es_Corner_1.png"
-dest_files=["res://.godot/imported/ChuckEsCornerStage_Chuck_Es_Corner_1.png-df2de8b158e2601de4629961436b760a.s3tc.ctex", "res://.godot/imported/ChuckEsCornerStage_Chuck_Es_Corner_1.png-df2de8b158e2601de4629961436b760a.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/ChuckEsCorner/data.bin b/Models/ChuckEsCorner/data.bin
deleted file mode 100644
index d8a7f6a..0000000
Binary files a/Models/ChuckEsCorner/data.bin and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Helen.glb b/Models/Cyberamics/Cyber Helen.glb
deleted file mode 100644
index c58dd1f..0000000
Binary files a/Models/Cyberamics/Cyber Helen.glb and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Helen_beak.png b/Models/Cyberamics/Cyber Helen_beak.png
deleted file mode 100644
index 7b16303..0000000
Binary files a/Models/Cyberamics/Cyber Helen_beak.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Helen_beak.png.import b/Models/Cyberamics/Cyber Helen_beak.png.import
deleted file mode 100644
index 400ab2a..0000000
--- a/Models/Cyberamics/Cyber Helen_beak.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dt2k7wwpcttwx"
-path.s3tc="res://.godot/imported/Cyber Helen_beak.png-dafc891d002e04d99d222183d0d236ea.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Helen_beak.png-dafc891d002e04d99d222183d0d236ea.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "660d81a1bf46d22fbda7523d081ce944"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Helen_beak.png"
-dest_files=["res://.godot/imported/Cyber Helen_beak.png-dafc891d002e04d99d222183d0d236ea.s3tc.ctex", "res://.godot/imported/Cyber Helen_beak.png-dafc891d002e04d99d222183d0d236ea.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyber Helen_eyes.png b/Models/Cyberamics/Cyber Helen_eyes.png
deleted file mode 100644
index 6b69d6d..0000000
Binary files a/Models/Cyberamics/Cyber Helen_eyes.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Helen_eyes.png.import b/Models/Cyberamics/Cyber Helen_eyes.png.import
deleted file mode 100644
index 7f8cc01..0000000
--- a/Models/Cyberamics/Cyber Helen_eyes.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://u6c8i8hmf55l"
-path.s3tc="res://.godot/imported/Cyber Helen_eyes.png-c8e727972f281835cc003dd052d0e371.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Helen_eyes.png-c8e727972f281835cc003dd052d0e371.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "f3d293a05f8484be8751f38e0651eb91"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Helen_eyes.png"
-dest_files=["res://.godot/imported/Cyber Helen_eyes.png-c8e727972f281835cc003dd052d0e371.s3tc.ctex", "res://.godot/imported/Cyber Helen_eyes.png-c8e727972f281835cc003dd052d0e371.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyber Helen_fur.png b/Models/Cyberamics/Cyber Helen_fur.png
deleted file mode 100644
index b3c53a5..0000000
Binary files a/Models/Cyberamics/Cyber Helen_fur.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Helen_fur.png.import b/Models/Cyberamics/Cyber Helen_fur.png.import
deleted file mode 100644
index b2c4a7c..0000000
--- a/Models/Cyberamics/Cyber Helen_fur.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://b874br054h4u6"
-path.s3tc="res://.godot/imported/Cyber Helen_fur.png-25e5870ed95edb351ef0f52eda54dda5.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Helen_fur.png-25e5870ed95edb351ef0f52eda54dda5.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "d622cd261604f2451fe93281e2085d70"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Helen_fur.png"
-dest_files=["res://.godot/imported/Cyber Helen_fur.png-25e5870ed95edb351ef0f52eda54dda5.s3tc.ctex", "res://.godot/imported/Cyber Helen_fur.png-25e5870ed95edb351ef0f52eda54dda5.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyber Helen_hair.png b/Models/Cyberamics/Cyber Helen_hair.png
deleted file mode 100644
index 56bd6e2..0000000
Binary files a/Models/Cyberamics/Cyber Helen_hair.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Helen_hair.png.import b/Models/Cyberamics/Cyber Helen_hair.png.import
deleted file mode 100644
index c80b9e7..0000000
--- a/Models/Cyberamics/Cyber Helen_hair.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://bv65pevudy3dk"
-path.s3tc="res://.godot/imported/Cyber Helen_hair.png-7eb38b10a596be14320077537c5df16f.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Helen_hair.png-7eb38b10a596be14320077537c5df16f.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "35bb2072abe8c8e39214dcb47ee5fc3a"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Helen_hair.png"
-dest_files=["res://.godot/imported/Cyber Helen_hair.png-7eb38b10a596be14320077537c5df16f.s3tc.ctex", "res://.godot/imported/Cyber Helen_hair.png-7eb38b10a596be14320077537c5df16f.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyber Helen_mic.png b/Models/Cyberamics/Cyber Helen_mic.png
deleted file mode 100644
index 72ef3ea..0000000
Binary files a/Models/Cyberamics/Cyber Helen_mic.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Helen_mic.png.import b/Models/Cyberamics/Cyber Helen_mic.png.import
deleted file mode 100644
index faf0cd6..0000000
--- a/Models/Cyberamics/Cyber Helen_mic.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://b05jw1y0ukwqu"
-path.s3tc="res://.godot/imported/Cyber Helen_mic.png-47fa0aeb51ad55b858b963218d0d6ecd.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Helen_mic.png-47fa0aeb51ad55b858b963218d0d6ecd.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "0c2b737299479570c7cc39c7685d4c62"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Helen_mic.png"
-dest_files=["res://.godot/imported/Cyber Helen_mic.png-47fa0aeb51ad55b858b963218d0d6ecd.s3tc.ctex", "res://.godot/imported/Cyber Helen_mic.png-47fa0aeb51ad55b858b963218d0d6ecd.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyber Jasper.glb b/Models/Cyberamics/Cyber Jasper.glb
deleted file mode 100644
index e2fe313..0000000
Binary files a/Models/Cyberamics/Cyber Jasper.glb and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Jasper_denim.png b/Models/Cyberamics/Cyber Jasper_denim.png
deleted file mode 100644
index 8a6d8e7..0000000
Binary files a/Models/Cyberamics/Cyber Jasper_denim.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Jasper_denim.png.import b/Models/Cyberamics/Cyber Jasper_denim.png.import
deleted file mode 100644
index 0837877..0000000
--- a/Models/Cyberamics/Cyber Jasper_denim.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://q20cddw2xrei"
-path.s3tc="res://.godot/imported/Cyber Jasper_denim.png-d8598725528ffd5195e28e0eec9cd741.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Jasper_denim.png-d8598725528ffd5195e28e0eec9cd741.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "402d309e5ed850ba52e293c0656acf10"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Jasper_denim.png"
-dest_files=["res://.godot/imported/Cyber Jasper_denim.png-d8598725528ffd5195e28e0eec9cd741.s3tc.ctex", "res://.godot/imported/Cyber Jasper_denim.png-d8598725528ffd5195e28e0eec9cd741.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyber Jasper_eyes.png b/Models/Cyberamics/Cyber Jasper_eyes.png
deleted file mode 100644
index fb32529..0000000
Binary files a/Models/Cyberamics/Cyber Jasper_eyes.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Jasper_eyes.png.import b/Models/Cyberamics/Cyber Jasper_eyes.png.import
deleted file mode 100644
index 131a261..0000000
--- a/Models/Cyberamics/Cyber Jasper_eyes.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://nwgwmia0tqak"
-path.s3tc="res://.godot/imported/Cyber Jasper_eyes.png-3656e523e85be9bc7e5d4df443165869.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Jasper_eyes.png-3656e523e85be9bc7e5d4df443165869.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "d05686d9b10603e16e5810f67def9d24"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Jasper_eyes.png"
-dest_files=["res://.godot/imported/Cyber Jasper_eyes.png-3656e523e85be9bc7e5d4df443165869.s3tc.ctex", "res://.godot/imported/Cyber Jasper_eyes.png-3656e523e85be9bc7e5d4df443165869.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyber Jasper_muzzle.png b/Models/Cyberamics/Cyber Jasper_muzzle.png
deleted file mode 100644
index a6c47ad..0000000
Binary files a/Models/Cyberamics/Cyber Jasper_muzzle.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Jasper_muzzle.png.import b/Models/Cyberamics/Cyber Jasper_muzzle.png.import
deleted file mode 100644
index d957bfc..0000000
--- a/Models/Cyberamics/Cyber Jasper_muzzle.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dyegy5aix0jnm"
-path.s3tc="res://.godot/imported/Cyber Jasper_muzzle.png-1363f785a4c6b6366aae4b87bbe29a4a.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Jasper_muzzle.png-1363f785a4c6b6366aae4b87bbe29a4a.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "078b2003477a7c7835cfd9643aee65c3"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Jasper_muzzle.png"
-dest_files=["res://.godot/imported/Cyber Jasper_muzzle.png-1363f785a4c6b6366aae4b87bbe29a4a.s3tc.ctex", "res://.godot/imported/Cyber Jasper_muzzle.png-1363f785a4c6b6366aae4b87bbe29a4a.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyber Jasper_shirt_cow_print.png b/Models/Cyberamics/Cyber Jasper_shirt_cow_print.png
deleted file mode 100644
index 56bd6e2..0000000
Binary files a/Models/Cyberamics/Cyber Jasper_shirt_cow_print.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Jasper_shirt_cow_print.png.import b/Models/Cyberamics/Cyber Jasper_shirt_cow_print.png.import
deleted file mode 100644
index f0fb509..0000000
--- a/Models/Cyberamics/Cyber Jasper_shirt_cow_print.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://c0hh0000v6h8y"
-path.s3tc="res://.godot/imported/Cyber Jasper_shirt_cow_print.png-de5138976b0094419018b0936baa9497.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Jasper_shirt_cow_print.png-de5138976b0094419018b0936baa9497.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "35bb2072abe8c8e39214dcb47ee5fc3a"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Jasper_shirt_cow_print.png"
-dest_files=["res://.godot/imported/Cyber Jasper_shirt_cow_print.png-de5138976b0094419018b0936baa9497.s3tc.ctex", "res://.godot/imported/Cyber Jasper_shirt_cow_print.png-de5138976b0094419018b0936baa9497.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyber Jasper_shirt_rocker.png b/Models/Cyberamics/Cyber Jasper_shirt_rocker.png
deleted file mode 100644
index d98871e..0000000
Binary files a/Models/Cyberamics/Cyber Jasper_shirt_rocker.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyber Jasper_shirt_rocker.png.import b/Models/Cyberamics/Cyber Jasper_shirt_rocker.png.import
deleted file mode 100644
index 3ed149b..0000000
--- a/Models/Cyberamics/Cyber Jasper_shirt_rocker.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://bcbsootxxvpjb"
-path.s3tc="res://.godot/imported/Cyber Jasper_shirt_rocker.png-f0e49ba2d7398b113f1af6030157a14e.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyber Jasper_shirt_rocker.png-f0e49ba2d7398b113f1af6030157a14e.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "af4edca67cb9ab3accdc565f145f9c99"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Jasper_shirt_rocker.png"
-dest_files=["res://.godot/imported/Cyber Jasper_shirt_rocker.png-f0e49ba2d7398b113f1af6030157a14e.s3tc.ctex", "res://.godot/imported/Cyber Jasper_shirt_rocker.png-f0e49ba2d7398b113f1af6030157a14e.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck.glb b/Models/Cyberamics/Cyberamic Chuck.glb
deleted file mode 100644
index 140a7b3..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck.glb and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_avenger chuck shirt.png b/Models/Cyberamics/Cyberamic Chuck_avenger chuck shirt.png
deleted file mode 100644
index 473ca17..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_avenger chuck shirt.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_avenger chuck shirt.png.import b/Models/Cyberamics/Cyberamic Chuck_avenger chuck shirt.png.import
deleted file mode 100644
index 516457a..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_avenger chuck shirt.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://c8li1pbbld1r6"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_avenger chuck shirt.png-ef24b9642c3c8e09e634fc0b19923210.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_avenger chuck shirt.png-ef24b9642c3c8e09e634fc0b19923210.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "d05498ddd2256dae1de9c85a416823f1"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_avenger chuck shirt.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_avenger chuck shirt.png-ef24b9642c3c8e09e634fc0b19923210.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_avenger chuck shirt.png-ef24b9642c3c8e09e634fc0b19923210.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_avenger hat.png b/Models/Cyberamics/Cyberamic Chuck_avenger hat.png
deleted file mode 100644
index 3b25282..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_avenger hat.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_avenger hat.png.import b/Models/Cyberamics/Cyberamic Chuck_avenger hat.png.import
deleted file mode 100644
index 28242f2..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_avenger hat.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://im1r1enoj4l3"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_avenger hat.png-29377b5e8b656b2b533aeba9277b6de7.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_avenger hat.png-29377b5e8b656b2b533aeba9277b6de7.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "eda0a6f93a90b3b6fa865784593fcd9f"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_avenger hat.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_avenger hat.png-29377b5e8b656b2b533aeba9277b6de7.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_avenger hat.png-29377b5e8b656b2b533aeba9277b6de7.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_cool chuck hat.png b/Models/Cyberamics/Cyberamic Chuck_cool chuck hat.png
deleted file mode 100644
index 8ca275a..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_cool chuck hat.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_cool chuck hat.png.import b/Models/Cyberamics/Cyberamic Chuck_cool chuck hat.png.import
deleted file mode 100644
index 3437fa1..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_cool chuck hat.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://bgfogdr7mgqrn"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_cool chuck hat.png-92e57bd583b5fddebeb2b5a26a27b65f.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_cool chuck hat.png-92e57bd583b5fddebeb2b5a26a27b65f.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "30dda0ec4550d8b59629241b11fcb967"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_cool chuck hat.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_cool chuck hat.png-92e57bd583b5fddebeb2b5a26a27b65f.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_cool chuck hat.png-92e57bd583b5fddebeb2b5a26a27b65f.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_cool chuck shirt.png b/Models/Cyberamics/Cyberamic Chuck_cool chuck shirt.png
deleted file mode 100644
index 167eb4d..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_cool chuck shirt.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_cool chuck shirt.png.import b/Models/Cyberamics/Cyberamic Chuck_cool chuck shirt.png.import
deleted file mode 100644
index 70b496e..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_cool chuck shirt.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cpyxdwmo2mitw"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_cool chuck shirt.png-52e5a2fe3b0c7d22e5cbd78c1c7500a9.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_cool chuck shirt.png-52e5a2fe3b0c7d22e5cbd78c1c7500a9.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "47d45b1d7535be024d7328edf43a202e"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_cool chuck shirt.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_cool chuck shirt.png-52e5a2fe3b0c7d22e5cbd78c1c7500a9.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_cool chuck shirt.png-52e5a2fe3b0c7d22e5cbd78c1c7500a9.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_derby.png b/Models/Cyberamics/Cyberamic Chuck_derby.png
deleted file mode 100644
index 1f40a12..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_derby.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_derby.png.import b/Models/Cyberamics/Cyberamic Chuck_derby.png.import
deleted file mode 100644
index 215a507..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_derby.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cbweai1832bm3"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_derby.png-7bc146630594177e24ceda21a9c7859a.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_derby.png-7bc146630594177e24ceda21a9c7859a.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "b7dcfc8d03f78489056415859985c5e8"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_derby.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_derby.png-7bc146630594177e24ceda21a9c7859a.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_derby.png-7bc146630594177e24ceda21a9c7859a.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_eyes.png b/Models/Cyberamics/Cyberamic Chuck_eyes.png
deleted file mode 100644
index 14dcc16..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_eyes.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_eyes.png.import b/Models/Cyberamics/Cyberamic Chuck_eyes.png.import
deleted file mode 100644
index 2a6d6da..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_eyes.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://n8fyvmnwkd5f"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_eyes.png-833864a46a4992a27ec42be8deaf2902.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_eyes.png-833864a46a4992a27ec42be8deaf2902.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "de6b71a0b6b2ef973e666c75df9734be"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_eyes.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_eyes.png-833864a46a4992a27ec42be8deaf2902.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_eyes.png-833864a46a4992a27ec42be8deaf2902.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_fur.png b/Models/Cyberamics/Cyberamic Chuck_fur.png
deleted file mode 100644
index 30cd299..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_fur.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_fur.png.import b/Models/Cyberamics/Cyberamic Chuck_fur.png.import
deleted file mode 100644
index d39617c..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_fur.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://c4tq7klloya28"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_fur.png-5da3fabde0b41b5765b323a829d6681a.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_fur.png-5da3fabde0b41b5765b323a829d6681a.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "6dc122b4f22f3c13939182e577582275"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_fur.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_fur.png-5da3fabde0b41b5765b323a829d6681a.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_fur.png-5da3fabde0b41b5765b323a829d6681a.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_jaw.png b/Models/Cyberamics/Cyberamic Chuck_jaw.png
deleted file mode 100644
index becab0e..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_jaw.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_jaw.png.import b/Models/Cyberamics/Cyberamic Chuck_jaw.png.import
deleted file mode 100644
index ac445d4..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_jaw.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://b6i5p7ssueq1c"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_jaw.png-77869e5cf0e223c7b7e77b4c6ef73abc.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_jaw.png-77869e5cf0e223c7b7e77b4c6ef73abc.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "dce09f49a6e472d9d20fd12ae0105263"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_jaw.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_jaw.png-77869e5cf0e223c7b7e77b4c6ef73abc.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_jaw.png-77869e5cf0e223c7b7e77b4c6ef73abc.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_mic.png b/Models/Cyberamics/Cyberamic Chuck_mic.png
deleted file mode 100644
index 72ef3ea..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_mic.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_mic.png.import b/Models/Cyberamics/Cyberamic Chuck_mic.png.import
deleted file mode 100644
index 90d4bb4..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_mic.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://btm7ni51m76xy"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_mic.png-a001658a24b06e235c5f95469e65dd38.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_mic.png-a001658a24b06e235c5f95469e65dd38.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "0c2b737299479570c7cc39c7685d4c62"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_mic.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_mic.png-a001658a24b06e235c5f95469e65dd38.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_mic.png-a001658a24b06e235c5f95469e65dd38.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_modern jaw.png b/Models/Cyberamics/Cyberamic Chuck_modern jaw.png
deleted file mode 100644
index 63dcf64..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_modern jaw.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_modern jaw.png.import b/Models/Cyberamics/Cyberamic Chuck_modern jaw.png.import
deleted file mode 100644
index 46cadc4..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_modern jaw.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://b2im7s145j3ba"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_modern jaw.png-cbbfdab929ad63a720505602abfbed7a.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_modern jaw.png-cbbfdab929ad63a720505602abfbed7a.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "40535739a152a771fa57e75e1df9b011"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_modern jaw.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_modern jaw.png-cbbfdab929ad63a720505602abfbed7a.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_modern jaw.png-cbbfdab929ad63a720505602abfbed7a.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Cyberamic Chuck_vest.png b/Models/Cyberamics/Cyberamic Chuck_vest.png
deleted file mode 100644
index 594a1b9..0000000
Binary files a/Models/Cyberamics/Cyberamic Chuck_vest.png and /dev/null differ
diff --git a/Models/Cyberamics/Cyberamic Chuck_vest.png.import b/Models/Cyberamics/Cyberamic Chuck_vest.png.import
deleted file mode 100644
index 3a6567d..0000000
--- a/Models/Cyberamics/Cyberamic Chuck_vest.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cjjfoyalnst1d"
-path.s3tc="res://.godot/imported/Cyberamic Chuck_vest.png-f2e092297f624fd3dd64f2cbcf170064.s3tc.ctex"
-path.etc2="res://.godot/imported/Cyberamic Chuck_vest.png-f2e092297f624fd3dd64f2cbcf170064.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "cdfb9781f38ce700fb6a6329107289e5"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyberamic Chuck_vest.png"
-dest_files=["res://.godot/imported/Cyberamic Chuck_vest.png-f2e092297f624fd3dd64f2cbcf170064.s3tc.ctex", "res://.godot/imported/Cyberamic Chuck_vest.png-f2e092297f624fd3dd64f2cbcf170064.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Cyberamics/Warblettes.glb b/Models/Cyberamics/Warblettes.glb
deleted file mode 100644
index 222c974..0000000
Binary files a/Models/Cyberamics/Warblettes.glb and /dev/null differ
diff --git a/Models/Cyberamics/Warblettes_fur.png b/Models/Cyberamics/Warblettes_fur.png
deleted file mode 100644
index b903419..0000000
Binary files a/Models/Cyberamics/Warblettes_fur.png and /dev/null differ
diff --git a/Models/Cyberamics/Warblettes_fur.png.import b/Models/Cyberamics/Warblettes_fur.png.import
deleted file mode 100644
index aa9cbfb..0000000
--- a/Models/Cyberamics/Warblettes_fur.png.import
+++ /dev/null
@@ -1,39 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://jp06lvl1l4kf"
-path.s3tc="res://.godot/imported/Warblettes_fur.png-9635d2a2f1884e838e8285a0042af334.s3tc.ctex"
-path.etc2="res://.godot/imported/Warblettes_fur.png-9635d2a2f1884e838e8285a0042af334.etc2.ctex"
-metadata={
-"imported_formats": ["s3tc_bptc", "etc2_astc"],
-"vram_texture": true
-}
-generator_parameters={
-"md5": "e63b9c660d716af6780b5637f38da662"
-}
-
-[deps]
-
-source_file="res://Models/Cyberamics/Warblettes_fur.png"
-dest_files=["res://.godot/imported/Warblettes_fur.png-9635d2a2f1884e838e8285a0042af334.s3tc.ctex", "res://.godot/imported/Warblettes_fur.png-9635d2a2f1884e838e8285a0042af334.etc2.ctex"]
-
-[params]
-
-compress/mode=2
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=true
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=0
diff --git a/Models/Balcony/BalconyStage.glb.import b/Models/Helen.fbx.import
similarity index 64%
rename from Models/Balcony/BalconyStage.glb.import
rename to Models/Helen.fbx.import
index a005e55..11a121e 100644
--- a/Models/Balcony/BalconyStage.glb.import
+++ b/Models/Helen.fbx.import
@@ -3,13 +3,13 @@
importer="scene"
importer_version=1
type="PackedScene"
-uid="uid://c6n4otfble154"
-path="res://.godot/imported/BalconyStage.glb-30f76dcef53d0e1cd152a84572aefbee.scn"
+uid="uid://5i7srffes8ut"
+path="res://.godot/imported/Helen.fbx-a3dcdd674756aa7b6860353ece3f39df.scn"
[deps]
-source_file="res://Models/Balcony/BalconyStage.glb"
-dest_files=["res://.godot/imported/BalconyStage.glb-30f76dcef53d0e1cd152a84572aefbee.scn"]
+source_file="res://3-Stage/Models/Helen.fbx"
+dest_files=["res://.godot/imported/Helen.fbx-a3dcdd674756aa7b6860353ece3f39df.scn"]
[params]
@@ -28,10 +28,11 @@ meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
-animation/trimming=false
+animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
-gltf/naming_version=1
-gltf/embedded_image_handling=1
+fbx/importer=0
+fbx/allow_geometry_helper_nodes=false
+fbx/embedded_image_handling=1
diff --git a/Models/Cyberamics/Cyber Helen.glb.import b/Models/Jasper.fbx.import
similarity index 63%
rename from Models/Cyberamics/Cyber Helen.glb.import
rename to Models/Jasper.fbx.import
index 0bec33a..820701e 100644
--- a/Models/Cyberamics/Cyber Helen.glb.import
+++ b/Models/Jasper.fbx.import
@@ -3,13 +3,13 @@
importer="scene"
importer_version=1
type="PackedScene"
-uid="uid://d34xfaignny8j"
-path="res://.godot/imported/Cyber Helen.glb-3f0344c1f3e746ac81eea3dfffd7e005.scn"
+uid="uid://b4xrsr1w4t017"
+path="res://.godot/imported/Jasper.fbx-172cc49326619adb06baca5b9e28470b.scn"
[deps]
-source_file="res://Models/Cyberamics/Cyber Helen.glb"
-dest_files=["res://.godot/imported/Cyber Helen.glb-3f0344c1f3e746ac81eea3dfffd7e005.scn"]
+source_file="res://3-Stage/Models/Jasper.fbx"
+dest_files=["res://.godot/imported/Jasper.fbx-172cc49326619adb06baca5b9e28470b.scn"]
[params]
@@ -28,10 +28,11 @@ meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
-animation/trimming=false
+animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
-gltf/naming_version=1
-gltf/embedded_image_handling=1
+fbx/importer=0
+fbx/allow_geometry_helper_nodes=false
+fbx/embedded_image_handling=1
diff --git a/Models/Cyberamics/Cyber Jasper.glb.import b/Models/Munch.fbx.import
similarity index 64%
rename from Models/Cyberamics/Cyber Jasper.glb.import
rename to Models/Munch.fbx.import
index 58015b9..748c19c 100644
--- a/Models/Cyberamics/Cyber Jasper.glb.import
+++ b/Models/Munch.fbx.import
@@ -3,13 +3,13 @@
importer="scene"
importer_version=1
type="PackedScene"
-uid="uid://ba7i8p8olef2s"
-path="res://.godot/imported/Cyber Jasper.glb-7156eb669feb8aeef67d143d15c0b7ad.scn"
+uid="uid://y5jsfwdmgwkq"
+path="res://.godot/imported/Munch.fbx-5aedcf1ca9583a75c301f71dc6519957.scn"
[deps]
-source_file="res://Models/Cyberamics/Cyber Jasper.glb"
-dest_files=["res://.godot/imported/Cyber Jasper.glb-7156eb669feb8aeef67d143d15c0b7ad.scn"]
+source_file="res://3-Stage/Models/Munch.fbx"
+dest_files=["res://.godot/imported/Munch.fbx-5aedcf1ca9583a75c301f71dc6519957.scn"]
[params]
@@ -28,10 +28,11 @@ meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
-animation/trimming=false
+animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
-gltf/naming_version=1
-gltf/embedded_image_handling=1
+fbx/importer=0
+fbx/allow_geometry_helper_nodes=false
+fbx/embedded_image_handling=1
diff --git a/Models/Cyberamics/Cyberamic Chuck.glb.import b/Models/Pasqually.fbx.import
similarity index 63%
rename from Models/Cyberamics/Cyberamic Chuck.glb.import
rename to Models/Pasqually.fbx.import
index faf11ce..4eec3f9 100644
--- a/Models/Cyberamics/Cyberamic Chuck.glb.import
+++ b/Models/Pasqually.fbx.import
@@ -3,13 +3,13 @@
importer="scene"
importer_version=1
type="PackedScene"
-uid="uid://c2j62syov3skq"
-path="res://.godot/imported/Cyberamic Chuck.glb-7640bcf570eaf553eddfec5de3e96502.scn"
+uid="uid://c66qevr67an0l"
+path="res://.godot/imported/Pasqually.fbx-764599cdc792a8e7936bfd485f85d0d3.scn"
[deps]
-source_file="res://Models/Cyberamics/Cyberamic Chuck.glb"
-dest_files=["res://.godot/imported/Cyberamic Chuck.glb-7640bcf570eaf553eddfec5de3e96502.scn"]
+source_file="res://3-Stage/Models/Pasqually.fbx"
+dest_files=["res://.godot/imported/Pasqually.fbx-764599cdc792a8e7936bfd485f85d0d3.scn"]
[params]
@@ -28,10 +28,11 @@ meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
-animation/trimming=false
+animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
-gltf/naming_version=1
-gltf/embedded_image_handling=1
+fbx/importer=0
+fbx/allow_geometry_helper_nodes=false
+fbx/embedded_image_handling=1
diff --git a/Models/HelenHouse/HelenHouse-Room.glb b/Models/Room.glb
similarity index 100%
rename from Models/HelenHouse/HelenHouse-Room.glb
rename to Models/Room.glb
diff --git a/Models/HelenHouse/HelenHouse-Room.glb.import b/Models/Room.glb.import
similarity index 74%
rename from Models/HelenHouse/HelenHouse-Room.glb.import
rename to Models/Room.glb.import
index ec642f8..a2980ee 100644
--- a/Models/HelenHouse/HelenHouse-Room.glb.import
+++ b/Models/Room.glb.import
@@ -4,12 +4,12 @@ importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bhoeqcsdb0fx2"
-path="res://.godot/imported/HelenHouse-Room.glb-d039721f5e781fffec7d16cd58395499.scn"
+path="res://.godot/imported/Room.glb-057b6820edeabb93a1fe769eeffdac34.scn"
[deps]
-source_file="res://Models/HelenHouse/HelenHouse-Room.glb"
-dest_files=["res://.godot/imported/HelenHouse-Room.glb-d039721f5e781fffec7d16cd58395499.scn"]
+source_file="res://Models/Room.glb"
+dest_files=["res://.godot/imported/Room.glb-057b6820edeabb93a1fe769eeffdac34.scn"]
[params]
diff --git a/Models/HelenHouse/HelenHouse-Stage.glb b/Models/Stage.glb
similarity index 100%
rename from Models/HelenHouse/HelenHouse-Stage.glb
rename to Models/Stage.glb
diff --git a/Models/HelenHouse/HelenHouse-Stage.glb.import b/Models/Stage.glb.import
similarity index 74%
rename from Models/HelenHouse/HelenHouse-Stage.glb.import
rename to Models/Stage.glb.import
index 43b6dd4..f5efa03 100644
--- a/Models/HelenHouse/HelenHouse-Stage.glb.import
+++ b/Models/Stage.glb.import
@@ -4,12 +4,12 @@ importer="scene"
importer_version=1
type="PackedScene"
uid="uid://btvomf1ayoypu"
-path="res://.godot/imported/HelenHouse-Stage.glb-3682deea9f5a1b3381bc9010b144dd14.scn"
+path="res://.godot/imported/Stage.glb-38d445218888b57ffbbfd79eb6fd72c0.scn"
[deps]
-source_file="res://Models/HelenHouse/HelenHouse-Stage.glb"
-dest_files=["res://.godot/imported/HelenHouse-Stage.glb-3682deea9f5a1b3381bc9010b144dd14.scn"]
+source_file="res://Models/Stage.glb"
+dest_files=["res://.godot/imported/Stage.glb-38d445218888b57ffbbfd79eb6fd72c0.scn"]
[params]
diff --git a/README.md b/README.md
index 38858fc..3f3d4e0 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,3 @@
# PneumaticPlaything
-Animatronics simulator and showtape creator
-(soon to be) Featuring real stages and animatronics
-
-This project is not associated with CEC Entertainment LLC. or Creative Engineering Inc.
+animatronic simulator
\ No newline at end of file
diff --git a/Scenes/GUI/Controls/CameraButton.tscn b/Scenes/GUI/Controls/CameraButton.tscn
deleted file mode 100644
index c49bfca..0000000
--- a/Scenes/GUI/Controls/CameraButton.tscn
+++ /dev/null
@@ -1,19 +0,0 @@
-[gd_scene load_steps=2 format=3 uid="uid://bt7bxdgv6u8ev"]
-
-[ext_resource type="Script" uid="uid://dfoog0y2bh7tk" path="res://Scripts/CameraButton.gd" id="1_3y3s1"]
-
-[node name="CameraButton" type="Control"]
-layout_mode = 3
-anchors_preset = 0
-offset_right = 136.0
-offset_bottom = 32.0
-script = ExtResource("1_3y3s1")
-
-[node name="Button" type="Button" parent="."]
-layout_mode = 0
-offset_left = 4.0
-offset_right = 132.0
-offset_bottom = 32.0
-text = "Angle"
-
-[connection signal="pressed" from="Button" to="." method="_on_button_pressed"]
diff --git a/Scenes/GUI/Controls/CosmeticAdjustment.tscn b/Scenes/GUI/Controls/CosmeticAdjustment.tscn
deleted file mode 100644
index 75b90ef..0000000
--- a/Scenes/GUI/Controls/CosmeticAdjustment.tscn
+++ /dev/null
@@ -1,35 +0,0 @@
-[gd_scene load_steps=2 format=3 uid="uid://dfll7xwkb2mbi"]
-
-[ext_resource type="Script" uid="uid://1f7v3ohsgx0g" path="res://Scripts/CosmeticAdjustment.gd" id="1_fg0vw"]
-
-[node name="FlowControl" type="Control"]
-layout_mode = 3
-anchors_preset = 0
-offset_right = 384.0
-offset_bottom = 40.0
-script = ExtResource("1_fg0vw")
-
-[node name="Panel" type="Panel" parent="."]
-layout_mode = 0
-offset_right = 384.0
-offset_bottom = 40.0
-
-[node name="Label" type="Label" parent="Panel"]
-layout_mode = 0
-offset_left = 4.0
-offset_top = 4.0
-offset_right = 184.0
-offset_bottom = 36.0
-text = "Cosmetic Adustment"
-vertical_alignment = 1
-clip_text = true
-text_overrun_behavior = 3
-
-[node name="OptionButton" type="OptionButton" parent="Panel"]
-layout_mode = 0
-offset_left = 188.0
-offset_top = 4.0
-offset_right = 380.0
-offset_bottom = 36.0
-
-[connection signal="item_selected" from="Panel/OptionButton" to="." method="_on_option_button_item_selected"]
diff --git a/Scenes/GUI/Controls/FlowControl.tscn b/Scenes/GUI/Controls/FlowControl.tscn
deleted file mode 100644
index c711895..0000000
--- a/Scenes/GUI/Controls/FlowControl.tscn
+++ /dev/null
@@ -1,51 +0,0 @@
-[gd_scene load_steps=2 format=3 uid="uid://blg1c3v4o44of"]
-
-[ext_resource type="Script" uid="uid://blhv0kms1sleu" path="res://Scripts/FlowControl.gd" id="1_6sy3t"]
-
-[node name="FlowControl" type="Control"]
-layout_mode = 3
-anchors_preset = 0
-offset_right = 512.0
-offset_bottom = 40.0
-script = ExtResource("1_6sy3t")
-
-[node name="Panel" type="Panel" parent="."]
-layout_mode = 0
-offset_right = 512.0
-offset_bottom = 40.0
-
-[node name="Label" type="Label" parent="Panel"]
-layout_mode = 0
-offset_left = 4.0
-offset_top = 4.0
-offset_right = 244.0
-offset_bottom = 36.0
-text = "Movement"
-vertical_alignment = 1
-clip_text = true
-text_overrun_behavior = 3
-
-[node name="InStepper" type="SpinBox" parent="Panel"]
-layout_mode = 0
-offset_left = 248.0
-offset_top = 4.0
-offset_right = 376.0
-offset_bottom = 36.0
-max_value = 10000.0
-step = 0.1
-value = 1.0
-prefix = "In:"
-
-[node name="OutStepper" type="SpinBox" parent="Panel"]
-layout_mode = 0
-offset_left = 380.0
-offset_top = 4.0
-offset_right = 508.0
-offset_bottom = 36.0
-max_value = 10.0
-step = 0.1
-value = 1.0
-prefix = "Out:"
-
-[connection signal="value_changed" from="Panel/InStepper" to="." method="_on_in_stepper_value_changed"]
-[connection signal="value_changed" from="Panel/OutStepper" to="." method="_on_out_stepper_value_changed"]
diff --git a/Scenes/GUI/Controls/FlowSlider.tscn b/Scenes/GUI/Controls/FlowSlider.tscn
new file mode 100644
index 0000000..d2dfd56
--- /dev/null
+++ b/Scenes/GUI/Controls/FlowSlider.tscn
@@ -0,0 +1,42 @@
+[gd_scene load_steps=2 format=3 uid="uid://blg1c3v4o44of"]
+
+[ext_resource type="Script" uid="uid://blhv0kms1sleu" path="res://Scripts/FlowSlider.gd" id="1_q164o"]
+
+[node name="FlowSlider" type="Control"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_right = -1280.0
+offset_bottom = -720.0
+grow_horizontal = 2
+grow_vertical = 2
+script = ExtResource("1_q164o")
+
+[node name="Panel" type="Panel" parent="."]
+layout_mode = 0
+offset_right = 96.0
+offset_bottom = 32.0
+
+[node name="Slider" type="HSlider" parent="Panel"]
+layout_mode = 2
+offset_left = 4.0
+offset_right = 64.0
+offset_bottom = 32.0
+size_flags_vertical = 1
+max_value = 5.0
+step = 0.1
+value = 1.0
+
+[node name="ValueLabel" type="Label" parent="Panel"]
+layout_mode = 2
+offset_left = 64.0
+offset_right = 96.0
+offset_bottom = 32.0
+size_flags_horizontal = 8
+size_flags_vertical = 1
+text = "1.0"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[connection signal="value_changed" from="Panel/Slider" to="." method="_on_slider_value_changed"]
diff --git a/Scenes/GUI/Controls/MovementButton.tscn b/Scenes/GUI/Controls/IndicatorLight.tscn
similarity index 51%
rename from Scenes/GUI/Controls/MovementButton.tscn
rename to Scenes/GUI/Controls/IndicatorLight.tscn
index 0200f4a..998e838 100644
--- a/Scenes/GUI/Controls/MovementButton.tscn
+++ b/Scenes/GUI/Controls/IndicatorLight.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=4 format=3 uid="uid://cbf3x44mvo701"]
-[ext_resource type="Script" uid="uid://cg157l4uo7ki8" path="res://Scripts/MovementButton.gd" id="1_l718a"]
+[ext_resource type="Script" uid="uid://cg157l4uo7ki8" path="res://Scripts/IndicatorLight.gd" id="1_l718a"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1pi70"]
bg_color = Color(0, 0, 0, 1)
@@ -16,26 +16,23 @@ corner_radius_top_right = 12
corner_radius_bottom_right = 12
corner_radius_bottom_left = 12
-[node name="MovementButton" type="Control"]
+[node name="IndicatorLight" type="Control"]
layout_mode = 3
-anchors_preset = 0
-offset_right = 256.0
-offset_bottom = 40.0
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_right = -1280.0
+offset_bottom = -720.0
+grow_horizontal = 2
+grow_vertical = 2
script = ExtResource("1_l718a")
-[node name="Panel" type="Panel" parent="."]
+[node name="Container" type="Panel" parent="."]
layout_mode = 0
-offset_right = 256.0
-offset_bottom = 40.0
+offset_right = 32.0
+offset_bottom = 32.0
-[node name="IndicatorPanel" type="Panel" parent="Panel"]
-layout_mode = 0
-offset_left = 220.0
-offset_top = 4.0
-offset_right = 252.0
-offset_bottom = 36.0
-
-[node name="Black" type="Panel" parent="Panel/IndicatorPanel"]
+[node name="Black" type="Panel" parent="."]
layout_mode = 0
offset_left = 4.0
offset_top = 4.0
@@ -43,22 +40,10 @@ offset_right = 28.0
offset_bottom = 28.0
theme_override_styles/panel = SubResource("StyleBoxFlat_1pi70")
-[node name="Green" type="Panel" parent="Panel/IndicatorPanel"]
-visible = false
+[node name="Green" type="Panel" parent="."]
layout_mode = 0
offset_left = 4.0
offset_top = 4.0
offset_right = 28.0
offset_bottom = 28.0
theme_override_styles/panel = SubResource("StyleBoxFlat_5m0fm")
-
-[node name="Button" type="Button" parent="Panel"]
-layout_mode = 0
-offset_left = 4.0
-offset_top = 4.0
-offset_right = 216.0
-offset_bottom = 36.0
-text = "Movement"
-
-[connection signal="button_down" from="Panel/Button" to="." method="_on_button_button_down"]
-[connection signal="button_up" from="Panel/Button" to="." method="_on_button_button_up"]
diff --git a/Scenes/GUI/Controls/MovementFrameIndicatorOff.tscn b/Scenes/GUI/Controls/MovementFrameIndicatorOff.tscn
deleted file mode 100644
index 179fd0a..0000000
--- a/Scenes/GUI/Controls/MovementFrameIndicatorOff.tscn
+++ /dev/null
@@ -1,14 +0,0 @@
-[gd_scene load_steps=2 format=3 uid="uid://btbdib3vwowhd"]
-
-[ext_resource type="Script" uid="uid://b4qincechbf63" path="res://Scripts/MovementFrameIndicator.gd" id="1_ttcva"]
-
-[node name="MovementFrameIndicator" type="Control"]
-layout_mode = 3
-anchors_preset = 0
-script = ExtResource("1_ttcva")
-
-[node name="ColorRect" type="ColorRect" parent="."]
-layout_mode = 0
-offset_right = 2.0
-offset_bottom = 32.0
-color = Color(0.0941176, 0.0941176, 0.0941176, 1)
diff --git a/Scenes/GUI/Controls/MovementFrameIndicatorOn.tscn b/Scenes/GUI/Controls/MovementFrameIndicatorOn.tscn
deleted file mode 100644
index 1a264f4..0000000
--- a/Scenes/GUI/Controls/MovementFrameIndicatorOn.tscn
+++ /dev/null
@@ -1,14 +0,0 @@
-[gd_scene load_steps=2 format=3 uid="uid://dao6mf54xule2"]
-
-[ext_resource type="Script" uid="uid://b4qincechbf63" path="res://Scripts/MovementFrameIndicator.gd" id="1_2om8h"]
-
-[node name="MovementFrameIndicator" type="Control"]
-layout_mode = 3
-anchors_preset = 0
-script = ExtResource("1_2om8h")
-
-[node name="ColorRect" type="ColorRect" parent="."]
-layout_mode = 0
-offset_right = 2.0
-offset_bottom = 32.0
-color = Color(0, 1, 0, 1)
diff --git a/Scenes/GUI/Controls/MovementRow.tscn b/Scenes/GUI/Controls/MovementRow.tscn
deleted file mode 100644
index e8354c5..0000000
--- a/Scenes/GUI/Controls/MovementRow.tscn
+++ /dev/null
@@ -1,103 +0,0 @@
-[gd_scene load_steps=7 format=3 uid="uid://dtkqaw5533rxy"]
-
-[ext_resource type="StyleBox" uid="uid://d17amc25o63p1" path="res://UI/Themes/MovementsPanelOverride.tres" id="1_d1xev"]
-[ext_resource type="Script" uid="uid://tn3aaldu7mm2" path="res://Scripts/MovementRow.gd" id="1_rm5t0"]
-[ext_resource type="Texture2D" uid="uid://cn5xdrxdv622h" path="res://UI/SmallX.png" id="2_e7anl"]
-[ext_resource type="Texture2D" uid="uid://d007317123e27" path="res://UI/SmallLock.png" id="3_ldhn8"]
-
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rm5t0"]
-bg_color = Color(0, 1, 0, 1)
-corner_radius_top_left = 4
-corner_radius_top_right = 4
-corner_radius_bottom_right = 4
-corner_radius_bottom_left = 4
-
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ldhn8"]
-content_margin_left = 4.0
-content_margin_top = 4.0
-content_margin_right = 4.0
-content_margin_bottom = 4.0
-bg_color = Color(1, 0.752941, 0, 1)
-corner_radius_top_left = 2
-corner_radius_top_right = 2
-corner_radius_bottom_right = 2
-corner_radius_bottom_left = 2
-
-[node name="Row" type="Panel"]
-anchors_preset = 10
-anchor_right = 1.0
-offset_bottom = 40.0
-grow_horizontal = 2
-script = ExtResource("1_rm5t0")
-
-[node name="ActiveBG" type="Panel" parent="."]
-visible = false
-layout_mode = 0
-offset_left = 4.0
-offset_top = 4.0
-offset_right = 260.0
-offset_bottom = 36.0
-theme_override_styles/panel = SubResource("StyleBoxFlat_rm5t0")
-
-[node name="Button" type="Button" parent="."]
-layout_mode = 0
-offset_left = 4.0
-offset_top = 4.0
-offset_right = 260.0
-offset_bottom = 36.0
-tooltip_text = "Click to bind a key to this movement"
-text = "0 - Name (Unbound)"
-alignment = 0
-text_overrun_behavior = 3
-clip_text = true
-
-[node name="ClearButton" type="Button" parent="."]
-layout_mode = 0
-offset_left = 244.0
-offset_top = 4.0
-offset_right = 260.0
-offset_bottom = 20.0
-tooltip_text = "Clear this row"
-icon = ExtResource("2_e7anl")
-
-[node name="LockButton" type="Button" parent="."]
-layout_mode = 0
-offset_left = 244.0
-offset_top = 20.0
-offset_right = 260.0
-offset_bottom = 36.0
-tooltip_text = "Prevent recording over"
-theme_override_styles/pressed = SubResource("StyleBoxFlat_ldhn8")
-toggle_mode = true
-icon = ExtResource("3_ldhn8")
-
-[node name="MovementsBG" type="Panel" parent="."]
-layout_mode = 1
-anchors_preset = -1
-anchor_right = 1.0
-anchor_bottom = 1.0
-offset_left = 264.0
-grow_horizontal = 2
-grow_vertical = 2
-theme_override_styles/panel = ExtResource("1_d1xev")
-
-[node name="InvisibleMask" type="Control" parent="MovementsBG"]
-clip_contents = true
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-offset_left = 4.0
-offset_top = 4.0
-offset_right = -4.0
-offset_bottom = -4.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="MovementsHandle" type="Control" parent="MovementsBG/InvisibleMask"]
-anchors_preset = 0
-offset_left = 120.0
-offset_right = 120.0
-
-[connection signal="pressed" from="Button" to="." method="_on_button_pressed"]
-[connection signal="pressed" from="ClearButton" to="." method="_on_clear_button_pressed"]
diff --git a/Scenes/GUI/EditorScreen.tscn b/Scenes/GUI/EditorScreen.tscn
index 3d97c93..8d87dad 100644
--- a/Scenes/GUI/EditorScreen.tscn
+++ b/Scenes/GUI/EditorScreen.tscn
@@ -1,45 +1,14 @@
-[gd_scene load_steps=27 format=3 uid="uid://oiehbor0dlqx"]
+[gd_scene load_steps=7 format=3 uid="uid://oiehbor0dlqx"]
[ext_resource type="Script" uid="uid://dfiwoln8mdwm8" path="res://Scripts/EditorScreen.gd" id="1_sd512"]
-[ext_resource type="Theme" uid="uid://dbgs4id7y5d1c" path="res://UI/Themes/Dark.tres" id="1_v0ton"]
-[ext_resource type="Texture2D" uid="uid://xllpr3qc064c" path="res://UI/Play.png" id="3_g6u4d"]
-[ext_resource type="Texture2D" uid="uid://dgacnkv2dc65s" path="res://UI/PlayBackwards.png" id="3_mr8sb"]
-[ext_resource type="Texture2D" uid="uid://dts4eh6hyt8p3" path="res://UI/SkipBackwards.png" id="3_r4ytj"]
-[ext_resource type="Texture2D" uid="uid://bpb3xn54kpxoe" path="res://UI/icon-32px.png" id="4_20noo"]
-[ext_resource type="Texture2D" uid="uid://bwhgy4u37jmo1" path="res://UI/Pause.png" id="4_ba3jn"]
-[ext_resource type="Texture2D" uid="uid://s3yr2wasxv03" path="res://UI/BlankCam.png" id="4_v0ton"]
-[ext_resource type="Texture2D" uid="uid://dhx2v2fd0egxd" path="res://UI/FastBackwards.png" id="4_wy7jo"]
-[ext_resource type="Texture2D" uid="uid://cttgtbu1xllwq" path="res://UI/Stop.png" id="8_20noo"]
-[ext_resource type="Texture2D" uid="uid://dsr03w7r667fw" path="res://UI/FastForward.png" id="8_v0ton"]
-[ext_resource type="Texture2D" uid="uid://bphwtliq2ahus" path="res://UI/SkipForward.png" id="9_20noo"]
-[ext_resource type="Texture2D" uid="uid://ckg2ihy105ttj" path="res://UI/Record.png" id="10_wy7jo"]
-[ext_resource type="ButtonGroup" uid="uid://bij2tonqeslpt" path="res://Scenes/GUI/FlyoutButtonGroup.tres" id="13_wy7jo"]
+[ext_resource type="PackedScene" uid="uid://blg1c3v4o44of" path="res://Scenes/GUI/Controls/FlowSlider.tscn" id="2_jo1ms"]
+[ext_resource type="PackedScene" uid="uid://btre5j66mpchy" path="res://Scenes/Stages/HelenHouse.tscn" id="2_p1t5g"]
+[ext_resource type="ButtonGroup" uid="uid://bij2tonqeslpt" path="res://Scenes/GUI/FlyoutButtonGroup.tres" id="3_p1t5g"]
+[ext_resource type="PackedScene" uid="uid://cbf3x44mvo701" path="res://Scenes/GUI/Controls/IndicatorLight.tscn" id="4_wuj6m"]
[sub_resource type="ViewportTexture" id="ViewportTexture_g6u4d"]
viewport_path = NodePath("SubViewport")
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wy7jo"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_v0ton"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_20noo"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_mch36"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_fxi2g"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_bdf35"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_j2w5p"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_bv2rw"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_gx718"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_gu086"]
-
-[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_othvt"]
-
[node name="EditorScreen" type="Control"]
layout_mode = 3
anchors_preset = 15
@@ -47,1099 +16,1025 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
-theme = ExtResource("1_v0ton")
script = ExtResource("1_sd512")
-[node name="OpenAudioFileDialog" type="FileDialog" parent="."]
-title = "Open a File"
-initial_position = 2
-ok_button_text = "Open"
-dialog_hide_on_ok = true
-file_mode = 0
-access = 2
-filters = PackedStringArray("*.wav", "*.mp3", "*.ogg")
-
-[node name="OpenShowtapeFileDialog" type="FileDialog" parent="."]
-auto_translate_mode = 1
-title = "Open a File"
-initial_position = 2
-ok_button_text = "Open"
-dialog_hide_on_ok = true
-file_mode = 0
-access = 2
-filters = PackedStringArray("*.ust")
-
-[node name="SaveShowtapeFileDialog" type="FileDialog" parent="."]
-auto_translate_mode = 1
-initial_position = 2
-dialog_hide_on_ok = true
-access = 2
-filters = PackedStringArray("*.ust")
-
-[node name="NewOverwriteConfirmationDialog" type="ConfirmationDialog" parent="."]
-initial_position = 2
-size = Vector2i(472, 100)
-ok_button_text = "Proceed"
-dialog_text = "You have unsaved data! Are you sure you want to proceed?"
-cancel_button_text = "Do Not"
-
-[node name="LoadOverwriteConfirmationDialog" type="ConfirmationDialog" parent="."]
-auto_translate_mode = 1
-initial_position = 2
-size = Vector2i(472, 100)
-ok_button_text = "Proceed"
-dialog_text = "You have unsaved data! Are you sure you want to proceed?"
-cancel_button_text = "Do Not"
-
-[node name="StageChangeOverwriteConfirmationDialog" type="ConfirmationDialog" parent="."]
-auto_translate_mode = 1
-initial_position = 2
-size = Vector2i(472, 100)
-ok_button_text = "Proceed"
-dialog_text = "You have unsaved data! Are you sure you want to proceed?"
-cancel_button_text = "Do Not"
-
-[node name="FileDoesntExistDialog" type="AcceptDialog" parent="."]
-initial_position = 2
-dialog_text = "The specified file does not exist."
-
-[node name="EmptyStringDialog" type="AcceptDialog" parent="."]
-auto_translate_mode = 1
-initial_position = 2
-dialog_text = "String cannot be blank."
-
-[node name="NoShowtapeLoadedDialog" type="AcceptDialog" parent="."]
-auto_translate_mode = 1
-initial_position = 2
-dialog_text = "There is no showtape currently loaded."
-
-[node name="IncorrectShowtapeDialog" type="AcceptDialog" parent="."]
-auto_translate_mode = 1
-initial_position = 2
-dialog_text = "This showtape is not compatible with the currently selected stage."
-
-[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
-
[node name="SubViewport" type="SubViewport" parent="."]
size = Vector2i(1280, 720)
+size_2d_override = Vector2i(640, 360)
+
+[node name="HelenHouse" parent="SubViewport" instance=ExtResource("2_p1t5g")]
[node name="ColorRect" type="ColorRect" parent="."]
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
+layout_mode = 0
+offset_right = 1280.0
+offset_bottom = 720.0
color = Color(0.187176, 0.187176, 0.187176, 1)
+[node name="CameraPreview" type="TextureRect" parent="."]
+layout_mode = 0
+offset_left = 636.0
+offset_top = 48.0
+offset_right = 1276.0
+offset_bottom = 408.0
+texture = SubResource("ViewportTexture_g6u4d")
+expand_mode = 2
+
[node name="Label" type="Label" parent="."]
-layout_mode = 1
-anchors_preset = -1
-anchor_right = 0.5
-anchor_bottom = 0.5
+layout_mode = 0
offset_left = 144.0
offset_top = 48.0
-offset_right = -8.0
-offset_bottom = 48.0
-grow_horizontal = 2
-grow_vertical = 2
+offset_right = 632.0
+offset_bottom = 408.0
text = "Welcome to Pneumatic Plaything Animatronic Simulator!
You can press the buttons to the side to
-control the bots manually, adjust their flows,
-change the camera angle, or switch their cosmetics.
+control the bot, or adjust its flows.
-Open the Controls menu to see all of the keybinds."
+Open the Controls menu to see all of the keybinds.
+
+More features will be coming in the future, so stay tuned!"
horizontal_alignment = 1
vertical_alignment = 1
-[node name="CameraPlaceholder" type="TextureRect" parent="."]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_right = 1.0
-anchor_bottom = 0.5
-offset_left = -4.0
-offset_top = 48.0
-offset_right = -4.0
-offset_bottom = 48.0
-grow_horizontal = 2
-grow_vertical = 2
-texture = ExtResource("4_v0ton")
-expand_mode = 1
-
-[node name="CameraPreview" type="TextureRect" parent="."]
-visible = false
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_right = 1.0
-offset_left = -4.0
-offset_top = 48.0
-offset_right = -4.0
-grow_horizontal = 0
-texture = SubResource("ViewportTexture_g6u4d")
-expand_mode = 5
-stretch_mode = 6
-
[node name="MenuBar" type="Panel" parent="."]
-layout_mode = 1
-anchors_preset = -1
-anchor_right = 1.0
+layout_mode = 0
offset_left = 4.0
offset_top = 4.0
-offset_right = -4.0
+offset_right = 1276.0
offset_bottom = 44.0
-grow_horizontal = 2
-
-[node name="StageSelector" type="OptionButton" parent="MenuBar"]
-layout_mode = 0
-offset_left = 4.0
-offset_top = 4.0
-offset_right = 260.0
-offset_bottom = 36.0
-selected = 0
-item_count = 3
-popup/item_0/text = "Balcony Stage"
-popup/item_0/id = 0
-popup/item_1/text = "Helen House"
-popup/item_1/id = 1
-popup/item_2/text = "Chuck E's Corner"
-popup/item_2/id = 2
-
-[node name="MenuButton" type="MenuButton" parent="MenuBar"]
-layout_mode = 0
-offset_left = 264.0
-offset_top = 4.0
-offset_right = 392.0
-offset_bottom = 36.0
-text = "Showtape"
-flat = false
-item_count = 3
-popup/item_0/text = "New"
-popup/item_0/id = 0
-popup/item_1/text = "Load"
-popup/item_1/id = 1
-popup/item_2/text = "Save"
-popup/item_2/id = 2
-
-[node name="ControlsButton" type="Button" parent="MenuBar"]
-layout_mode = 0
-offset_left = 396.0
-offset_top = 4.0
-offset_right = 524.0
-offset_bottom = 36.0
-text = "Controls"
-
-[node name="CreditsButton" type="Button" parent="MenuBar"]
-layout_mode = 0
-offset_left = 528.0
-offset_top = 4.0
-offset_right = 656.0
-offset_bottom = 36.0
-text = "Credits"
[node name="Wordmark" type="Label" parent="MenuBar"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 1.0
-anchor_top = 0.5
-anchor_right = 1.0
-anchor_bottom = 0.5
-offset_left = -264.0
-offset_top = -16.0
-offset_right = -40.0
-offset_bottom = 16.0
-grow_horizontal = 0
-grow_vertical = 2
-text = "Pneumatic Plaything v0.6"
-horizontal_alignment = 2
-vertical_alignment = 1
-
-[node name="EditingLabel" type="Label" parent="MenuBar"]
layout_mode = 0
-offset_left = 660.0
+offset_left = 1044.0
offset_top = 4.0
-offset_right = 899.0
+offset_right = 1268.0
offset_bottom = 36.0
-text = "No showtape loaded."
+text = "Pneumatic Plaything v0.2"
+horizontal_alignment = 1
vertical_alignment = 1
-[node name="TextureRect" type="TextureRect" parent="MenuBar"]
-layout_mode = 1
-anchors_preset = 1
-anchor_left = 1.0
-anchor_right = 1.0
-offset_left = -36.0
-offset_top = 4.0
-offset_right = -4.0
-offset_bottom = 36.0
-grow_horizontal = 0
-texture = ExtResource("4_20noo")
-
[node name="SequencerPanel" type="Panel" parent="."]
-layout_mode = 1
-anchors_preset = -1
-anchor_top = 0.5
-anchor_right = 1.0
-anchor_bottom = 1.0
-offset_left = 4.0
-offset_top = 52.0
-offset_right = -4.0
-offset_bottom = -4.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="TransportControls" type="Control" parent="SequencerPanel"]
-layout_mode = 1
-anchors_preset = 10
-anchor_right = 1.0
-offset_bottom = 48.0
-grow_horizontal = 2
-
-[node name="TimeLabel" type="Label" parent="SequencerPanel/TransportControls"]
-layout_mode = 0
-offset_left = 8.0
-offset_top = 8.0
-offset_right = 196.0
-offset_bottom = 40.0
-text = "0:00:00:00"
-vertical_alignment = 1
-
-[node name="Centered" type="Control" parent="SequencerPanel/TransportControls"]
-layout_mode = 1
-anchors_preset = 8
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-offset_left = -178.0
-offset_top = -24.0
-offset_right = 178.0
-offset_bottom = 24.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="StepBackwardsButton" type="Button" parent="SequencerPanel/TransportControls/Centered"]
layout_mode = 0
offset_left = 4.0
-offset_top = 4.0
-offset_right = 44.0
-offset_bottom = 44.0
-tooltip_text = "Step backward 1 frame"
-disabled = true
-icon = ExtResource("3_r4ytj")
+offset_top = 412.0
+offset_right = 1276.0
+offset_bottom = 716.0
-[node name="FastBackwardsButton" type="Button" parent="SequencerPanel/TransportControls/Centered"]
+[node name="FlyoutButtons" type="Panel" parent="."]
layout_mode = 0
-offset_left = 48.0
-offset_top = 4.0
-offset_right = 88.0
-offset_bottom = 44.0
-tooltip_text = "Play backwards at 2x speed"
-disabled = true
-icon = ExtResource("4_wy7jo")
-
-[node name="PlayBackwardsButton" type="Button" parent="SequencerPanel/TransportControls/Centered"]
-layout_mode = 0
-offset_left = 92.0
-offset_top = 4.0
-offset_right = 132.0
-offset_bottom = 44.0
-tooltip_text = "Play backwards"
-disabled = true
-icon = ExtResource("3_mr8sb")
-
-[node name="PauseButton" type="Button" parent="SequencerPanel/TransportControls/Centered"]
-layout_mode = 0
-offset_left = 136.0
-offset_top = 4.0
-offset_right = 176.0
-offset_bottom = 44.0
-tooltip_text = "Pause"
-disabled = true
-icon = ExtResource("4_ba3jn")
-
-[node name="StopButton" type="Button" parent="SequencerPanel/TransportControls/Centered"]
-layout_mode = 0
-offset_left = 180.0
-offset_top = 4.0
-offset_right = 220.0
-offset_bottom = 44.0
-tooltip_text = "Stop playback and return to frame 0"
-disabled = true
-icon = ExtResource("8_20noo")
-
-[node name="PlayButton" type="Button" parent="SequencerPanel/TransportControls/Centered"]
-layout_mode = 0
-offset_left = 224.0
-offset_top = 4.0
-offset_right = 264.0
-offset_bottom = 44.0
-tooltip_text = "Play"
-disabled = true
-icon = ExtResource("3_g6u4d")
-
-[node name="FastForwardButton" type="Button" parent="SequencerPanel/TransportControls/Centered"]
-layout_mode = 0
-offset_left = 268.0
-offset_top = 4.0
-offset_right = 308.0
-offset_bottom = 44.0
-tooltip_text = "Play at 2x speed"
-disabled = true
-icon = ExtResource("8_v0ton")
-
-[node name="StepForwardButton" type="Button" parent="SequencerPanel/TransportControls/Centered"]
-layout_mode = 0
-offset_left = 312.0
-offset_top = 4.0
-offset_right = 352.0
-offset_bottom = 44.0
-tooltip_text = "Step forward 1 frame"
-disabled = true
-icon = ExtResource("9_20noo")
-
-[node name="RecordButton" type="Button" parent="SequencerPanel/TransportControls"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 1.0
-anchor_top = 0.5
-anchor_right = 1.0
-anchor_bottom = 0.5
-offset_left = -40.0
-offset_top = -20.0
-offset_right = -4.0
-offset_bottom = 20.0
-grow_horizontal = 0
-grow_vertical = 2
-tooltip_text = "Start recording"
-disabled = true
-toggle_mode = true
-icon = ExtResource("10_wy7jo")
-
-[node name="TimelinePanel" type="Panel" parent="SequencerPanel"]
-layout_mode = 1
-anchors_preset = -1
-anchor_right = 1.0
-anchor_bottom = 1.0
-offset_left = 4.0
-offset_top = 48.0
-offset_right = -4.0
-offset_bottom = -4.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="VScrollBar" type="VScrollBar" parent="SequencerPanel/TimelinePanel"]
-layout_mode = 1
-anchors_preset = 9
-anchor_bottom = 1.0
-offset_left = 4.0
-offset_top = 4.0
-offset_right = 12.0
-offset_bottom = -4.0
-grow_vertical = 2
-max_value = 0.0
-step = 1.0
-
-[node name="InvisibleMask" type="Control" parent="SequencerPanel/TimelinePanel"]
-clip_contents = true
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-offset_left = 16.0
-offset_top = 4.0
-offset_right = -4.0
-offset_bottom = -4.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="MovementRowsContainer" type="Control" parent="SequencerPanel/TimelinePanel/InvisibleMask"]
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="Playhead" type="VSeparator" parent="SequencerPanel/TimelinePanel/InvisibleMask"]
-layout_mode = 1
-anchors_preset = 9
-anchor_bottom = 1.0
-offset_left = 388.0
-offset_right = 392.0
-grow_vertical = 2
-
-[node name="FlyoutPanel" type="Control" parent="."]
-layout_mode = 1
-anchor_bottom = 0.5
offset_left = 4.0
offset_top = 48.0
offset_right = 140.0
-offset_bottom = 48.0
-grow_vertical = 2
+offset_bottom = 408.0
-[node name="FlyoutButtons" type="Panel" parent="FlyoutPanel"]
-layout_mode = 1
-anchors_preset = 9
-anchor_bottom = 1.0
-offset_right = 136.0
-grow_vertical = 2
-
-[node name="MovementsFlyoutButton" type="Button" parent="FlyoutPanel/FlyoutButtons"]
+[node name="MovementsFlyoutButton" type="Button" parent="FlyoutButtons"]
layout_mode = 0
offset_left = 4.0
offset_top = 4.0
offset_right = 132.0
offset_bottom = 36.0
toggle_mode = true
-button_group = ExtResource("13_wy7jo")
+button_group = ExtResource("3_p1t5g")
text = "Movements"
-[node name="FlowsFlyoutButton" type="Button" parent="FlyoutPanel/FlyoutButtons"]
+[node name="FlowsFlyoutButton" type="Button" parent="FlyoutButtons"]
layout_mode = 0
offset_left = 4.0
offset_top = 40.0
offset_right = 132.0
offset_bottom = 72.0
toggle_mode = true
-button_group = ExtResource("13_wy7jo")
+button_group = ExtResource("3_p1t5g")
text = "Flows"
-[node name="CameraFlyoutButton" type="Button" parent="FlyoutPanel/FlyoutButtons"]
+[node name="CameraFlyoutButton" type="Button" parent="FlyoutButtons"]
layout_mode = 0
offset_left = 4.0
offset_top = 76.0
offset_right = 132.0
offset_bottom = 108.0
toggle_mode = true
-button_group = ExtResource("13_wy7jo")
+button_group = ExtResource("3_p1t5g")
text = "Camera"
-[node name="CosmeticsFlyoutButton" type="Button" parent="FlyoutPanel/FlyoutButtons"]
+[node name="Movements" type="Panel" parent="."]
+visible = false
+layout_mode = 0
+offset_left = 144.0
+offset_top = 48.0
+offset_right = 484.0
+offset_bottom = 412.0
+
+[node name="Buttons" type="Control" parent="Movements"]
+anchors_preset = 0
+
+[node name="Mouth" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 4.0
+offset_right = 132.0
+offset_bottom = 36.0
+text = "Mouth"
+
+[node name="LeftEar" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 40.0
+offset_right = 132.0
+offset_bottom = 72.0
+text = "Left Ear"
+
+[node name="RightEar" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 76.0
+offset_right = 132.0
+offset_bottom = 108.0
+text = "Right Ear"
+
+[node name="LeftEyelid" type="Button" parent="Movements/Buttons"]
layout_mode = 0
offset_left = 4.0
offset_top = 112.0
offset_right = 132.0
offset_bottom = 144.0
-toggle_mode = true
-button_group = ExtResource("13_wy7jo")
-text = "Cosmetics"
+text = "Left Eyelid"
-[node name="Movements" type="Panel" parent="FlyoutPanel"]
-visible = false
+[node name="RightEyelid" type="Button" parent="Movements/Buttons"]
layout_mode = 0
-offset_left = 140.0
-offset_right = 416.0
-offset_bottom = 392.0
-
-[node name="InvisibleMask" type="Control" parent="FlyoutPanel/Movements"]
-clip_contents = true
-layout_mode = 3
-anchors_preset = 0
offset_left = 4.0
-offset_top = 4.0
-offset_right = 260.0
-offset_bottom = 388.0
+offset_top = 148.0
+offset_right = 132.0
+offset_bottom = 180.0
+text = "Right Eyelid"
-[node name="MovementHandle" type="Control" parent="FlyoutPanel/Movements/InvisibleMask"]
-anchors_preset = 0
-
-[node name="VScrollBar" type="VScrollBar" parent="FlyoutPanel/Movements"]
+[node name="EyesLeft" type="Button" parent="Movements/Buttons"]
layout_mode = 0
-offset_left = 264.0
-offset_top = 4.0
-offset_right = 272.0
-offset_bottom = 388.0
-max_value = 0.0
-step = 1.0
-
-[node name="FlowControls" type="Panel" parent="FlyoutPanel"]
-visible = false
-layout_mode = 0
-offset_left = 140.0
-offset_right = 672.0
-offset_bottom = 392.0
-
-[node name="InvisibleMask" type="Control" parent="FlyoutPanel/FlowControls"]
-clip_contents = true
-anchors_preset = 0
offset_left = 4.0
-offset_top = 4.0
-offset_right = 516.0
-offset_bottom = 388.0
+offset_top = 184.0
+offset_right = 132.0
+offset_bottom = 216.0
+text = "Eyes Left"
-[node name="FlowHandle" type="Control" parent="FlyoutPanel/FlowControls/InvisibleMask"]
+[node name="EyesRight" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 220.0
+offset_right = 132.0
+offset_bottom = 252.0
+text = "Eyes Right"
+
+[node name="HeadLeft" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 256.0
+offset_right = 132.0
+offset_bottom = 288.0
+text = "Head Left"
+
+[node name="HeadRight" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 292.0
+offset_right = 132.0
+offset_bottom = 324.0
+text = "Head Right"
+
+[node name="HeadUp" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 328.0
+offset_right = 132.0
+offset_bottom = 360.0
+text = "Head Up"
+
+[node name="LeftArmUp" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 172.0
+offset_top = 4.0
+offset_right = 300.0
+offset_bottom = 36.0
+text = "Left Arm Up"
+
+[node name="LeftArmTwist" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 172.0
+offset_top = 40.0
+offset_right = 300.0
+offset_bottom = 72.0
+text = "Left Arm Twist"
+
+[node name="LeftElbow" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 172.0
+offset_top = 76.0
+offset_right = 300.0
+offset_bottom = 108.0
+text = "Left Elbow"
+
+[node name="RightArmUp" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 172.0
+offset_top = 112.0
+offset_right = 300.0
+offset_bottom = 144.0
+text = "Right Arm Up"
+
+[node name="RightArmTwist" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 172.0
+offset_top = 148.0
+offset_right = 300.0
+offset_bottom = 180.0
+text = "R. Arm Twist"
+
+[node name="RightElbow" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 172.0
+offset_top = 184.0
+offset_right = 300.0
+offset_bottom = 216.0
+text = "Right Elbow"
+
+[node name="BodyLeft" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 172.0
+offset_top = 220.0
+offset_right = 300.0
+offset_bottom = 252.0
+text = "Body Left"
+
+[node name="BodyRight" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 172.0
+offset_top = 256.0
+offset_right = 300.0
+offset_bottom = 288.0
+text = "Body Right"
+
+[node name="BodyLean" type="Button" parent="Movements/Buttons"]
+layout_mode = 0
+offset_left = 172.0
+offset_top = 292.0
+offset_right = 300.0
+offset_bottom = 324.0
+text = "Body Lean"
+
+[node name="IndicatorLights" type="Control" parent="Movements"]
anchors_preset = 0
-[node name="VScrollBar" type="VScrollBar" parent="FlyoutPanel/FlowControls"]
-layout_mode = 0
-offset_left = 520.0
+[node name="Mouth" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 136.0
offset_top = 4.0
-offset_right = 528.0
-offset_bottom = 388.0
-max_value = 0.0
-step = 1.0
-
-[node name="Camera" type="Panel" parent="FlyoutPanel"]
-visible = false
-layout_mode = 0
-offset_left = 140.0
-offset_right = 276.0
+offset_right = 136.0
offset_bottom = 4.0
-[node name="Cosmetics" type="Panel" parent="FlyoutPanel"]
-visible = false
-layout_mode = 0
-offset_left = 140.0
-offset_right = 544.0
-offset_bottom = 392.0
-
-[node name="InvisibleMask" type="Control" parent="FlyoutPanel/Cosmetics"]
-clip_contents = true
-anchors_preset = 0
-offset_left = 4.0
-offset_top = 4.0
-offset_right = 388.0
-offset_bottom = 388.0
-
-[node name="CosmeticsHandle" type="Control" parent="FlyoutPanel/Cosmetics/InvisibleMask"]
-anchors_preset = 0
-
-[node name="VScrollBar" type="VScrollBar" parent="FlyoutPanel/Cosmetics"]
-layout_mode = 0
-offset_left = 392.0
-offset_top = 4.0
-offset_right = 400.0
-offset_bottom = 388.0
-max_value = 0.0
-step = 1.0
-
-[node name="ControlsScreen" type="Control" parent="."]
-visible = false
+[node name="Left Ear" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="InputEater" type="Button" parent="ControlsScreen"]
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-theme_override_styles/focus = SubResource("StyleBoxEmpty_wy7jo")
-theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_v0ton")
-theme_override_styles/disabled = SubResource("StyleBoxEmpty_20noo")
-theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_mch36")
-theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_fxi2g")
-theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_bdf35")
-theme_override_styles/hover = SubResource("StyleBoxEmpty_j2w5p")
-theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_bv2rw")
-theme_override_styles/pressed = SubResource("StyleBoxEmpty_gx718")
-theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_gu086")
-theme_override_styles/normal = SubResource("StyleBoxEmpty_othvt")
-
-[node name="DialogPanel" type="Panel" parent="ControlsScreen"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-offset_left = -256.0
-offset_top = -192.0
-offset_right = 256.0
-offset_bottom = 192.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="Label" type="Label" parent="ControlsScreen/DialogPanel"]
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-text = "Fullscreen camera view: ESC
-Fullscreen program: F11 or Alt+Enter
-Play/Pause: Space
-Play Reverse: Shift + Space
-Fast Forward: Shift + Right Arrow
-Fast Reverse: Shift + Left
-Step Forward: Right Arrow
-Step Backward: Left Arrow
-Stop: Home
-Change Camera Angle: Tab"
-horizontal_alignment = 1
-vertical_alignment = 1
-
-[node name="CreditsScreen" type="Control" parent="."]
-visible = false
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="InputEater" type="Button" parent="CreditsScreen"]
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-theme_override_styles/focus = SubResource("StyleBoxEmpty_wy7jo")
-theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_v0ton")
-theme_override_styles/disabled = SubResource("StyleBoxEmpty_20noo")
-theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_mch36")
-theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_fxi2g")
-theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_bdf35")
-theme_override_styles/hover = SubResource("StyleBoxEmpty_j2w5p")
-theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_bv2rw")
-theme_override_styles/pressed = SubResource("StyleBoxEmpty_gx718")
-theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_gu086")
-theme_override_styles/normal = SubResource("StyleBoxEmpty_othvt")
-
-[node name="DialogPanel" type="Panel" parent="CreditsScreen"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-offset_left = -256.0
-offset_top = -192.0
-offset_right = 256.0
-offset_bottom = 192.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="Label" type="Label" parent="CreditsScreen/DialogPanel"]
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-text = "Pneumatic Plaything Animatronic Simulator
-
-Project Oversight: Persephone (KawaiiZenbo)
-
-Interface Design: Persephone
-Simulator Backend: Persephone
-3-Stage Models: Persephone
-PTT Cybers Models: Persephone
-Chuck E's Corner Stage: Luigigamin212
-Balcony Stage Model: ToastHQ
-
-This project is not associated with CEC Entertainment LLC.
-or Creative Engineering Inc."
-horizontal_alignment = 1
-vertical_alignment = 1
-
-[node name="ShowtapeNewScreen" type="Control" parent="."]
-visible = false
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="InputEater" type="Button" parent="ShowtapeNewScreen"]
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-theme_override_styles/focus = SubResource("StyleBoxEmpty_wy7jo")
-theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_v0ton")
-theme_override_styles/disabled = SubResource("StyleBoxEmpty_20noo")
-theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_mch36")
-theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_fxi2g")
-theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_bdf35")
-theme_override_styles/hover = SubResource("StyleBoxEmpty_j2w5p")
-theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_bv2rw")
-theme_override_styles/pressed = SubResource("StyleBoxEmpty_gx718")
-theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_gu086")
-theme_override_styles/normal = SubResource("StyleBoxEmpty_othvt")
-
-[node name="DialogPanel" type="Panel" parent="ShowtapeNewScreen"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-offset_left = -256.0
-offset_top = -128.0
-offset_right = 256.0
-offset_bottom = 128.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="DialogLabel" type="Label" parent="ShowtapeNewScreen/DialogPanel"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_right = 0.5
-offset_left = -96.0
-offset_top = 4.0
-offset_right = 96.0
-offset_bottom = 36.0
-grow_horizontal = 2
-text = "Create New Showtape"
-horizontal_alignment = 1
-vertical_alignment = 1
-
-[node name="AudioTypeLabel" type="Label" parent="ShowtapeNewScreen/DialogPanel"]
-layout_mode = 0
-offset_left = 8.0
+offset_left = 136.0
offset_top = 40.0
-offset_right = 264.0
-offset_bottom = 72.0
-text = "Audio File (WAV, MP3, or OGG)"
-vertical_alignment = 1
+offset_right = 136.0
+offset_bottom = 40.0
-[node name="AudioFilePath" type="TextEdit" parent="ShowtapeNewScreen/DialogPanel"]
+[node name="Right Ear" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
layout_mode = 1
-anchors_preset = -1
-anchor_right = 1.0
-offset_left = 4.0
+offset_left = 136.0
offset_top = 76.0
-offset_right = -104.0
+offset_right = 136.0
+offset_bottom = 76.0
+
+[node name="Left Eyelid" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 136.0
+offset_top = 112.0
+offset_right = 136.0
offset_bottom = 112.0
-grow_horizontal = 2
-grow_vertical = 2
-placeholder_text = "File Path"
-[node name="AudioBrowseButton" type="Button" parent="ShowtapeNewScreen/DialogPanel"]
+[node name="Right Eyelid" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
layout_mode = 1
-anchors_preset = -1
-anchor_left = 1.0
-anchor_right = 1.0
-offset_left = -100.0
-offset_top = 76.0
-offset_right = -4.0
-offset_bottom = 112.0
-tooltip_text = "Browse for a file."
-text = "Browse"
-
-[node name="ShowNameLabel" type="Label" parent="ShowtapeNewScreen/DialogPanel"]
-layout_mode = 0
-offset_left = 8.0
-offset_top = 116.0
-offset_right = 264.0
-offset_bottom = 148.0
-text = "Showtape Name"
-vertical_alignment = 1
-
-[node name="ShowNameTextBox" type="TextEdit" parent="ShowtapeNewScreen/DialogPanel"]
-layout_mode = 1
-anchors_preset = -1
-anchor_right = 1.0
-offset_left = 4.0
-offset_top = 152.0
-offset_right = -4.0
-offset_bottom = 188.0
-grow_horizontal = 2
-grow_vertical = 2
-placeholder_text = "Show Name"
-
-[node name="CancelButton" type="Button" parent="ShowtapeNewScreen/DialogPanel"]
-layout_mode = 0
-offset_left = 309.0
-offset_top = 216.0
-offset_right = 405.0
-offset_bottom = 248.0
-text = "Cancel
-"
-
-[node name="CreateButton" type="Button" parent="ShowtapeNewScreen/DialogPanel"]
-layout_mode = 0
-offset_left = 408.0
-offset_top = 216.0
-offset_right = 504.0
-offset_bottom = 248.0
-text = "Create"
-
-[node name="ShowtapeLoadScreen" type="Control" parent="."]
-visible = false
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="InputEater" type="Button" parent="ShowtapeLoadScreen"]
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-theme_override_styles/focus = SubResource("StyleBoxEmpty_wy7jo")
-theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_v0ton")
-theme_override_styles/disabled = SubResource("StyleBoxEmpty_20noo")
-theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_mch36")
-theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_fxi2g")
-theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_bdf35")
-theme_override_styles/hover = SubResource("StyleBoxEmpty_j2w5p")
-theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_bv2rw")
-theme_override_styles/pressed = SubResource("StyleBoxEmpty_gx718")
-theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_gu086")
-theme_override_styles/normal = SubResource("StyleBoxEmpty_othvt")
-
-[node name="DialogPanel" type="Panel" parent="ShowtapeLoadScreen"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-offset_left = -256.0
-offset_top = -128.0
-offset_right = 256.0
-offset_bottom = 128.0
-grow_horizontal = 2
-grow_vertical = 2
-
-[node name="DialogLabel" type="Label" parent="ShowtapeLoadScreen/DialogPanel"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_right = 0.5
-offset_left = -96.0
-offset_top = 4.0
-offset_right = 96.0
-offset_bottom = 36.0
-grow_horizontal = 2
-text = "Load Showtape"
-horizontal_alignment = 1
-vertical_alignment = 1
-
-[node name="InFileLabel" type="Label" parent="ShowtapeLoadScreen/DialogPanel"]
-layout_mode = 0
-offset_left = 8.0
-offset_top = 73.0
-offset_right = 264.0
-offset_bottom = 105.0
-text = "File to load"
-vertical_alignment = 1
-
-[node name="InFilePath" type="TextEdit" parent="ShowtapeLoadScreen/DialogPanel"]
-layout_mode = 1
-anchors_preset = -1
-anchor_right = 1.0
-offset_left = 4.0
-offset_top = 109.0
-offset_right = -104.0
-offset_bottom = 145.0
-grow_horizontal = 2
-grow_vertical = 2
-placeholder_text = "File Path"
-
-[node name="InBrowseButton" type="Button" parent="ShowtapeLoadScreen/DialogPanel"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 1.0
-anchor_right = 1.0
-offset_left = -100.0
-offset_top = 109.0
-offset_right = -4.0
-offset_bottom = 145.0
-tooltip_text = "Browse for a file."
-text = "Browse"
-
-[node name="ShowWaitMessage" type="Label" parent="ShowtapeLoadScreen/DialogPanel"]
-layout_mode = 0
-offset_left = 8.0
+offset_left = 136.0
offset_top = 148.0
-offset_right = 374.0
-offset_bottom = 197.0
-text = "If shows are taking a long time to load,
-consider compressing the audio to MP3 or OGG"
-vertical_alignment = 1
+offset_right = 136.0
+offset_bottom = 148.0
-[node name="CancelButton" type="Button" parent="ShowtapeLoadScreen/DialogPanel"]
-layout_mode = 0
-offset_left = 309.0
-offset_top = 216.0
-offset_right = 405.0
-offset_bottom = 248.0
-text = "Cancel
-"
-
-[node name="OpenButton" type="Button" parent="ShowtapeLoadScreen/DialogPanel"]
-layout_mode = 0
-offset_left = 408.0
-offset_top = 216.0
-offset_right = 504.0
-offset_bottom = 248.0
-text = "Open"
-
-[node name="ShowtapeSaveScreen" type="Control" parent="."]
-visible = false
+[node name="Eyes Left" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
+offset_left = 136.0
+offset_top = 184.0
+offset_right = 136.0
+offset_bottom = 184.0
-[node name="InputEater" type="Button" parent="ShowtapeSaveScreen"]
+[node name="Eyes Right" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-theme_override_styles/focus = SubResource("StyleBoxEmpty_wy7jo")
-theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_v0ton")
-theme_override_styles/disabled = SubResource("StyleBoxEmpty_20noo")
-theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_mch36")
-theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_fxi2g")
-theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_bdf35")
-theme_override_styles/hover = SubResource("StyleBoxEmpty_j2w5p")
-theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_bv2rw")
-theme_override_styles/pressed = SubResource("StyleBoxEmpty_gx718")
-theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_gu086")
-theme_override_styles/normal = SubResource("StyleBoxEmpty_othvt")
+offset_left = 136.0
+offset_top = 220.0
+offset_right = 136.0
+offset_bottom = 220.0
-[node name="DialogPanel" type="Panel" parent="ShowtapeSaveScreen"]
+[node name="Head Left" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-offset_left = -256.0
-offset_top = -128.0
-offset_right = 256.0
-offset_bottom = 128.0
-grow_horizontal = 2
-grow_vertical = 2
+offset_left = 136.0
+offset_top = 256.0
+offset_right = 136.0
+offset_bottom = 256.0
-[node name="DialogLabel" type="Label" parent="ShowtapeSaveScreen/DialogPanel"]
+[node name="Head Right" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
layout_mode = 1
-anchors_preset = -1
-anchor_left = 0.5
-anchor_right = 0.5
-offset_left = -96.0
+offset_left = 136.0
+offset_top = 292.0
+offset_right = 136.0
+offset_bottom = 292.0
+
+[node name="Head Up" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 136.0
+offset_top = 328.0
+offset_right = 136.0
+offset_bottom = 328.0
+
+[node name="Left Arm Up" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 304.0
offset_top = 4.0
-offset_right = 96.0
-offset_bottom = 36.0
-grow_horizontal = 2
-text = "Save Showtape"
+offset_right = 304.0
+offset_bottom = 4.0
+
+[node name="Left Arm Twist" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 304.0
+offset_top = 40.0
+offset_right = 304.0
+offset_bottom = 40.0
+
+[node name="Left Elbow" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 304.0
+offset_top = 76.0
+offset_right = 304.0
+offset_bottom = 76.0
+
+[node name="Right Arm Up" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 304.0
+offset_top = 112.0
+offset_right = 304.0
+offset_bottom = 112.0
+
+[node name="Right Arm Twist" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 304.0
+offset_top = 148.0
+offset_right = 304.0
+offset_bottom = 148.0
+
+[node name="Right Elbow" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 304.0
+offset_top = 184.0
+offset_right = 304.0
+offset_bottom = 184.0
+
+[node name="Body Left" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 304.0
+offset_top = 220.0
+offset_right = 304.0
+offset_bottom = 220.0
+
+[node name="Body Right" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 304.0
+offset_top = 256.0
+offset_right = 304.0
+offset_bottom = 256.0
+
+[node name="Body Lean" parent="Movements/IndicatorLights" instance=ExtResource("4_wuj6m")]
+layout_mode = 1
+offset_left = 304.0
+offset_top = 292.0
+offset_right = 304.0
+offset_bottom = 292.0
+
+[node name="FlowControls" type="Panel" parent="."]
+visible = false
+layout_mode = 0
+offset_left = 144.0
+offset_top = 48.0
+offset_right = 812.0
+offset_bottom = 440.0
+
+[node name="Labels" type="Control" parent="FlowControls"]
+anchors_preset = 0
+offset_top = -40.0
+offset_bottom = -40.0
+
+[node name="MovementsLabel1" type="Label" parent="FlowControls/Labels"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 40.0
+offset_right = 132.0
+offset_bottom = 72.0
+text = "Movement"
horizontal_alignment = 1
vertical_alignment = 1
-[node name="OutFileLabel" type="Label" parent="ShowtapeSaveScreen/DialogPanel"]
+[node name="MovementsLabel2" type="Label" parent="FlowControls/Labels"]
layout_mode = 0
-offset_left = 8.0
-offset_top = 73.0
-offset_right = 264.0
-offset_bottom = 105.0
-text = "File to save as"
+offset_left = 336.0
+offset_top = 40.0
+offset_right = 464.0
+offset_bottom = 72.0
+text = "Movement"
+horizontal_alignment = 1
vertical_alignment = 1
-[node name="OutFilePath" type="TextEdit" parent="ShowtapeSaveScreen/DialogPanel"]
+[node name="InFlowsLabel1" type="Label" parent="FlowControls/Labels"]
+layout_mode = 0
+offset_left = 136.0
+offset_top = 40.0
+offset_right = 232.0
+offset_bottom = 72.0
+text = "In Flow"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="InFlowsLabel2" type="Label" parent="FlowControls/Labels"]
+layout_mode = 0
+offset_left = 468.0
+offset_top = 40.0
+offset_right = 564.0
+offset_bottom = 72.0
+text = "In Flow"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="OutFlowsLabel1" type="Label" parent="FlowControls/Labels"]
+layout_mode = 0
+offset_left = 236.0
+offset_top = 40.0
+offset_right = 332.0
+offset_bottom = 72.0
+text = "Out Flow"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="OutFlowsLabel2" type="Label" parent="FlowControls/Labels"]
+layout_mode = 0
+offset_left = 568.0
+offset_top = 40.0
+offset_right = 664.0
+offset_bottom = 72.0
+text = "Out Flow"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="InFlows" type="Control" parent="FlowControls"]
+anchors_preset = 0
+offset_top = -40.0
+offset_bottom = -40.0
+
+[node name="MouthFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
layout_mode = 1
-anchors_preset = -1
-anchor_right = 1.0
+offset_left = 135.5
+offset_top = 72.0
+offset_right = 135.5
+offset_bottom = 72.0
+value = 3.0
+
+[node name="LeftEarFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 135.5
+offset_top = 108.0
+offset_right = 135.5
+offset_bottom = 108.0
+value = 3.5
+
+[node name="RightEarFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 135.5
+offset_top = 144.0
+offset_right = 135.5
+offset_bottom = 144.0
+value = 3.5
+
+[node name="LeftEyelidFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 135.5
+offset_top = 180.0
+offset_right = 135.5
+offset_bottom = 180.0
+value = 1.5
+
+[node name="RightEyelidFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 135.5
+offset_top = 216.0
+offset_right = 135.5
+offset_bottom = 216.0
+value = 1.5
+
+[node name="EyesLeftFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 135.5
+offset_top = 252.0
+offset_right = 135.5
+offset_bottom = 252.0
+value = 2.0
+
+[node name="EyesRightFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 135.5
+offset_top = 288.0
+offset_right = 135.5
+offset_bottom = 288.0
+value = 2.0
+
+[node name="HeadLeftFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 135.5
+offset_top = 324.0
+offset_right = 135.5
+offset_bottom = 324.0
+value = 1.5
+
+[node name="HeadRightFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 135.5
+offset_top = 360.0
+offset_right = 135.5
+offset_bottom = 360.0
+value = 1.5
+
+[node name="HeadUpFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 135.5
+offset_top = 396.0
+offset_right = 135.5
+offset_bottom = 396.0
+
+[node name="LeftArmUpFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 467.5
+offset_top = 72.0
+offset_right = 467.5
+offset_bottom = 72.0
+value = 0.8
+
+[node name="LeftArmTwistFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 467.5
+offset_top = 108.0
+offset_right = 467.5
+offset_bottom = 108.0
+value = 0.8
+
+[node name="LeftElbowFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 467.5
+offset_top = 144.0
+offset_right = 467.5
+offset_bottom = 144.0
+
+[node name="RightArmUpFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 467.5
+offset_top = 180.0
+offset_right = 467.5
+offset_bottom = 180.0
+value = 0.8
+
+[node name="RightArmTwistFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 467.5
+offset_top = 216.0
+offset_right = 467.5
+offset_bottom = 216.0
+value = 0.8
+
+[node name="RightElbowFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 467.5
+offset_top = 252.0
+offset_right = 467.5
+offset_bottom = 252.0
+
+[node name="BodyLeftFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 467.5
+offset_top = 288.0
+offset_right = 467.5
+offset_bottom = 288.0
+value = 0.7
+
+[node name="BodyRightFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 467.5
+offset_top = 324.0
+offset_right = 467.5
+offset_bottom = 324.0
+value = 0.7
+
+[node name="BodyLeanFlow" parent="FlowControls/InFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 467.5
+offset_top = 360.0
+offset_right = 467.5
+offset_bottom = 360.0
+
+[node name="OutFlows" type="Control" parent="FlowControls"]
+anchors_preset = 0
+offset_top = -40.0
+offset_bottom = -40.0
+
+[node name="MouthFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 72.0
+offset_right = 235.5
+offset_bottom = 72.0
+value = 2.0
+
+[node name="LeftEarFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 108.0
+offset_right = 235.5
+offset_bottom = 108.0
+value = 1.5
+
+[node name="RightEarFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 144.0
+offset_right = 235.5
+offset_bottom = 144.0
+value = 1.5
+
+[node name="LeftEyelidFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 180.0
+offset_right = 235.5
+offset_bottom = 180.0
+value = 2.0
+
+[node name="RightEyelidFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 216.0
+offset_right = 235.5
+offset_bottom = 216.0
+value = 2.0
+
+[node name="EyesLeftFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 252.0
+offset_right = 235.5
+offset_bottom = 252.0
+value = 2.0
+
+[node name="EyesRightFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 288.0
+offset_right = 235.5
+offset_bottom = 288.0
+value = 2.0
+
+[node name="HeadLeftFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 324.0
+offset_right = 235.5
+offset_bottom = 324.0
+value = 1.5
+
+[node name="HeadRightFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 360.0
+offset_right = 235.5
+offset_bottom = 360.0
+value = 1.5
+
+[node name="HeadUpFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 235.5
+offset_top = 396.0
+offset_right = 235.5
+offset_bottom = 396.0
+
+[node name="LeftArmUpFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 567.5
+offset_top = 72.0
+offset_right = 567.5
+offset_bottom = 72.0
+value = 0.6
+
+[node name="LeftArmTwistFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 567.5
+offset_top = 108.0
+offset_right = 567.5
+offset_bottom = 108.0
+value = 0.8
+
+[node name="LeftElbowFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 567.5
+offset_top = 144.0
+offset_right = 567.5
+offset_bottom = 144.0
+
+[node name="RightArmUpFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 567.5
+offset_top = 180.0
+offset_right = 567.5
+offset_bottom = 180.0
+value = 0.6
+
+[node name="RightArmTwistFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 567.5
+offset_top = 216.0
+offset_right = 567.5
+offset_bottom = 216.0
+value = 0.8
+
+[node name="RightElbowFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 567.5
+offset_top = 252.0
+offset_right = 567.5
+offset_bottom = 252.0
+
+[node name="BodyLeftFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 567.5
+offset_top = 288.0
+offset_right = 567.5
+offset_bottom = 288.0
+value = 0.7
+
+[node name="BodyRightFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 567.5
+offset_top = 324.0
+offset_right = 567.5
+offset_bottom = 324.0
+value = 0.7
+
+[node name="BodyLeanFlow" parent="FlowControls/OutFlows" instance=ExtResource("2_jo1ms")]
+layout_mode = 1
+offset_left = 567.5
+offset_top = 360.0
+offset_right = 567.5
+offset_bottom = 360.0
+value = 0.8
+
+[node name="MovementLabels" type="Control" parent="FlowControls"]
+layout_mode = 3
+anchors_preset = 0
+
+[node name="Mouth" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
offset_left = 4.0
-offset_top = 109.0
-offset_right = -104.0
-offset_bottom = 145.0
-grow_horizontal = 2
-grow_vertical = 2
-placeholder_text = "File Path"
+offset_top = 32.0
+offset_right = 132.0
+offset_bottom = 64.0
+text = "Mouth"
+horizontal_alignment = 1
+vertical_alignment = 1
-[node name="OutBrowseButton" type="Button" parent="ShowtapeSaveScreen/DialogPanel"]
-layout_mode = 1
-anchors_preset = -1
-anchor_left = 1.0
-anchor_right = 1.0
-offset_left = -100.0
-offset_top = 109.0
-offset_right = -4.0
-offset_bottom = 145.0
-tooltip_text = "Browse for a file."
-text = "Browse"
-
-[node name="CancelButton" type="Button" parent="ShowtapeSaveScreen/DialogPanel"]
+[node name="LeftEar" type="Label" parent="FlowControls/MovementLabels"]
layout_mode = 0
-offset_left = 309.0
-offset_top = 216.0
-offset_right = 405.0
-offset_bottom = 248.0
-text = "Cancel
-"
+offset_left = 4.0
+offset_top = 68.0
+offset_right = 132.0
+offset_bottom = 100.0
+text = "Left Ear"
+horizontal_alignment = 1
+vertical_alignment = 1
-[node name="CreateButton" type="Button" parent="ShowtapeSaveScreen/DialogPanel"]
+[node name="RightEar" type="Label" parent="FlowControls/MovementLabels"]
layout_mode = 0
-offset_left = 408.0
-offset_top = 216.0
-offset_right = 504.0
-offset_bottom = 248.0
-text = "Save"
+offset_left = 4.0
+offset_top = 104.0
+offset_right = 132.0
+offset_bottom = 136.0
+text = "Right Ear"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="LeftEyelid" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 140.0
+offset_right = 132.0
+offset_bottom = 172.0
+text = "Left Eyelid"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="RightEyelid" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 176.0
+offset_right = 132.0
+offset_bottom = 208.0
+text = "Right Eyelid"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="EyesLeft" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 212.0
+offset_right = 132.0
+offset_bottom = 244.0
+text = "Eyes Left"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="EyesRight" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 248.0
+offset_right = 132.0
+offset_bottom = 280.0
+text = "Eyes Right"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="HeadLeft" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 284.0
+offset_right = 132.0
+offset_bottom = 316.0
+text = "Head Left"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="HeadRight" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 320.0
+offset_right = 132.0
+offset_bottom = 352.0
+text = "Head Right"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="HeadUp" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 4.0
+offset_top = 356.0
+offset_right = 132.0
+offset_bottom = 388.0
+text = "Head Up"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="LeftArmUp" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 336.0
+offset_top = 32.0
+offset_right = 464.0
+offset_bottom = 64.0
+text = "Left Arm Up"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="LeftArmTwist" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 336.0
+offset_top = 68.0
+offset_right = 464.0
+offset_bottom = 100.0
+text = "Left Arm Twist"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="LeftElbow" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 336.0
+offset_top = 104.0
+offset_right = 464.0
+offset_bottom = 136.0
+text = "Left Elbow"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="RightArmUp" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 336.0
+offset_top = 140.0
+offset_right = 464.0
+offset_bottom = 172.0
+text = "Right Arm Up"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="RightArmTwist" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 336.0
+offset_top = 176.0
+offset_right = 464.0
+offset_bottom = 208.0
+text = "R. Arm Twist"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="RightElbow" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 336.0
+offset_top = 212.0
+offset_right = 464.0
+offset_bottom = 244.0
+text = "Right Elbow"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="BodyLeft" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 336.0
+offset_top = 248.0
+offset_right = 464.0
+offset_bottom = 280.0
+text = "Body Left"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="BodyRight" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 336.0
+offset_top = 284.0
+offset_right = 464.0
+offset_bottom = 316.0
+text = "Body Right"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="BodyLean" type="Label" parent="FlowControls/MovementLabels"]
+layout_mode = 0
+offset_left = 336.0
+offset_top = 320.0
+offset_right = 464.0
+offset_bottom = 352.0
+text = "Body Lean"
+horizontal_alignment = 1
+vertical_alignment = 1
[node name="CameraFullScreen" type="TextureRect" parent="."]
visible = false
-layout_mode = 1
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
+layout_mode = 0
+offset_right = 1280.0
+offset_bottom = 720.0
texture = SubResource("ViewportTexture_g6u4d")
expand_mode = 2
-[connection signal="file_selected" from="OpenAudioFileDialog" to="." method="_on_open_audio_file_dialog_file_selected"]
-[connection signal="file_selected" from="OpenShowtapeFileDialog" to="." method="_on_open_showtape_file_dialog_file_selected"]
-[connection signal="file_selected" from="SaveShowtapeFileDialog" to="." method="_on_save_showtape_file_dialog_file_selected"]
-[connection signal="confirmed" from="NewOverwriteConfirmationDialog" to="." method="_on_new_overwrite_confirmation_dialog_confirmed"]
-[connection signal="confirmed" from="LoadOverwriteConfirmationDialog" to="." method="_on_load_overwrite_confirmation_dialog_confirmed"]
-[connection signal="confirmed" from="StageChangeOverwriteConfirmationDialog" to="." method="_on_stage_change_overwrite_confirmation_dialog_confirmed"]
-[connection signal="item_selected" from="MenuBar/StageSelector" to="." method="_on_stage_selector_item_selected"]
-[connection signal="pressed" from="MenuBar/ControlsButton" to="." method="_on_controls_button_pressed"]
-[connection signal="pressed" from="MenuBar/CreditsButton" to="." method="_on_credits_button_pressed"]
-[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/StepBackwardsButton" to="." method="_on_step_backwards_button_pressed"]
-[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/FastBackwardsButton" to="." method="_on_fast_backwards_button_pressed"]
-[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/PlayBackwardsButton" to="." method="_on_play_backwards_button_pressed"]
-[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/PauseButton" to="." method="_on_pause_button_pressed"]
-[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/StopButton" to="." method="_on_stop_button_pressed"]
-[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/PlayButton" to="." method="_on_play_button_pressed"]
-[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/FastForwardButton" to="." method="_on_fast_forward_button_pressed"]
-[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/StepForwardButton" to="." method="_on_step_forward_button_pressed"]
-[connection signal="toggled" from="SequencerPanel/TransportControls/RecordButton" to="." method="_on_record_button_toggled"]
-[connection signal="value_changed" from="SequencerPanel/TimelinePanel/VScrollBar" to="." method="_on_v_scroll_bar_value_changed"]
-[connection signal="toggled" from="FlyoutPanel/FlyoutButtons/MovementsFlyoutButton" to="." method="_on_movements_flyout_button_toggled"]
-[connection signal="toggled" from="FlyoutPanel/FlyoutButtons/FlowsFlyoutButton" to="." method="_on_flows_flyout_button_toggled"]
-[connection signal="toggled" from="FlyoutPanel/FlyoutButtons/CameraFlyoutButton" to="." method="_on_camera_flyout_button_toggled"]
-[connection signal="toggled" from="FlyoutPanel/FlyoutButtons/CosmeticsFlyoutButton" to="." method="_on_cosmetics_flyout_button_toggled"]
-[connection signal="value_changed" from="FlyoutPanel/Movements/VScrollBar" to="." method="_on_movement_v_scroll_bar_value_changed"]
-[connection signal="value_changed" from="FlyoutPanel/FlowControls/VScrollBar" to="." method="_on_flow_v_scroll_bar_value_changed"]
-[connection signal="value_changed" from="FlyoutPanel/Cosmetics/VScrollBar" to="." method="_on_cosmetics_v_scroll_bar_value_changed"]
-[connection signal="pressed" from="ControlsScreen/InputEater" to="." method="_on_input_eater_pressed"]
-[connection signal="pressed" from="CreditsScreen/InputEater" to="." method="_on_input_eater_pressed"]
-[connection signal="pressed" from="ShowtapeNewScreen/InputEater" to="." method="_on_input_eater_pressed"]
-[connection signal="pressed" from="ShowtapeNewScreen/DialogPanel/AudioBrowseButton" to="." method="_on_showtape_new_audio_browse_button_pressed"]
-[connection signal="pressed" from="ShowtapeNewScreen/DialogPanel/CancelButton" to="." method="_on_showtape_new_cancel_button_pressed"]
-[connection signal="pressed" from="ShowtapeNewScreen/DialogPanel/CreateButton" to="." method="_on_showtape_new_create_button_pressed"]
-[connection signal="pressed" from="ShowtapeLoadScreen/InputEater" to="." method="_on_input_eater_pressed"]
-[connection signal="pressed" from="ShowtapeLoadScreen/DialogPanel/InBrowseButton" to="." method="_on_showtape_load_in_browse_button_pressed"]
-[connection signal="pressed" from="ShowtapeLoadScreen/DialogPanel/CancelButton" to="." method="_on_showtape_load_cancel_button_pressed"]
-[connection signal="pressed" from="ShowtapeLoadScreen/DialogPanel/OpenButton" to="." method="_on_showtape_load_open_button_pressed"]
-[connection signal="pressed" from="ShowtapeSaveScreen/InputEater" to="." method="_on_input_eater_pressed"]
-[connection signal="pressed" from="ShowtapeSaveScreen/DialogPanel/OutBrowseButton" to="." method="_on_showtape_save_out_browse_button_pressed"]
-[connection signal="pressed" from="ShowtapeSaveScreen/DialogPanel/CancelButton" to="." method="_on_showtape_save_cancel_button_pressed"]
-[connection signal="pressed" from="ShowtapeSaveScreen/DialogPanel/CreateButton" to="." method="_on_showtape_save_create_button_pressed"]
+[connection signal="toggled" from="FlyoutButtons/MovementsFlyoutButton" to="." method="_on_movements_flyout_button_toggled"]
+[connection signal="toggled" from="FlyoutButtons/FlowsFlyoutButton" to="." method="_on_flows_flyout_button_toggled"]
+[connection signal="button_down" from="Movements/Buttons/Mouth" to="." method="_on_mouth_button_down"]
+[connection signal="button_up" from="Movements/Buttons/Mouth" to="." method="_on_mouth_button_up"]
+[connection signal="button_down" from="Movements/Buttons/LeftEar" to="." method="_on_left_ear_button_down"]
+[connection signal="button_up" from="Movements/Buttons/LeftEar" to="." method="_on_left_ear_button_up"]
+[connection signal="button_down" from="Movements/Buttons/RightEar" to="." method="_on_right_ear_button_down"]
+[connection signal="button_up" from="Movements/Buttons/RightEar" to="." method="_on_right_ear_button_up"]
+[connection signal="button_down" from="Movements/Buttons/LeftEyelid" to="." method="_on_left_eyelid_button_down"]
+[connection signal="button_up" from="Movements/Buttons/LeftEyelid" to="." method="_on_left_eyelid_button_up"]
+[connection signal="button_down" from="Movements/Buttons/RightEyelid" to="." method="_on_right_eyelid_button_down"]
+[connection signal="button_up" from="Movements/Buttons/RightEyelid" to="." method="_on_right_eyelid_button_up"]
+[connection signal="button_down" from="Movements/Buttons/EyesLeft" to="." method="_on_eyes_left_button_down"]
+[connection signal="button_up" from="Movements/Buttons/EyesLeft" to="." method="_on_eyes_left_button_up"]
+[connection signal="button_down" from="Movements/Buttons/EyesRight" to="." method="_on_eyes_right_button_down"]
+[connection signal="button_up" from="Movements/Buttons/EyesRight" to="." method="_on_eyes_right_button_up"]
+[connection signal="button_down" from="Movements/Buttons/HeadLeft" to="." method="_on_head_left_button_down"]
+[connection signal="button_up" from="Movements/Buttons/HeadLeft" to="." method="_on_head_left_button_up"]
+[connection signal="button_down" from="Movements/Buttons/HeadRight" to="." method="_on_head_right_button_down"]
+[connection signal="button_up" from="Movements/Buttons/HeadRight" to="." method="_on_head_right_button_up"]
+[connection signal="button_down" from="Movements/Buttons/HeadUp" to="." method="_on_head_up_button_down"]
+[connection signal="button_up" from="Movements/Buttons/HeadUp" to="." method="_on_head_up_button_up"]
+[connection signal="button_down" from="Movements/Buttons/LeftArmUp" to="." method="_on_left_arm_up_button_down"]
+[connection signal="button_up" from="Movements/Buttons/LeftArmUp" to="." method="_on_left_arm_up_button_up"]
+[connection signal="button_down" from="Movements/Buttons/LeftArmTwist" to="." method="_on_left_arm_twist_button_down"]
+[connection signal="button_up" from="Movements/Buttons/LeftArmTwist" to="." method="_on_left_arm_twist_button_up"]
+[connection signal="button_down" from="Movements/Buttons/LeftElbow" to="." method="_on_left_elbow_button_down"]
+[connection signal="button_up" from="Movements/Buttons/LeftElbow" to="." method="_on_left_elbow_button_up"]
+[connection signal="button_down" from="Movements/Buttons/RightArmUp" to="." method="_on_right_arm_up_button_down"]
+[connection signal="button_up" from="Movements/Buttons/RightArmUp" to="." method="_on_right_arm_up_button_up"]
+[connection signal="button_down" from="Movements/Buttons/RightArmTwist" to="." method="_on_right_arm_twist_button_down"]
+[connection signal="button_up" from="Movements/Buttons/RightArmTwist" to="." method="_on_right_arm_twist_button_up"]
+[connection signal="button_down" from="Movements/Buttons/RightElbow" to="." method="_on_right_elbow_button_down"]
+[connection signal="button_up" from="Movements/Buttons/RightElbow" to="." method="_on_right_elbow_button_up"]
+[connection signal="button_down" from="Movements/Buttons/BodyLeft" to="." method="_on_body_left_button_down"]
+[connection signal="button_up" from="Movements/Buttons/BodyLeft" to="." method="_on_body_left_button_up"]
+[connection signal="button_down" from="Movements/Buttons/BodyRight" to="." method="_on_body_right_button_down"]
+[connection signal="button_up" from="Movements/Buttons/BodyRight" to="." method="_on_body_right_button_up"]
+[connection signal="button_down" from="Movements/Buttons/BodyLean" to="." method="_on_body_lean_button_down"]
+[connection signal="button_up" from="Movements/Buttons/BodyLean" to="." method="_on_body_lean_button_up"]
diff --git a/Scenes/Stages/Balcony.tscn b/Scenes/Stages/Balcony.tscn
deleted file mode 100644
index 704418c..0000000
--- a/Scenes/Stages/Balcony.tscn
+++ /dev/null
@@ -1,319 +0,0 @@
-[gd_scene load_steps=9 format=3 uid="uid://d2g6chunc572s"]
-
-[ext_resource type="PackedScene" uid="uid://d34xfaignny8j" path="res://Models/Cyberamics/Cyber Helen.glb" id="1_w3m2i"]
-[ext_resource type="Script" uid="uid://bu68w4jnh0n2b" path="res://Scripts/AnimatronicController.gd" id="2_t4ere"]
-[ext_resource type="PackedScene" uid="uid://c2j62syov3skq" path="res://Models/Cyberamics/Cyberamic Chuck.glb" id="3_45mf1"]
-[ext_resource type="PackedScene" uid="uid://ba7i8p8olef2s" path="res://Models/Cyberamics/Cyber Jasper.glb" id="4_t4ere"]
-[ext_resource type="PackedScene" uid="uid://c6n4otfble154" path="res://Models/Balcony/BalconyStage.glb" id="5_45mf1"]
-[ext_resource type="PackedScene" uid="uid://dmh5upwts8y11" path="res://Models/Cyberamics/Warblettes.glb" id="5_ocq6y"]
-[ext_resource type="Script" uid="uid://d1p4ite8ts2wi" path="res://Scripts/LightController.gd" id="6_j8jbd"]
-
-[sub_resource type="Environment" id="Environment_w3m2i"]
-ambient_light_source = 1
-
-[node name="Balcony" type="Node3D"]
-
-[node name="Jasper" parent="." instance=ExtResource("4_t4ere")]
-transform = Transform3D(0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, 0.866025, -2.2, 3, -0.5)
-script = ExtResource("2_t4ere")
-
-[node name="Chuck" parent="." instance=ExtResource("3_45mf1")]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -0.5)
-script = ExtResource("2_t4ere")
-
-[node name="Helen" parent="." instance=ExtResource("1_w3m2i")]
-transform = Transform3D(0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, 0.866025, 2.2, 3, -0.5)
-script = ExtResource("2_t4ere")
-
-[node name="Warblettes" parent="." instance=ExtResource("5_ocq6y")]
-transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -7.5, 3.6, -1)
-script = ExtResource("2_t4ere")
-
-[node name="Spots" type="Node3D" parent="."]
-script = ExtResource("6_j8jbd")
-
-[node name="Chuck" type="SpotLight3D" parent="Spots"]
-transform = Transform3D(1, 0, 0, 0, 0.970296, 0.241922, 0, -0.241922, 0.970296, 0, 5.5, 5)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Helen" type="SpotLight3D" parent="Spots"]
-transform = Transform3D(0.866025, 0.120961, -0.485148, 0, 0.970296, 0.241922, 0.5, -0.209511, 0.840301, -1, 5.5, 5)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Jasper" type="SpotLight3D" parent="Spots"]
-transform = Transform3D(0.866025, -0.120961, 0.485148, 0, 0.970296, 0.241922, -0.5, -0.209511, 0.840301, 1, 5.5, 5)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Munch" type="SpotLight3D" parent="Spots"]
-transform = Transform3D(1, 0, 0, 0, 0.970296, 0.241922, 0, -0.241922, 0.970296, -4.5, 5.5, 5)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Pasqually" type="SpotLight3D" parent="Spots"]
-transform = Transform3D(1, 0, 0, 0, 0.970296, 0.241922, 0, -0.241922, 0.970296, 4.5, 5.5, 5)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Warblettes" type="SpotLight3D" parent="Spots"]
-transform = Transform3D(1, 0, 0, 0, 0.991445, 0.130526, 0, -0.130526, 0.991445, -7.5, 5.5, 5)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 10.0
-
-[node name="Color Spots" type="Node3D" parent="."]
-script = ExtResource("6_j8jbd")
-
-[node name="Chuck" type="SpotLight3D" parent="Color Spots"]
-transform = Transform3D(1, 0, 0, 0, 0.970296, 0.241922, 0, -0.241922, 0.970296, 0, 5.5, 5)
-visible = false
-light_color = Color(0.734652, 0.426335, 0.999996, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Chuck 2" type="SpotLight3D" parent="Color Spots"]
-transform = Transform3D(1, 0, 0, 0, 0.970296, 0.241922, 0, -0.241922, 0.970296, 0, 5.5, 5)
-visible = false
-light_color = Color(1, 0, 0, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Helen" type="SpotLight3D" parent="Color Spots"]
-transform = Transform3D(0.866025, 0.120961, -0.485148, 0, 0.970296, 0.241922, 0.5, -0.209511, 0.840301, -1, 5.5, 5)
-visible = false
-light_color = Color(0.734652, 0.426335, 0.999996, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Jasper" type="SpotLight3D" parent="Color Spots"]
-transform = Transform3D(0.866025, -0.120961, 0.485148, 0, 0.970296, 0.241922, -0.5, -0.209511, 0.840301, 1, 5.5, 5)
-visible = false
-light_color = Color(0.734652, 0.426335, 0.999996, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Munch" type="SpotLight3D" parent="Color Spots"]
-transform = Transform3D(1, 0, 0, 0, 0.970296, 0.241922, 0, -0.241922, 0.970296, -4.5, 5.5, 5)
-visible = false
-light_color = Color(0.734652, 0.426335, 0.999996, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Pasqually" type="SpotLight3D" parent="Color Spots"]
-transform = Transform3D(1, 0, 0, 0, 0.970296, 0.241922, 0, -0.241922, 0.970296, 4.5, 5.5, 5)
-visible = false
-light_color = Color(0.734652, 0.426335, 0.999996, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 7.5
-
-[node name="Warblettes" type="SpotLight3D" parent="Color Spots"]
-transform = Transform3D(1, 0, 0, 0, 0.991445, 0.130526, 0, -0.130526, 0.991445, -7.5, 5.5, 5)
-visible = false
-light_color = Color(0.734652, 0.426335, 0.999996, 1)
-light_energy = 0.8
-spot_range = 8.0
-spot_attenuation = -1.0
-spot_angle = 10.0
-
-[node name="Valence" type="Node3D" parent="."]
-script = ExtResource("6_j8jbd")
-
-[node name="L" type="SpotLight3D" parent="Valence"]
-transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, -2.25, 5.5, 0.25)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-spot_attenuation = -1.0
-spot_angle = 15.0
-
-[node name="L Center" type="SpotLight3D" parent="Valence"]
-transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, -1.2, 5.5, 0.5)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-spot_attenuation = -1.0
-spot_angle = 15.0
-
-[node name="Center" type="SpotLight3D" parent="Valence"]
-transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 5.5, 0.75)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-spot_attenuation = -1.0
-spot_angle = 15.0
-
-[node name="R Center" type="SpotLight3D" parent="Valence"]
-transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 1.2, 5.5, 0.5)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-spot_attenuation = -1.0
-spot_angle = 15.0
-
-[node name="R" type="SpotLight3D" parent="Valence"]
-transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 2.25, 5.5, 0.25)
-visible = false
-light_color = Color(1, 0.960784, 0.85098, 1)
-spot_attenuation = -1.0
-spot_angle = 15.0
-
-[node name="Backdrop" type="Node3D" parent="."]
-script = ExtResource("6_j8jbd")
-
-[node name="L Blue" type="SpotLight3D" parent="Backdrop"]
-transform = Transform3D(0.866025, 0.433013, 0.25, -7.18775e-09, 0.5, -0.866025, -0.5, 0.75, 0.433013, -2.5, 3, -1.1)
-visible = false
-light_color = Color(0, 0, 1, 1)
-spot_attenuation = 2.0
-spot_angle = 30.0
-spot_angle_attenuation = 0.15
-
-[node name="L Amber" type="SpotLight3D" parent="Backdrop"]
-transform = Transform3D(0.866025, 0.433013, 0.25, -7.18775e-09, 0.5, -0.866025, -0.5, 0.75, 0.433013, -2, 3, -1.1)
-visible = false
-light_color = Color(1, 0.74902, 0, 1)
-spot_attenuation = 2.0
-spot_angle = 30.0
-spot_angle_attenuation = 0.15
-
-[node name="L Red" type="SpotLight3D" parent="Backdrop"]
-transform = Transform3D(0.866025, 0.433013, 0.25, -7.18775e-09, 0.5, -0.866025, -0.5, 0.75, 0.433013, -1.5, 3, -1.1)
-visible = false
-light_color = Color(1, 0, 0, 1)
-spot_attenuation = 2.0
-spot_angle = 30.0
-spot_angle_attenuation = 0.15
-
-[node name="C Blue" type="SpotLight3D" parent="Backdrop"]
-transform = Transform3D(1, 0, 0, 0, 0.5, -0.866025, 0, 0.866025, 0.5, -0.5, 3, -1.1)
-visible = false
-light_color = Color(0, 0, 1, 1)
-spot_attenuation = 2.0
-spot_angle = 30.0
-spot_angle_attenuation = 0.15
-
-[node name="C Amber" type="SpotLight3D" parent="Backdrop"]
-transform = Transform3D(1, 0, 0, 0, 0.5, -0.866025, 0, 0.866025, 0.5, 0, 3, -1.1)
-visible = false
-light_color = Color(1, 0.74902, 0, 1)
-spot_attenuation = 2.0
-spot_angle = 30.0
-spot_angle_attenuation = 0.15
-
-[node name="C Red" type="SpotLight3D" parent="Backdrop"]
-transform = Transform3D(1, 0, 0, 0, 0.5, -0.866025, 0, 0.866025, 0.5, 0.5, 3, -1.1)
-visible = false
-light_color = Color(1, 0, 0, 1)
-spot_attenuation = 2.0
-spot_angle = 30.0
-spot_angle_attenuation = 0.15
-
-[node name="R Blue" type="SpotLight3D" parent="Backdrop"]
-transform = Transform3D(0.866025, -0.433013, -0.25, 1.82764e-08, 0.5, -0.866025, 0.5, 0.75, 0.433013, 1.5, 3, -1.1)
-visible = false
-light_color = Color(0, 0, 1, 1)
-spot_attenuation = 2.0
-spot_angle = 30.0
-spot_angle_attenuation = 0.15
-
-[node name="R Amber" type="SpotLight3D" parent="Backdrop"]
-transform = Transform3D(0.866025, -0.433013, -0.25, 1.82764e-08, 0.5, -0.866025, 0.5, 0.75, 0.433013, 2, 3, -1.1)
-visible = false
-light_color = Color(1, 0.74902, 0, 1)
-spot_attenuation = 2.0
-spot_angle = 30.0
-spot_angle_attenuation = 0.15
-
-[node name="R Red" type="SpotLight3D" parent="Backdrop"]
-transform = Transform3D(0.866025, -0.433013, -0.25, 1.82764e-08, 0.5, -0.866025, 0.5, 0.75, 0.433013, 2.5, 3, -1.1)
-visible = false
-light_color = Color(1, 0, 0, 1)
-spot_attenuation = 2.0
-spot_angle = 30.0
-spot_angle_attenuation = 0.15
-
-[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
-environment = SubResource("Environment_w3m2i")
-
-[node name="Room Lights" type="Node3D" parent="."]
-
-[node name="OmniLight3D" type="OmniLight3D" parent="Room Lights"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 4.5, 3)
-light_color = Color(1, 0.960784, 0.85098, 1)
-
-[node name="OmniLight3D2" type="OmniLight3D" parent="Room Lights"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 4.5, 3)
-light_color = Color(1, 0.960784, 0.85098, 1)
-
-[node name="OmniLight3D3" type="OmniLight3D" parent="Room Lights"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.5, 3)
-light_color = Color(1, 0.960784, 0.85098, 1)
-
-[node name="OmniLight3D4" type="OmniLight3D" parent="Room Lights"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 4.5, 3)
-light_color = Color(1, 0.960784, 0.85098, 1)
-
-[node name="OmniLight3D5" type="OmniLight3D" parent="Room Lights"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 4.5, 3)
-light_color = Color(1, 0.960784, 0.85098, 1)
-
-[node name="BalconyStage" parent="." instance=ExtResource("5_45mf1")]
-transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0)
-
-[node name="Angle 1" type="Camera3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 4.75, 3)
-current = true
-fov = 60.0
-
-[node name="Angle 2" type="Camera3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, -4.5, 4.75, 3)
-fov = 60.0
-
-[node name="Angle 3" type="Camera3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 4.5, 4.75, 3)
-fov = 60.0
-
-[node name="Angle 4" type="Camera3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 5, 3)
-fov = 60.0
-
-[node name="Angle 5" type="Camera3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 0.996195, 0.0871557, 0, -0.0871557, 0.996195, 0, 4.75, 6)
-fov = 60.0
-
-[node name="Angle 6" type="Camera3D" parent="."]
-transform = Transform3D(0.965926, -0.0225576, 0.257834, 0, 0.996195, 0.0871557, -0.258819, -0.084186, 0.96225, 2, 4.75, 7)
-fov = 60.0
diff --git a/Scenes/Stages/ChuckEsCorner.tscn b/Scenes/Stages/ChuckEsCorner.tscn
deleted file mode 100644
index 9f1dbf9..0000000
--- a/Scenes/Stages/ChuckEsCorner.tscn
+++ /dev/null
@@ -1,109 +0,0 @@
-[gd_scene load_steps=7 format=3 uid="uid://dw3eplmapm5gc"]
-
-[ext_resource type="PackedScene" uid="uid://c2j62syov3skq" path="res://Models/Cyberamics/Cyberamic Chuck.glb" id="1_t27ru"]
-[ext_resource type="Script" uid="uid://bu68w4jnh0n2b" path="res://Scripts/AnimatronicController.gd" id="2_8qvk7"]
-[ext_resource type="PackedScene" uid="uid://bv66hlbvtekho" path="res://Models/ChuckEsCorner/ChuckEsCornerStage.glb" id="3_8qvk7"]
-[ext_resource type="PackedScene" uid="uid://dmh5upwts8y11" path="res://Models/Cyberamics/Warblettes.glb" id="3_t27ru"]
-[ext_resource type="Script" uid="uid://d1p4ite8ts2wi" path="res://Scripts/LightController.gd" id="4_8suoo"]
-
-[sub_resource type="Environment" id="Environment_4uxdq"]
-ambient_light_source = 1
-
-[node name="ChuckEsCorner" type="Node3D"]
-
-[node name="Chuck" parent="." instance=ExtResource("1_t27ru")]
-transform = Transform3D(-1.5, 0, -1.31134e-07, 0, 1.5, 0, 1.31134e-07, 0, -1.5, -2, 2, 0.312)
-script = ExtResource("2_8qvk7")
-
-[node name="Warblettes" parent="." instance=ExtResource("3_t27ru")]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 4, 0.5)
-script = ExtResource("2_8qvk7")
-
-[node name="Spots" type="Node3D" parent="."]
-script = ExtResource("4_8suoo")
-
-[node name="Chuck" type="SpotLight3D" parent="Spots"]
-transform = Transform3D(-0.972974, -0.0597654, 0.223048, 2.26267e-08, 0.965926, 0.258819, -0.230916, 0.251824, -0.939821, -1.57812, 4.57895, -1.25599)
-visible = false
-light_color = Color(1, 0.9625, 0.85, 1)
-light_energy = 2.0
-spot_range = 6.53799
-spot_angle = 30.5982
-spot_angle_attenuation = 0.1
-
-[node name="Warblettes" type="SpotLight3D" parent="Spots"]
-transform = Transform3D(-0.963761, 0.0690445, -0.257677, 1.9697e-08, 0.965926, 0.258819, 0.266767, 0.24944, -0.930922, -0.309492, 5.86862, -0.75)
-visible = false
-light_color = Color(1, 0.9625, 0.85, 1)
-light_energy = 2.0
-spot_range = 12.8142
-spot_angle = 28.4779
-spot_angle_attenuation = 0.1
-
-[node name="Floods" type="Node3D" parent="."]
-script = ExtResource("4_8suoo")
-
-[node name="Red" type="SpotLight3D" parent="Floods"]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.8, 0.9)
-visible = false
-light_color = Color(1, 0, 0, 1)
-light_energy = 15.0
-spot_attenuation = 2.0
-spot_angle_attenuation = 0.15
-
-[node name="Green" type="SpotLight3D" parent="Floods"]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -2, 1.8, 0.9)
-visible = false
-light_color = Color(0, 1, 0, 1)
-light_energy = 15.0
-spot_attenuation = 2.0
-spot_angle_attenuation = 0.15
-
-[node name="Blue" type="SpotLight3D" parent="Floods"]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -4, 1.8, 0.9)
-visible = false
-light_color = Color(0, 0, 1, 1)
-light_energy = 15.0
-spot_attenuation = 2.0
-spot_angle_attenuation = 0.15
-
-[node name="Color Spots" type="Node3D" parent="."]
-script = ExtResource("4_8suoo")
-
-[node name="Chuck" type="SpotLight3D" parent="Color Spots"]
-transform = Transform3D(-0.995147, -0.00124532, 0.0983965, 0.0311161, 0.944632, 0.326653, -0.0933553, 0.328129, -0.940009, -1.57812, 4.57895, -1.25599)
-visible = false
-light_color = Color(0, 0.538333, 0.85, 1)
-light_energy = 3.0
-spot_range = 6.53799
-spot_angle = 33.4444
-spot_angle_attenuation = 0.1
-
-[node name="Angle 1" type="Camera3D" parent="."]
-transform = Transform3D(-0.984612, -0.00554278, 0.174664, 0.0289131, 0.980555, 0.194105, -0.172344, 0.196168, -0.965306, -0.658302, 4.93729, -4)
-current = true
-fov = 60.0
-
-[node name="Angle 2" type="Camera3D" parent="."]
-transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -2, 3.44355, -2.64184)
-fov = 60.0
-
-[node name="Angle 3" type="Camera3D" parent="."]
-transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0.25, 4.95492, -1.77582)
-fov = 60.0
-
-[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
-environment = SubResource("Environment_4uxdq")
-
-[node name="OmniLight3D" type="OmniLight3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 3.5, -2)
-light_color = Color(1, 0.960784, 0.85098, 1)
-light_energy = 0.5
-
-[node name="OmniLight3D2" type="OmniLight3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 3.5, -2)
-light_color = Color(1, 0.960784, 0.85098, 1)
-light_energy = 0.5
-
-[node name="ChuckEsCornerStage" parent="." instance=ExtResource("3_8qvk7")]
-transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 1)
diff --git a/Scenes/Stages/HelenHouse.tscn b/Scenes/Stages/HelenHouse.tscn
index 8a69767..0e46785 100644
--- a/Scenes/Stages/HelenHouse.tscn
+++ b/Scenes/Stages/HelenHouse.tscn
@@ -1,49 +1,40 @@
-[gd_scene load_steps=7 format=3 uid="uid://btre5j66mpchy"]
+[gd_scene load_steps=6 format=3 uid="uid://btre5j66mpchy"]
-[ext_resource type="PackedScene" uid="uid://f0fkcs7erhop" path="res://Models/3-Stage/3stHelen.glb" id="1_s1mol"]
-[ext_resource type="Script" uid="uid://bu68w4jnh0n2b" path="res://Scripts/AnimatronicController.gd" id="2_odcb6"]
-[ext_resource type="PackedScene" uid="uid://bhoeqcsdb0fx2" path="res://Models/HelenHouse/HelenHouse-Room.glb" id="3_e7oou"]
-[ext_resource type="PackedScene" uid="uid://btvomf1ayoypu" path="res://Models/HelenHouse/HelenHouse-Stage.glb" id="4_e2vvs"]
-[ext_resource type="Script" uid="uid://d1p4ite8ts2wi" path="res://Scripts/LightController.gd" id="5_odcb6"]
+[ext_resource type="PackedScene" uid="uid://f0fkcs7erhop" path="res://Models/3stHelen.glb" id="2_e7oou"]
+[ext_resource type="Script" uid="uid://bu68w4jnh0n2b" path="res://Scripts/HelenController.gd" id="3_e2vvs"]
+[ext_resource type="PackedScene" uid="uid://bhoeqcsdb0fx2" path="res://Models/Room.glb" id="4_pv43k"]
+[ext_resource type="PackedScene" uid="uid://btvomf1ayoypu" path="res://Models/Stage.glb" id="5_afett"]
[sub_resource type="Environment" id="Environment_axk5g"]
ambient_light_source = 1
[node name="HelenHouse" type="Node3D"]
-[node name="Helen" parent="." instance=ExtResource("1_s1mol")]
+[node name="3stHelen" parent="." instance=ExtResource("2_e7oou")]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0.25, 0)
-script = ExtResource("2_odcb6")
+script = ExtResource("3_e2vvs")
-[node name="Spots" type="Node3D" parent="."]
-script = ExtResource("5_odcb6")
-
-[node name="Helen" type="SpotLight3D" parent="Spots"]
-transform = Transform3D(-1, 3.69465e-08, -7.92319e-08, 0, 0.906308, 0.422618, 8.74228e-08, 0.422618, -0.906308, 0, 2.5, -2)
-visible = false
-light_color = Color(1, 0.9625, 0.85, 1)
-light_energy = 5.0
-spot_attenuation = 2.0
-spot_angle = 10.0
-spot_angle_attenuation = 0.15
-
-[node name="Room" parent="." instance=ExtResource("3_e7oou")]
+[node name="Room" parent="." instance=ExtResource("4_pv43k")]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0)
-[node name="Stage" parent="." instance=ExtResource("4_e2vvs")]
+[node name="Stage" parent="." instance=ExtResource("5_afett")]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0)
-[node name="Angle 1" type="Camera3D" parent="."]
-transform = Transform3D(-1, 1.31602e-08, -1.50421e-07, 0, 0.996195, 0.0871557, 1.50996e-07, 0.0871557, -0.996195, 0, 1.5, -3)
-fov = 60.0
-
-[node name="Angle 2" type="Camera3D" parent="."]
-transform = Transform3D(-1, 1.31602e-08, -1.50421e-07, 0, 0.996195, 0.0871557, 1.50996e-07, 0.0871557, -0.996195, 0, 1.5, -1)
+[node name="Camera3D" type="Camera3D" parent="."]
+transform = Transform3D(-1, 1.31601e-08, -1.50421e-07, 0, 0.996195, 0.0871557, 1.50996e-07, 0.0871557, -0.996195, 0, 1.5, -3)
fov = 60.0
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_axk5g")
+[node name="SpotLight3D" type="SpotLight3D" parent="."]
+transform = Transform3D(-0.972974, -0.0597654, 0.223048, 2.26267e-08, 0.965926, 0.258819, -0.230916, 0.251824, -0.939821, 0.217544, 1.75308, -1.04223)
+light_color = Color(1, 0.9625, 0.85, 1)
+light_energy = 2.0
+spot_range = 1.3068
+spot_angle = 27.449
+spot_angle_attenuation = 0.1
+
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2.5, -3)
light_color = Color(1, 0.960784, 0.85098, 1)
diff --git a/Scripts/AnimatronicController.gd b/Scripts/AnimatronicController.gd
deleted file mode 100644
index 5dc202b..0000000
--- a/Scripts/AnimatronicController.gd
+++ /dev/null
@@ -1,93 +0,0 @@
-extends Node3D
-
-var animation_player : AnimationPlayer
-var animation_tree : AnimationTree
-var blend_tree : AnimationNodeBlendTree
-
-var movement_states : Dictionary
-
-func _ready():
- animation_player = $AnimationPlayer
-
- animation_tree = AnimationTree.new()
- animation_tree.anim_player = animation_player.get_path()
- add_child(animation_tree)
-
- animation_tree.tree_root = AnimationNodeBlendTree.new()
- animation_tree.active = true
- blend_tree = animation_tree.tree_root as AnimationNodeBlendTree
-
- animation_player.speed_scale = 0
-
- var animations = animation_player.get_animation_list()
-
- for animation in animations:
- movement_states[animation] = [false, 0.0, 0.0, 0.0]
-
- var prev_name = "Anim_" + animations[0]
- var old_time_name = "Time_" + animations[0]
- var old_seek_name = "Seek_" + animations[0]
-
- var prev_anim_node := AnimationNodeAnimation.new()
- prev_anim_node.animation = animations[0]
- blend_tree.add_node(prev_name, prev_anim_node)
-
- var old_time_node := AnimationNodeTimeScale.new()
- blend_tree.add_node(old_time_name,old_time_node)
-
- var _old_seek_node := AnimationNodeTimeSeek.new()
- blend_tree.add_node(old_seek_name,_old_seek_node)
-
- blend_tree.connect_node(old_time_name,0,prev_name)
- blend_tree.connect_node(old_seek_name,0,old_time_name)
- prev_name = old_seek_name
-
- for i in range(1, animations.size()):
- var anim_name = "Anim_" + animations[i]
- var add_name = "Add_" + animations[i]
- var time_name = "Time_" + animations[i]
- var seek_name = "Seek_" + animations[i]
-
- var new_anim_node := AnimationNodeAnimation.new()
- new_anim_node.animation = animations[i]
- blend_tree.add_node(anim_name, new_anim_node)
-
- var time_node := AnimationNodeTimeScale.new()
- blend_tree.add_node(time_name,time_node)
-
- var seek_node := AnimationNodeTimeSeek.new()
- blend_tree.add_node(seek_name,seek_node)
-
- var add_node := AnimationNodeAdd2.new()
- blend_tree.add_node(add_name, add_node)
-
- blend_tree.connect_node(time_name, 0, anim_name)
- blend_tree.connect_node(seek_name, 0, time_name)
- blend_tree.connect_node(add_name, 0, prev_name)
- blend_tree.connect_node(add_name, 1, seek_name)
- prev_name = add_name
-
- blend_tree.connect_node("output", 0, prev_name)
-
- for i in range(0, animations.size()):
- animation_tree.set("parameters/Add_" + str(animations[i]) + "/add_amount", 1.0)
- animation_tree.set("parameters/Seek_" + str(animations[i]) + "/seek_request", 0)
- animation_tree.set("parameters/Time_" + str(animations[i]) + "/scale", 0)
-
-func _physics_process(delta: float) -> void:
- for key in movement_states:
- var anim_path = "parameters/Seek_" + key + "/seek_request"
- var state = movement_states[key]
- if (state[0]):
- state[1] = clamp(float(state[1]) + (delta * state[2]), 0, 1)
- else:
- state[1] = clamp(float(state[1]) - (delta * state[3]), 0, 1)
- animation_tree.set(anim_path, state[1])
-
-func _movement_in(movement, rate):
- movement_states[movement][0] = true
- movement_states[movement][2] = rate
-
-func _movement_out(movement, rate):
- movement_states[movement][0] = false
- movement_states[movement][3] = rate
diff --git a/Scripts/CameraButton.gd b/Scripts/CameraButton.gd
deleted file mode 100644
index ef99c04..0000000
--- a/Scripts/CameraButton.gd
+++ /dev/null
@@ -1,10 +0,0 @@
-extends Control
-
-@export var camera : String
-@export var base_scene_path : String
-
-func _ready() -> void:
- $Button.text = camera
-
-func _on_button_pressed() -> void:
- get_node(base_scene_path + camera).current = true;
diff --git a/Scripts/CameraButton.gd.uid b/Scripts/CameraButton.gd.uid
deleted file mode 100644
index 18a4fd1..0000000
--- a/Scripts/CameraButton.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://dfoog0y2bh7tk
diff --git a/Scripts/CosmeticAdjustment.gd b/Scripts/CosmeticAdjustment.gd
deleted file mode 100644
index 75fd198..0000000
--- a/Scripts/CosmeticAdjustment.gd
+++ /dev/null
@@ -1,18 +0,0 @@
-extends Control
-
-@export var vis_name: String
-@export var scene_handle: String
-@export var options: Dictionary
-
-func _ready() -> void:
- $Panel/Label.text = vis_name
- for option in options:
- $Panel/OptionButton.add_item(option)
- $Panel/OptionButton.select(0)
- for adjusted in options[$Panel/OptionButton.get_item_text(0)]:
- get_node(scene_handle+adjusted).visible = options[$Panel/OptionButton.get_item_text(0)][adjusted]
-
-
-func _on_option_button_item_selected(index: int) -> void:
- for adjusted in options[$Panel/OptionButton.get_item_text(index)]:
- get_node(scene_handle+adjusted).visible = options[$Panel/OptionButton.get_item_text(index)][adjusted]
diff --git a/Scripts/CosmeticAdjustment.gd.uid b/Scripts/CosmeticAdjustment.gd.uid
deleted file mode 100644
index 832bd83..0000000
--- a/Scripts/CosmeticAdjustment.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://1f7v3ohsgx0g
diff --git a/Scripts/EditorScreen.gd b/Scripts/EditorScreen.gd
index f34bf79..3209ad4 100644
--- a/Scripts/EditorScreen.gd
+++ b/Scripts/EditorScreen.gd
@@ -1,947 +1,161 @@
extends Control
-var playing : bool = false
-var recording : bool = false
-var index : int = 0
-var playback_rate : int = 1
-var transport_enabled : bool = false
-var erase_validated : bool = false
-var cam_index : int = 0
-var fullscreen : bool = false
-
-var showtape_loaded : bool = false
-var show_name : String
-
-var current_stage : String
-
-var stages_info = {
- "Helen House":
- {
- "bits": 20,
- "scene": "res://Scenes/Stages/HelenHouse.tscn",
- "scene_ref_base": "SubViewport/HelenHouse/",
- "camera_count": 2,
-
- "ust_type": "Rockafire Explosion/3-Stage",
-
- "bit_mapping":
- {
- 23: { "bot": "Helen", "movement": "Mouth", "flow_in": 3.0, "flow_out": 2.0 },
- 24: { "bot": "Helen", "movement": "Left Ear", "flow_in": 3.5, "flow_out": 1.5 },
- 25: { "bot": "Helen", "movement": "Right Ear", "flow_in": 3.5, "flow_out": 1.5 },
- 26: { "bot": "Helen", "movement": "Left Eyelid", "flow_in": 1.5, "flow_out": 2.0 },
- 27: { "bot": "Helen", "movement": "Right Eyelid", "flow_in": 1.5, "flow_out": 2.0 },
- 28: { "bot": "Helen", "movement": "Eyes Left", "flow_in": 3.5, "flow_out": 1.5 },
- 29: { "bot": "Helen", "movement": "Eyes Right", "flow_in": 3.5, "flow_out": 1.5 },
- 30: { "bot": "Helen", "movement": "Head Left", "flow_in": 1.5, "flow_out": 1.5 },
- 31: { "bot": "Helen", "movement": "Head Right", "flow_in": 1.5, "flow_out": 1.5 },
- 32: { "bot": "Helen", "movement": "Head Up", "flow_in": 1.0, "flow_out": 1.0 },
- 33: { "bot": "Helen", "movement": "Left Arm Up", "flow_in": 0.8, "flow_out": 0.6 },
- 34: { "bot": "Helen", "movement": "Left Arm Twist", "flow_in": 0.8, "flow_out": 0.8 },
- 35: { "bot": "Helen", "movement": "Left Elbow", "flow_in": 1.0, "flow_out": 1.0 },
- 36: { "bot": "Helen", "movement": "Right Arm Up", "flow_in": 0.8, "flow_out": 0.6 },
- 37: { "bot": "Helen", "movement": "Right Arm Twist", "flow_in": 0.8, "flow_out": 0.8 },
- 38: { "bot": "Helen", "movement": "Right Elbow", "flow_in": 1.0, "flow_out": 1.0 },
- 39: { "bot": "Helen", "movement": "Body Left", "flow_in": 0.7, "flow_out": 0.7 },
- 40: { "bot": "Helen", "movement": "Body Right", "flow_in": 0.7, "flow_out": 0.7 },
- 41: { "bot": "Helen", "movement": "Body Lean", "flow_in": 1.0, "flow_out": 0.8 },
- 125: { "bot": "Spots", "movement": "Helen", "flow_in": "None", "flow_out": "None" },
- },
-
- "cosmetics":
- {
- "Helen Hair":
- {
- "Black and White":
- {
- "Helen/Helen/Skeleton3D/BWHair": true,
- "Helen/Helen/Skeleton3D/YellowHair": false,
- },
- "Yellow":
- {
- "Helen/Helen/Skeleton3D/BWHair": false,
- "Helen/Helen/Skeleton3D/YellowHair": true,
- },
- },
- "Helen Dress":
- {
- "Tux":
- {
- "Helen/Helen/Skeleton3D/Collar": true,
- "Helen/Helen/Skeleton3D/Torso": true,
- "Helen/Helen/Skeleton3D/Skirt": true,
- "Helen/Helen/Skeleton3D/CheerDress": false,
- },
- "Cheerleader":
- {
- "Helen/Helen/Skeleton3D/Collar": false,
- "Helen/Helen/Skeleton3D/Torso": false,
- "Helen/Helen/Skeleton3D/Skirt": false,
- "Helen/Helen/Skeleton3D/CheerDress": true,
- }
- }
- }
- },
- "Chuck E's Corner":
- {
- "bits": 16,
- "scene": "res://Scenes/Stages/ChuckEsCorner.tscn",
- "scene_ref_base": "SubViewport/ChuckEsCorner/",
- "camera_count": 3,
-
- "ust_type": "Cyberamics",
-
- "bit_mapping":
- {
- 1: { "bot": "Chuck", "movement": "Mouth", "flow_in": 7.5, "flow_out": 6.0 },
- 2: { "bot": "Chuck", "movement": "Head Left", "flow_in": 0.8, "flow_out": 1.0 },
- 3: { "bot": "Chuck", "movement": "Head Right", "flow_in": 1.0, "flow_out": 1.0 },
- 4: { "bot": "Chuck", "movement": "Head Up", "flow_in": 2.0, "flow_out": 1.0 },
- 5: { "bot": "Chuck", "movement": "Eyes Left", "flow_in": 4.0, "flow_out": 3.0 },
- 6: { "bot": "Chuck", "movement": "Eyes Right", "flow_in": 4.0, "flow_out": 3.0 },
- 7: { "bot": "Chuck", "movement": "Eyelids", "flow_in": 7.5, "flow_out": 5.0 },
- 8: { "bot": "Chuck", "movement": "Right Arm", "flow_in": 2.0, "flow_out": 1.0 },
- 41: { "bot": "Warblettes", "movement": "Mouth", "flow_in": 4.0, "flow_out": 3.0 },
- 44: { "bot": "Warblettes", "movement": "Body Rock", "flow_in": 1.0, "flow_out": 1.0 },
- 50: { "bot": "Spots", "movement": "Chuck", "flow_in": "None", "flow_out": "None" },
- 55: { "bot": "Floods", "movement": "Blue", "flow_in": "None", "flow_out": "None" },
- 78: { "bot": "Spots", "movement": "Warblettes", "flow_in": "None", "flow_out": "None" },
- 79: { "bot": "Color Spots", "movement": "Chuck", "flow_in": "None", "flow_out": "None" },
- 82: { "bot": "Floods", "movement": "Red", "flow_in": "None", "flow_out": "None" },
- 86: { "bot": "Floods", "movement": "Green", "flow_in": "None", "flow_out": "None" },
- },
-
- "cosmetics":
- {
- "Chuck E. Hat":
- {
- "Derby":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Hat": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Hat": false,
- "Chuck/Chuck/Skeleton3D/Derby": true,
- },
- "Cool Chuck":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Hat": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Hat": true,
- "Chuck/Chuck/Skeleton3D/Derby": false,
- },
- "Avenger":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Hat": true,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Hat": false,
- "Chuck/Chuck/Skeleton3D/Derby": false,
- },
- "None":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Hat": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Hat": false,
- "Chuck/Chuck/Skeleton3D/Derby": false,
- }
- },
-
- "Chuck E. Shirt":
- {
- "Red Vest":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Shirt": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Shirt": false,
- "Chuck/Chuck/Skeleton3D/Black Bowtie": true,
- "Chuck/Chuck/Skeleton3D/Buttons": true,
- "Chuck/Chuck/Skeleton3D/Vest Trim": true,
- "Chuck/Chuck/Skeleton3D/Yellow Checker Vest": false,
- "Chuck/Chuck/Skeleton3D/Rocker Vest": true,
- },
- "Yellow Checker Vest":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Shirt": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Shirt": false,
- "Chuck/Chuck/Skeleton3D/Black Bowtie": true,
- "Chuck/Chuck/Skeleton3D/Buttons": true,
- "Chuck/Chuck/Skeleton3D/Vest Trim": true,
- "Chuck/Chuck/Skeleton3D/Yellow Checker Vest": true,
- "Chuck/Chuck/Skeleton3D/Rocker Vest": false,
- },
- "Cool Chuck Shirt":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Shirt": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Shirt": true,
- "Chuck/Chuck/Skeleton3D/Black Bowtie": false,
- "Chuck/Chuck/Skeleton3D/Buttons": false,
- "Chuck/Chuck/Skeleton3D/Vest Trim": false,
- "Chuck/Chuck/Skeleton3D/Yellow Checker Vest": false,
- "Chuck/Chuck/Skeleton3D/Rocker Vest": false,
- },
- "Avenger Shirt":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Shirt": true,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Shirt": false,
- "Chuck/Chuck/Skeleton3D/Black Bowtie": false,
- "Chuck/Chuck/Skeleton3D/Buttons": false,
- "Chuck/Chuck/Skeleton3D/Vest Trim": false,
- "Chuck/Chuck/Skeleton3D/Yellow Checker Vest": false,
- "Chuck/Chuck/Skeleton3D/Rocker Vest": false,
- }
- },
-
- "Chuck E. Mask":
- {
- "PTT":
- {
- "Chuck/Chuck/Skeleton3D/PTT Ears": true,
- "Chuck/Chuck/Skeleton3D/PTT Ears Inside": true,
- "Chuck/Chuck/Skeleton3D/PTT Jaw": true,
- "Chuck/Chuck/Skeleton3D/PTT Muzzle": true,
- "Chuck/Chuck/Skeleton3D/Modern Ears": false,
- "Chuck/Chuck/Skeleton3D/Modern Ears Inside": false,
- "Chuck/Chuck/Skeleton3D/Modern Jaw": false,
- "Chuck/Chuck/Skeleton3D/Modern Muzzle": false,
- },
- "Modern":
- {
- "Chuck/Chuck/Skeleton3D/PTT Ears": false,
- "Chuck/Chuck/Skeleton3D/PTT Ears Inside": false,
- "Chuck/Chuck/Skeleton3D/PTT Jaw": false,
- "Chuck/Chuck/Skeleton3D/PTT Muzzle": false,
- "Chuck/Chuck/Skeleton3D/Modern Ears": true,
- "Chuck/Chuck/Skeleton3D/Modern Ears Inside": true,
- "Chuck/Chuck/Skeleton3D/Modern Jaw": true,
- "Chuck/Chuck/Skeleton3D/Modern Muzzle": true,
- },
- },
-
- "Chuck E. Eyelids":
- {
- "Blue":
- {
- "Chuck/Chuck/Skeleton3D/Blue Eyelids": true,
- "Chuck/Chuck/Skeleton3D/Grey Eyelids": false,
- },
- "Grey":
- {
- "Chuck/Chuck/Skeleton3D/Blue Eyelids": false,
- "Chuck/Chuck/Skeleton3D/Grey Eyelids": true,
- },
- }
- }
- },
- "Balcony Stage":
- {
- "bits": 53,
- "scene": "res://Scenes/Stages/Balcony.tscn",
- "scene_ref_base": "SubViewport/Balcony/",
- "camera_count": 6,
-
- "ust_type": "Cyberamics",
-
- "bit_mapping":
- {
- 1: { "bot": "Chuck", "movement": "Mouth", "flow_in": 7.5, "flow_out": 6.0 },
- 2: { "bot": "Chuck", "movement": "Head Left", "flow_in": 0.8, "flow_out": 1.0 },
- 3: { "bot": "Chuck", "movement": "Head Right", "flow_in": 1.0, "flow_out": 1.0 },
- 4: { "bot": "Chuck", "movement": "Head Up", "flow_in": 2.0, "flow_out": 1.0 },
- 5: { "bot": "Chuck", "movement": "Eyes Left", "flow_in": 4.0, "flow_out": 3.0 },
- 6: { "bot": "Chuck", "movement": "Eyes Right", "flow_in": 4.0, "flow_out": 3.0 },
- 7: { "bot": "Chuck", "movement": "Eyelids", "flow_in": 7.5, "flow_out": 5.0 },
- 8: { "bot": "Chuck", "movement": "Right Arm", "flow_in": 2.0, "flow_out": 1.0 },
- 9: { "bot": "Helen", "movement": "Mouth", "flow_in": 7.5, "flow_out": 6.0 },
- 10: { "bot": "Helen", "movement": "Head Left", "flow_in": 0.8, "flow_out": 1.0 },
- 11: { "bot": "Helen", "movement": "Head Right", "flow_in": 1.0, "flow_out": 1.0 },
- 12: { "bot": "Helen", "movement": "Head Up", "flow_in": 2.0, "flow_out": 1.0 },
- 13: { "bot": "Helen", "movement": "Eyes Left", "flow_in": 4.0, "flow_out": 3.0 },
- 14: { "bot": "Helen", "movement": "Eyes Right", "flow_in": 4.0, "flow_out": 3.0 },
- 15: { "bot": "Helen", "movement": "Eyelids", "flow_in": 7.5, "flow_out": 5.0 },
- 16: { "bot": "Helen", "movement": "Right Arm", "flow_in": 2.0, "flow_out": 1.0 },
- 25: { "bot": "Jasper", "movement": "Mouth", "flow_in": 7.5, "flow_out": 6.0 },
- 26: { "bot": "Jasper", "movement": "Head Left", "flow_in": 1.0, "flow_out": 1.0 },
- 27: { "bot": "Jasper", "movement": "Head Right", "flow_in": 1.0, "flow_out": 1.0 },
- 28: { "bot": "Jasper", "movement": "Head Up", "flow_in": 2.0, "flow_out": 1.0 },
- 29: { "bot": "Jasper", "movement": "Eyes Left", "flow_in": 4.0, "flow_out": 3.0 },
- 30: { "bot": "Jasper", "movement": "Eyes Right", "flow_in": 4.0, "flow_out": 3.0 },
- 31: { "bot": "Jasper", "movement": "Eyelids", "flow_in": 7.5, "flow_out": 5.0 },
- 32: { "bot": "Jasper", "movement": "Strum", "flow_in": 2.0, "flow_out": 1.0 },
- 41: { "bot": "Warblettes", "movement": "Mouth", "flow_in": 4.0, "flow_out": 3.0 },
- 44: { "bot": "Warblettes", "movement": "Body Rock", "flow_in": 1.0, "flow_out": 1.0 },
- 50: { "bot": "Spots", "movement": "Chuck", "flow_in": "None", "flow_out": "None" },
- 51: { "bot": "Spots", "movement": "Helen", "flow_in": "None", "flow_out": "None" },
- 52: { "bot": "Spots", "movement": "Munch", "flow_in": "None", "flow_out": "None" },
- 53: { "bot": "Spots", "movement": "Jasper", "flow_in": "None", "flow_out": "None" },
- 54: { "bot": "Spots", "movement": "Pasqually", "flow_in": "None", "flow_out": "None" },
- 55: { "bot": "Backdrop", "movement": "C Blue", "flow_in": "None", "flow_out": "None" },
- 65: { "bot": "Backdrop", "movement": "L Blue", "flow_in": "None", "flow_out": "None" },
- 66: { "bot": "Valence", "movement": "R Center", "flow_in": "None", "flow_out": "None" },
- 68: { "bot": "Backdrop", "movement": "L Red", "flow_in": "None", "flow_out": "None" },
- 69: { "bot": "Valence", "movement": "R", "flow_in": "None", "flow_out": "None" },
- 70: { "bot": "Backdrop", "movement": "L Amber", "flow_in": "None", "flow_out": "None" },
- 71: { "bot": "Valence", "movement": "L Center", "flow_in": "None", "flow_out": "None" },
- 72: { "bot": "Valence", "movement": "L", "flow_in": "None", "flow_out": "None" },
- 73: { "bot": "Valence", "movement": "Center", "flow_in": "None", "flow_out": "None" },
- 74: { "bot": "Color Spots", "movement": "Warblettes", "flow_in": "None", "flow_out": "None" },
- 75: { "bot": "Color Spots", "movement": "Munch", "flow_in": "None", "flow_out": "None" },
- 76: { "bot": "Color Spots", "movement": "Helen", "flow_in": "None", "flow_out": "None" },
- 77: { "bot": "Color Spots", "movement": "Jasper", "flow_in": "None", "flow_out": "None" },
- 78: { "bot": "Spots", "movement": "Warblettes", "flow_in": "None", "flow_out": "None" },
- 79: { "bot": "Color Spots", "movement": "Chuck", "flow_in": "None", "flow_out": "None" },
- 80: { "bot": "Color Spots", "movement": "Chuck 2", "flow_in": "None", "flow_out": "None" },
- 81: { "bot": "Backdrop", "movement": "R Amber", "flow_in": "None", "flow_out": "None" },
- 82: { "bot": "Backdrop", "movement": "C Red", "flow_in": "None", "flow_out": "None" },
- 83: { "bot": "Backdrop", "movement": "R Blue", "flow_in": "None", "flow_out": "None" },
- 84: { "bot": "Color Spots", "movement": "Pasqually", "flow_in": "None", "flow_out": "None" },
- 85: { "bot": "Backdrop", "movement": "R Red", "flow_in": "None", "flow_out": "None" },
- 86: { "bot": "Backdrop", "movement": "C Amber", "flow_in": "None", "flow_out": "None" },
- },
-
- "cosmetics":
- {
- "Chuck E. Hat":
- {
- "Derby":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Hat": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Hat": false,
- "Chuck/Chuck/Skeleton3D/Derby": true,
- },
- "Cool Chuck":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Hat": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Hat": true,
- "Chuck/Chuck/Skeleton3D/Derby": false,
- },
- "Avenger":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Hat": true,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Hat": false,
- "Chuck/Chuck/Skeleton3D/Derby": false,
- },
- "None":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Hat": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Hat": false,
- "Chuck/Chuck/Skeleton3D/Derby": false,
- }
- },
-
- "Chuck E. Shirt":
- {
- "Yellow Checker Vest":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Shirt": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Shirt": false,
- "Chuck/Chuck/Skeleton3D/Black Bowtie": true,
- "Chuck/Chuck/Skeleton3D/Buttons": true,
- "Chuck/Chuck/Skeleton3D/Vest Trim": true,
- "Chuck/Chuck/Skeleton3D/Yellow Checker Vest": true,
- "Chuck/Chuck/Skeleton3D/Rocker Vest": false,
- },
- "Red Vest":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Shirt": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Shirt": false,
- "Chuck/Chuck/Skeleton3D/Black Bowtie": true,
- "Chuck/Chuck/Skeleton3D/Buttons": true,
- "Chuck/Chuck/Skeleton3D/Vest Trim": true,
- "Chuck/Chuck/Skeleton3D/Yellow Checker Vest": false,
- "Chuck/Chuck/Skeleton3D/Rocker Vest": true,
- },
- "Cool Chuck Shirt":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Shirt": false,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Shirt": true,
- "Chuck/Chuck/Skeleton3D/Black Bowtie": false,
- "Chuck/Chuck/Skeleton3D/Buttons": false,
- "Chuck/Chuck/Skeleton3D/Vest Trim": false,
- "Chuck/Chuck/Skeleton3D/Yellow Checker Vest": false,
- "Chuck/Chuck/Skeleton3D/Rocker Vest": false,
- },
- "Avenger Shirt":
- {
- "Chuck/Chuck/Skeleton3D/Avenger Shirt": true,
- "Chuck/Chuck/Skeleton3D/Cool Chuck Shirt": false,
- "Chuck/Chuck/Skeleton3D/Black Bowtie": false,
- "Chuck/Chuck/Skeleton3D/Buttons": false,
- "Chuck/Chuck/Skeleton3D/Vest Trim": false,
- "Chuck/Chuck/Skeleton3D/Yellow Checker Vest": false,
- "Chuck/Chuck/Skeleton3D/Rocker Vest": false,
- }
- },
-
- "Chuck E. Mask":
- {
- "PTT":
- {
- "Chuck/Chuck/Skeleton3D/PTT Ears": true,
- "Chuck/Chuck/Skeleton3D/PTT Ears Inside": true,
- "Chuck/Chuck/Skeleton3D/PTT Jaw": true,
- "Chuck/Chuck/Skeleton3D/PTT Muzzle": true,
- "Chuck/Chuck/Skeleton3D/Modern Ears": false,
- "Chuck/Chuck/Skeleton3D/Modern Ears Inside": false,
- "Chuck/Chuck/Skeleton3D/Modern Jaw": false,
- "Chuck/Chuck/Skeleton3D/Modern Muzzle": false,
- },
- "Modern":
- {
- "Chuck/Chuck/Skeleton3D/PTT Ears": false,
- "Chuck/Chuck/Skeleton3D/PTT Ears Inside": false,
- "Chuck/Chuck/Skeleton3D/PTT Jaw": false,
- "Chuck/Chuck/Skeleton3D/PTT Muzzle": false,
- "Chuck/Chuck/Skeleton3D/Modern Ears": true,
- "Chuck/Chuck/Skeleton3D/Modern Ears Inside": true,
- "Chuck/Chuck/Skeleton3D/Modern Jaw": true,
- "Chuck/Chuck/Skeleton3D/Modern Muzzle": true,
- },
- },
-
- "Chuck E. Eyelids":
- {
- "Blue":
- {
- "Chuck/Chuck/Skeleton3D/Blue Eyelids": true,
- "Chuck/Chuck/Skeleton3D/Grey Eyelids": false,
- },
- "Grey":
- {
- "Chuck/Chuck/Skeleton3D/Blue Eyelids": false,
- "Chuck/Chuck/Skeleton3D/Grey Eyelids": true,
- },
- },
-
- "Helen Eyelids":
- {
- "Blue":
- {
- "Helen/Helen/Skeleton3D/Blue Eyelids": true,
- "Helen/Helen/Skeleton3D/Pink Eyelids": false,
- },
- "Pink":
- {
- "Helen/Helen/Skeleton3D/Blue Eyelids": false,
- "Helen/Helen/Skeleton3D/Pink Eyelids": true,
- },
- },
-
- "Helen Dress":
- {
- "Half Body CU":
- {
- "Helen/Helen/Skeleton3D/Half Body Skirt": true,
- "Helen/Helen/Skeleton3D/Skirt": false,
- "Helen/Helen/Skeleton3D/Black Shirt": true,
- "Helen/Helen/Skeleton3D/Collar": true,
- },
- "Full Body CU":
- {
- "Helen/Helen/Skeleton3D/Half Body Skirt": false,
- "Helen/Helen/Skeleton3D/Skirt": true,
- "Helen/Helen/Skeleton3D/Black Shirt": true,
- "Helen/Helen/Skeleton3D/Collar": true,
- },
- },
-
- "Helen Hair":
- {
- "Large CU":
- {
- "Helen/Helen/Skeleton3D/BWHair Large": true,
- "Helen/Helen/Skeleton3D/BWHair": false,
- },
- "Normal CU":
- {
- "Helen/Helen/Skeleton3D/BWHair Large": false,
- "Helen/Helen/Skeleton3D/BWHair": true,
- },
- },
-
- "Helen Mask":
- {
- "Modern":
- {
- "Helen/Helen/Skeleton3D/Modern Head": true,
- "Helen/Helen/Skeleton3D/Modern Mask": true,
- "Helen/Helen/Skeleton3D/Road Stage Jaw": false,
- "Helen/Helen/Skeleton3D/Road Stage Beak": false,
- "Helen/Helen/Skeleton3D/Modern Jaw": true,
- "Helen/Helen/Skeleton3D/Modern Beak": true,
- },
- "Road Stage":
- {
- "Helen/Helen/Skeleton3D/Modern Head": true,
- "Helen/Helen/Skeleton3D/Modern Mask": true,
- "Helen/Helen/Skeleton3D/Road Stage Jaw": true,
- "Helen/Helen/Skeleton3D/Road Stage Beak": true,
- "Helen/Helen/Skeleton3D/Modern Jaw": false,
- "Helen/Helen/Skeleton3D/Modern Beak": false,
- },
- },
- }
- }
-}
-
-signal step(amount: int)
-signal start_recording()
-signal end_recording()
-signal return_to_zero()
-signal erase_all()
-
-func reload_stage() -> void:
- $SequencerPanel/TimelinePanel/VScrollBar.value = 0
- $FlyoutPanel/Movements/VScrollBar.value = 0
- $FlyoutPanel/FlowControls/VScrollBar.value = 0
- $CameraPreview.visible = false
- for row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children():
- row.queue_free()
- for flow in $FlyoutPanel/FlowControls/InvisibleMask/FlowHandle.get_children():
- flow.queue_free()
- for movement in $FlyoutPanel/Movements/InvisibleMask/MovementHandle.get_children():
- movement.queue_free()
- for camera in $FlyoutPanel/Camera.get_children():
- camera.queue_free()
- for cosmetic_adjustment in $FlyoutPanel/Cosmetics/InvisibleMask/CosmeticsHandle.get_children():
- cosmetic_adjustment.queue_free()
- if ($SubViewport.get_child_count() > 0):
- $SubViewport.get_child(0).queue_free()
- cam_index = 0
- var stage = load(stages_info[current_stage]["scene"]).instantiate()
- $SubViewport.add_child(stage)
-
- var cam_offset = 4
- for i in range(1, stages_info[current_stage]["camera_count"]+1):
- var camera_button = load("res://Scenes/GUI/Controls/CameraButton.tscn").instantiate()
- camera_button.camera = "Angle " + str(i)
- camera_button.base_scene_path = "../../../" + stages_info[current_stage]["scene_ref_base"]
- camera_button.position.y = cam_offset
- cam_offset += 36
- $FlyoutPanel/Camera.add_child(camera_button)
- $FlyoutPanel/Camera.size.y = cam_offset
-
- var cosmetics_offset = 0
- var cosmetics_count = -1
- for cosmetic in stages_info[current_stage]["cosmetics"]:
- var cosmetic_adjustment = load("res://Scenes/GUI/Controls/CosmeticAdjustment.tscn").instantiate()
- cosmetic_adjustment.vis_name = cosmetic
- cosmetic_adjustment.options = stages_info[current_stage]["cosmetics"][cosmetic]
- cosmetic_adjustment.scene_handle = "../../../../../" + stages_info[current_stage]["scene_ref_base"]
- cosmetic_adjustment.position.y = cosmetics_offset
- cosmetics_offset += 44
- cosmetics_count += 1
- $FlyoutPanel/Cosmetics/InvisibleMask/CosmeticsHandle.add_child(cosmetic_adjustment)
- $FlyoutPanel/Cosmetics/VScrollBar.max_value = cosmetics_count
-
- var rows_offset = 0
- var flows_offset = 0
- var flow_count = 0
- for bit_number in stages_info[current_stage]["bit_mapping"]:
- var bot = stages_info[current_stage]["bit_mapping"][bit_number]["bot"]
- var movement = stages_info[current_stage]["bit_mapping"][bit_number]["movement"]
-
- var in_flow = stages_info[current_stage]["bit_mapping"][bit_number]["flow_in"]
- var out_flow = stages_info[current_stage]["bit_mapping"][bit_number]["flow_out"]
- if (in_flow is not String):
- var flow_control = load("res://Scenes/GUI/Controls/FlowControl.tscn").instantiate()
- flow_control.position.y = flows_offset
- flow_control.name = str(bit_number) + bot + movement + current_stage
- flow_control.vis_name = bot + " " + movement
- flow_control.in_value = in_flow
- flow_control.out_value = out_flow
- $FlyoutPanel/FlowControls/InvisibleMask/FlowHandle.add_child(flow_control)
- flows_offset += 44
- flow_count += 1
-
- var row = load("res://Scenes/GUI/Controls/MovementRow.tscn").instantiate()
- row.name = str(bit_number) + " Bit"
- row.position.y = rows_offset
- row.base_scene_path = "../../../../../" + stages_info[current_stage]["scene_ref_base"]
- row.animatronic = bot
- row.current_stage = current_stage
- if (in_flow is String): row.flow_path = "None"
- row.movement_bit = bit_number
- row.movement_name = movement
- $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.add_child(row, true)
-
- var movement_button = load("res://Scenes/GUI/Controls/MovementButton.tscn").instantiate()
- movement_button.position.y = rows_offset
- movement_button.base_scene_path = "../../../../../" + stages_info[current_stage]["scene_ref_base"]
- movement_button.animatronic = bot
- movement_button.movement_bit = bit_number
- movement_button.current_stage = current_stage
- if (in_flow is String): movement_button.flow_path = "None"
- movement_button.movement_name = movement
- $FlyoutPanel/Movements/InvisibleMask/MovementHandle.add_child(movement_button)
- rows_offset += 44
- $SequencerPanel/TimelinePanel/VScrollBar.max_value = stages_info[current_stage]["bits"] - 1
- $FlyoutPanel/Movements/VScrollBar.max_value = stages_info[current_stage]["bits"] - 1
- $FlyoutPanel/FlowControls/VScrollBar.max_value = flow_count - 1
- $CameraPreview.visible = true
-
-func _on_stage_change_overwrite_confirmation_dialog_confirmed() -> void:
- erase_all.emit()
- current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected)
- reload_stage()
-
-func update_time_label() -> void:
- var frames = index % 60
- var seconds = floori(index/60.0) % 60
- var minutes = floori(index/3600.0) % 60
- var hours = floori(index/216000.0)
- $SequencerPanel/TransportControls/TimeLabel.text = "%d:%02d:%02d:%02d" % [hours, minutes, seconds, frames]
-
-func set_transport_enabled(enabled: bool):
- $SequencerPanel/TransportControls/Centered/StepBackwardsButton.disabled = !enabled
- $SequencerPanel/TransportControls/Centered/FastBackwardsButton.disabled = !enabled
- $SequencerPanel/TransportControls/Centered/PlayBackwardsButton.disabled = !enabled
- $SequencerPanel/TransportControls/Centered/PauseButton.disabled = !enabled
- $SequencerPanel/TransportControls/Centered/StopButton.disabled = !enabled
- $SequencerPanel/TransportControls/Centered/PlayButton.disabled = !enabled
- $SequencerPanel/TransportControls/Centered/FastForwardButton.disabled = !enabled
- $SequencerPanel/TransportControls/Centered/StepForwardButton.disabled = !enabled
- $SequencerPanel/TransportControls/RecordButton.disabled = !enabled
- transport_enabled = enabled
+signal movement_in(movement, rate)
+signal movement_out(movement, rate)
func _ready() -> void:
- get_tree().get_root().size_changed.connect(_on_size_changed)
- erase_all.connect(_erase_all)
- $MenuBar/MenuButton.get_popup().id_pressed.connect(_showtape_menu_button_pressed)
- OS.request_permissions()
- current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected)
- reload_stage()
-
-func _on_stage_selector_item_selected(_index: int) -> void:
- if (showtape_loaded): $StageChangeOverwriteConfirmationDialog.show()
- else:
- current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected)
- reload_stage()
-
-func _showtape_menu_button_pressed(id: int) -> void:
- match (id):
- 0: #new
- if (showtape_loaded): $NewOverwriteConfirmationDialog.show()
- else: $ShowtapeNewScreen.visible = true
- 1: #load
- if (showtape_loaded): $LoadOverwriteConfirmationDialog.show()
- else: $ShowtapeLoadScreen.visible = true
- 2: #save
- if (showtape_loaded): $ShowtapeSaveScreen.visible = true
- else: $NoShowtapeLoadedDialog.show()
-
-
-func _on_showtape_new_audio_browse_button_pressed() -> void:
- $OpenAudioFileDialog.show()
-
-func _on_open_audio_file_dialog_file_selected(path: String) -> void:
- $ShowtapeNewScreen/DialogPanel/AudioFilePath.text = path
-
-func _on_showtape_new_cancel_button_pressed() -> void:
- $ShowtapeNewScreen/DialogPanel/AudioFilePath.text = ""
- $ShowtapeNewScreen/DialogPanel/ShowNameTextBox.text = ""
- $ShowtapeNewScreen.visible = false
-
-func _on_showtape_new_create_button_pressed() -> void:
- if (!FileAccess.file_exists($ShowtapeNewScreen/DialogPanel/AudioFilePath.text.strip_edges())):
- $FileDoesntExistDialog.show()
- return
- if ($ShowtapeNewScreen/DialogPanel/ShowNameTextBox.text.strip_edges() == ""):
- $EmptyStringDialog.show()
- return
- show_name = $ShowtapeNewScreen/DialogPanel/ShowNameTextBox.text.strip_edges()
- $AudioStreamPlayer.stream = load_audio($ShowtapeNewScreen/DialogPanel/AudioFilePath.text.strip_edges())
- set_transport_enabled(true)
- showtape_loaded = true
- $MenuBar/EditingLabel.text = "Editing: " + show_name
- $ShowtapeNewScreen/DialogPanel/AudioFilePath.text = ""
- $ShowtapeNewScreen/DialogPanel/ShowNameTextBox.text = ""
- $ShowtapeNewScreen.visible = false
-
-func _on_new_overwrite_confirmation_dialog_confirmed() -> void:
- erase_all.emit()
- $ShowtapeNewScreen.visible = true
-
-func _on_open_showtape_file_dialog_file_selected(path: String) -> void:
- $ShowtapeLoadScreen/DialogPanel/InFilePath.text = path
-
-func _on_showtape_load_in_browse_button_pressed() -> void:
- $OpenShowtapeFileDialog.show()
-
-func _on_showtape_load_cancel_button_pressed() -> void:
- $ShowtapeLoadScreen/DialogPanel/InFilePath.text = ""
- $ShowtapeLoadScreen.visible = false
-
-func _on_showtape_load_open_button_pressed() -> void:
- if (!FileAccess.file_exists($ShowtapeLoadScreen/DialogPanel/InFilePath.text.strip_edges())):
- $FileDoesntExistDialog.show()
- return
- var file = FileAccess.open($ShowtapeLoadScreen/DialogPanel/InFilePath.text.strip_edges(), FileAccess.READ)
- var content = file.get_as_text()
- var header = content.split(";")[0].split(",")
- if (header[1] != "2"):
- $IncorrectShowtapeDialog.dialog_text = "This showtape is not the correct version!"
- $IncorrectShowtapeDialog.show()
- return
- if (header[3] != stages_info[current_stage]["ust_type"]):
- $IncorrectShowtapeDialog.dialog_text = "This showtape is not compatible with the currently selected stage.\nShowtape stage type: " + header[3]
- $IncorrectShowtapeDialog.show()
- return
- show_name = header[2]
- plot_data(content.split(";")[1])
- $AudioStreamPlayer.stream = load_audio_from_buffer(Marshalls.base64_to_raw(content.split(";")[2]))
- set_transport_enabled(true)
- showtape_loaded = true
- $MenuBar/EditingLabel.text = "Editing: " + show_name
- $ShowtapeLoadScreen/DialogPanel/InFilePath.text = ""
- $ShowtapeLoadScreen.visible = false
-
-func _on_load_overwrite_confirmation_dialog_confirmed() -> void:
- erase_all.emit()
- $ShowtapeLoadScreen.visible = true
-
-
-func _on_showtape_save_out_browse_button_pressed() -> void:
- $SaveShowtapeFileDialog.show()
-
-func _on_showtape_save_create_button_pressed() -> void:
- var header = "UST,2,"+show_name.replace(",", "_").replace(";", "_")+","+stages_info[current_stage]["ust_type"]+";"
- var data_out_string = save_data()
- var file = FileAccess.open($ShowtapeSaveScreen/DialogPanel/OutFilePath.text, FileAccess.WRITE)
- file.store_string(header+data_out_string+";"+Marshalls.raw_to_base64($AudioStreamPlayer.stream.data))
- file.close()
- $ShowtapeSaveScreen/DialogPanel/OutFilePath.text = ""
- $ShowtapeSaveScreen.visible = false
-
-func _on_showtape_save_cancel_button_pressed() -> void:
- $ShowtapeSaveScreen/DialogPanel/OutFilePath.text = ""
- $ShowtapeSaveScreen.visible = false
-
-func _on_save_showtape_file_dialog_file_selected(path: String) -> void:
- $ShowtapeSaveScreen/DialogPanel/OutFilePath.text = path
+ var animatronic = $"SubViewport/HelenHouse/3stHelen"
+ movement_in.connect(animatronic._movement_in)
+ movement_out.connect(animatronic._movement_out)
+ movement_in.connect(self._movement_in)
+ movement_out.connect(self._movement_out)
func _input(event: InputEvent) -> void:
if event.is_action_pressed("toggle_editor_screen"):
$CameraPreview.visible = !$CameraPreview.visible;
$CameraFullScreen.visible = !$CameraFullScreen.visible;
- if event.is_action_pressed("fullscreen"):
- if (!fullscreen):
- fullscreen = true
- DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
- else:
- fullscreen = false
- DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
- if (event.is_action_pressed("cycle_camera_angle")):
- cam_index += 1
- get_node(stages_info[current_stage]["scene_ref_base"] + "Angle " + str((cam_index % stages_info[current_stage]["camera_count"])+1)).current = true
- if (transport_enabled):
- if event.is_action_pressed("sequencer_play_pause"):
- if (playing): _on_pause_button_pressed()
- else: _on_play_button_pressed()
- elif event.is_action_pressed("sequencer_play_reverse"):
- _on_play_backwards_button_pressed()
- elif event.is_action_pressed("sequencer_fast_reverse"):
- _on_fast_backwards_button_pressed()
- elif event.is_action_pressed("sequencer_fast_forward"):
- _on_fast_forward_button_pressed()
- elif event.is_action_pressed("sequencer_step_backward"):
- _on_step_backwards_button_pressed()
- elif event.is_action_pressed("sequencer_step_forward"):
- _on_step_forward_button_pressed()
- elif event.is_action_pressed("sequencer_home"):
- _on_stop_button_pressed()
-
-func _physics_process(_delta: float) -> void:
- if (playing):
- step.emit(playback_rate)
- index += playback_rate
- if (index <= 0): _on_stop_button_pressed()
- update_time_label()
-
-func load_audio(path: String) -> AudioStream:
- var sound
- match (path.split(".")[-1]):
- "mp3":
- sound = AudioStreamMP3.load_from_file(path)
- "wav":
- sound = AudioStreamWAV.load_from_file(path)
- "ogg":
- sound = AudioStreamOggVorbis.load_from_file(path)
- return sound
-
-func load_audio_from_buffer(data: PackedByteArray) -> AudioStream:
- var sound
- match (data[0]):
- 73:
- sound = AudioStreamMP3.load_from_buffer(data)
- 82:
- sound = AudioStreamWAV.load_from_buffer(data)
- 79:
- sound = AudioStreamOggVorbis.load_from_buffer(data)
- return sound
-
-func _on_size_changed() -> void:
- $SubViewport.size = $ColorRect.size
-
-func _on_controls_button_pressed() -> void:
- $ControlsScreen.visible = true
-
-func _on_credits_button_pressed() -> void:
- $CreditsScreen.visible = true
-
-func _on_input_eater_pressed() -> void:
- $ControlsScreen.visible = false
- $CreditsScreen.visible = false
- $ShowtapeNewScreen.visible = false
- $ShowtapeLoadScreen.visible = false
- $ShowtapeSaveScreen.visible = false
-
-func _on_v_scroll_bar_value_changed(value: float) -> void:
- $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.position.y = value * -44
-
-func _on_flow_v_scroll_bar_value_changed(value: float) -> void:
- $FlyoutPanel/FlowControls/InvisibleMask/FlowHandle.position.y = value * -44
-
-func _on_movement_v_scroll_bar_value_changed(value: float) -> void:
- $FlyoutPanel/Movements/InvisibleMask/MovementHandle.position.y = value * -44
-
-func _on_cosmetics_v_scroll_bar_value_changed(value: float) -> void:
- $FlyoutPanel/Cosmetics/InvisibleMask/CosmeticsHandle.position.y = value * -44
-
-func _erase_all() -> void:
- playing = false
- $AudioStreamPlayer.stop()
- $AudioStreamPlayer.seek(0)
- $SequencerPanel/TransportControls/RecordButton.button_pressed = false
- index = 0
- update_time_label()
- show_name = ""
- $AudioStreamPlayer.stream = null
- set_transport_enabled(false)
- showtape_loaded = false
- $MenuBar/EditingLabel.text = "No showtape loaded."
func _on_movements_flyout_button_toggled(toggled_on: bool) -> void:
- $FlyoutPanel/Movements.visible = toggled_on
+ $Movements.visible = toggled_on
func _on_flows_flyout_button_toggled(toggled_on: bool) -> void:
- $FlyoutPanel/FlowControls.visible = toggled_on
+ $FlowControls.visible = toggled_on
-func _on_camera_flyout_button_toggled(toggled_on: bool) -> void:
- $FlyoutPanel/Camera.visible = toggled_on
+func _movement_in(movement, rate):
+ get_node("Movements/IndicatorLights/" + movement).turn_on();
-func _on_cosmetics_flyout_button_toggled(toggled_on: bool) -> void:
- $FlyoutPanel/Cosmetics.visible = toggled_on
+func _movement_out(movement, rate):
+ get_node("Movements/IndicatorLights/" + movement).turn_off();
-func _on_play_button_pressed() -> void:
- playback_rate = 1
- $AudioStreamPlayer.pitch_scale = 1
- $AudioStreamPlayer.play(float(index)/60.0)
- playing = true
+func _on_mouth_button_down() -> void:
+ movement_in.emit("Mouth", $FlowControls/InFlows/MouthFlow.value)
-func _on_pause_button_pressed() -> void:
- $AudioStreamPlayer.stop()
- playing = false
+func _on_mouth_button_up() -> void:
+ movement_out.emit("Mouth", $FlowControls/OutFlows/MouthFlow.value)
-func _on_play_backwards_button_pressed() -> void:
- playback_rate = -1
- $AudioStreamPlayer.stop() # cant play backwards :(
- playing = true
- $SequencerPanel/TransportControls/RecordButton.button_pressed = false
-func _on_fast_backwards_button_pressed() -> void:
- playback_rate = -2
- $AudioStreamPlayer.stop() # cant play backwards :(
- playing = true
- $SequencerPanel/TransportControls/RecordButton.button_pressed = false
+func _on_left_ear_button_down() -> void:
+ movement_in.emit("Left Ear", $FlowControls/InFlows/LeftEarFlow.value)
-func _on_step_backwards_button_pressed() -> void:
- playing = false
- $AudioStreamPlayer.stop()
- $SequencerPanel/TransportControls/RecordButton.button_pressed = false
- if (index != 0):
- step.emit(-1)
- index -= 1
- update_time_label()
+func _on_left_ear_button_up() -> void:
+ movement_out.emit("Left Ear", $FlowControls/OutFlows/LeftEarFlow.value)
-func _on_fast_forward_button_pressed() -> void:
- playback_rate = 2
- $AudioStreamPlayer.pitch_scale = 2
- $AudioStreamPlayer.play(float(index)/60.0)
- playing = true
- $SequencerPanel/TransportControls/RecordButton.button_pressed = false
-func _on_step_forward_button_pressed() -> void:
- playing = false
- $AudioStreamPlayer.stop()
- $SequencerPanel/TransportControls/RecordButton.button_pressed = false
- step.emit(1)
- index += 1
- update_time_label()
+func _on_right_ear_button_down() -> void:
+ movement_in.emit("Right Ear", $FlowControls/InFlows/RightEarFlow.value)
-func _on_record_button_toggled(toggled_on: bool) -> void:
- if (playing):
- # starting recording while playing causes issues
- _on_stop_button_pressed()
- recording = toggled_on
- if (toggled_on): start_recording.emit()
- else: end_recording.emit()
+func _on_right_ear_button_up() -> void:
+ movement_out.emit("Right Ear", $FlowControls/OutFlows/RightEarFlow.value)
-func _on_stop_button_pressed() -> void:
- playing = false
- $AudioStreamPlayer.stop()
- $AudioStreamPlayer.seek(0)
- $SequencerPanel/TransportControls/RecordButton.button_pressed = false
- index = 0
- return_to_zero.emit()
- update_time_label()
-func save_data() -> String:
- var write_out : String = ""
- var temp_data = {}
- var longest_channel = 0
- for movement_row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children():
- temp_data[movement_row.movement_bit] = movement_row.movements
- if (movement_row.movements.size() > longest_channel): longest_channel = movement_row.movements.size()
- for i in range(longest_channel+1):
- var total_frame_index = 1
- var fstring = ""
- for j in range(64):
- var f_quartet = 0
- for k in range(4):
- if (index_get_safe(i, index_s_get_safe(total_frame_index, temp_data))):
- f_quartet += int(pow(2, k))
- total_frame_index += 1
- fstring = ("%01X" % f_quartet) + fstring
- write_out += fstring + ","
- return write_out
+func _on_left_eyelid_button_down() -> void:
+ movement_in.emit("Left Eyelid", $FlowControls/InFlows/LeftEyelidFlow.value)
-func plot_data(data: String):
- start_recording.emit()
- var evil_glass = []
- for movement_row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children():
- evil_glass.append(movement_row.movement_bit)
- for frame_string in data.split(","):
- if (frame_string == ""): continue
- var check_frame_split = frame_string.split()
- check_frame_split.reverse()
- for i in stages_info[current_stage]["bit_mapping"]:
- var er = false
- if ((check_frame_split[(i - 1) / 4].hex_to_int() & int(pow(2, ((i - 1) % 4)))) == int(pow(2, ((i - 1) % 4)))):
- er = true
- $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_child(evil_glass.find(i)).forced_etchable = true
- $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_child(evil_glass.find(i)).etching = er
- step.emit(1)
- for movement_row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children():
- movement_row.forced_etchable = false
- movement_row.etching = false
- end_recording.emit()
- return_to_zero.emit()
+func _on_left_eyelid_button_up() -> void:
+ movement_out.emit("Left Eyelid", $FlowControls/OutFlows/LeftEyelidFlow.value)
-func index_get_safe(cindex: int, data: Array[bool]) -> bool:
- if (cindex > data.size()-1): return false
- if (cindex < 0): return false
- var out = data.get(cindex)
- if (out == null): return false
- return out
-func index_s_get_safe(cindex: int, data: Dictionary) -> Array[bool]:
- if (cindex > data.size()-1): return [ false ]
- if (cindex < 0): return [ false ]
- var out = data.get(cindex)
- if (out == null): return [ false ]
- return out
+func _on_right_eyelid_button_down() -> void:
+ movement_in.emit("Right Eyelid", $FlowControls/InFlows/RightEyelidFlow.value)
+
+func _on_right_eyelid_button_up() -> void:
+ movement_out.emit("Right Eyelid", $FlowControls/OutFlows/RightEyelidFlow.value)
+
+
+func _on_eyes_left_button_down() -> void:
+ movement_in.emit("Eyes Left", $FlowControls/InFlows/EyesLeftFlow.value)
+
+func _on_eyes_left_button_up() -> void:
+ movement_out.emit("Eyes Left", $FlowControls/OutFlows/EyesLeftFlow.value)
+
+
+func _on_eyes_right_button_down() -> void:
+ movement_in.emit("Eyes Right", $FlowControls/InFlows/EyesRightFlow.value)
+
+func _on_eyes_right_button_up() -> void:
+ movement_out.emit("Eyes Right", $FlowControls/OutFlows/EyesRightFlow.value)
+
+
+func _on_head_left_button_down() -> void:
+ movement_in.emit("Head Left", $FlowControls/InFlows/HeadLeftFlow.value)
+
+func _on_head_left_button_up() -> void:
+ movement_out.emit("Head Left", $FlowControls/OutFlows/HeadLeftFlow.value)
+
+
+func _on_head_right_button_down() -> void:
+ movement_in.emit("Head Right", $FlowControls/InFlows/HeadRightFlow.value)
+
+func _on_head_right_button_up() -> void:
+ movement_out.emit("Head Right", $FlowControls/OutFlows/HeadRightFlow.value)
+
+
+func _on_head_up_button_down() -> void:
+ movement_in.emit("Head Up", $FlowControls/InFlows/HeadUpFlow.value)
+
+func _on_head_up_button_up() -> void:
+ movement_out.emit("Head Up", $FlowControls/OutFlows/HeadUpFlow.value)
+
+
+func _on_left_arm_up_button_down() -> void:
+ movement_in.emit("Left Arm Up", $FlowControls/InFlows/LeftArmUpFlow.value)
+
+func _on_left_arm_up_button_up() -> void:
+ movement_out.emit("Left Arm Up", $FlowControls/OutFlows/LeftArmUpFlow.value)
+
+
+func _on_left_arm_twist_button_down() -> void:
+ movement_in.emit("Left Arm Twist", $FlowControls/InFlows/LeftArmTwistFlow.value)
+
+func _on_left_arm_twist_button_up() -> void:
+ movement_out.emit("Left Arm Twist", $FlowControls/OutFlows/LeftArmTwistFlow.value)
+
+
+func _on_left_elbow_button_down() -> void:
+ movement_in.emit("Left Elbow", $FlowControls/InFlows/LeftElbowFlow.value)
+
+func _on_left_elbow_button_up() -> void:
+ movement_out.emit("Left Elbow", $FlowControls/OutFlows/LeftElbowFlow.value)
+
+
+func _on_right_arm_up_button_down() -> void:
+ movement_in.emit("Right Arm Up", $FlowControls/InFlows/RightArmUpFlow.value)
+
+func _on_right_arm_up_button_up() -> void:
+ movement_out.emit("Right Arm Up", $FlowControls/OutFlows/RightArmUpFlow.value)
+
+
+func _on_right_arm_twist_button_down() -> void:
+ movement_in.emit("Right Arm Twist", $FlowControls/InFlows/RightArmTwistFlow.value)
+
+func _on_right_arm_twist_button_up() -> void:
+ movement_out.emit("Right Arm Twist", $FlowControls/OutFlows/RightArmTwistFlow.value)
+
+
+func _on_right_elbow_button_down() -> void:
+ movement_in.emit("Right Elbow", $FlowControls/InFlows/RightElbowFlow.value)
+
+func _on_right_elbow_button_up() -> void:
+ movement_out.emit("Right Elbow", $FlowControls/OutFlows/RightElbowFlow.value)
+
+
+func _on_body_left_button_down() -> void:
+ movement_in.emit("Body Left", $FlowControls/InFlows/BodyLeftFlow.value)
+
+func _on_body_left_button_up() -> void:
+ movement_out.emit("Body Left", $FlowControls/OutFlows/BodyLeftFlow.value)
+
+
+func _on_body_right_button_down() -> void:
+ movement_in.emit("Body Right", $FlowControls/InFlows/BodyRightFlow.value)
+
+func _on_body_right_button_up() -> void:
+ movement_out.emit("Body Right", $FlowControls/OutFlows/BodyRightFlow.value)
+
+
+func _on_body_lean_button_down() -> void:
+ movement_in.emit("Body Lean", $FlowControls/InFlows/BodyLeanFlow.value)
+
+func _on_body_lean_button_up() -> void:
+ movement_out.emit("Body Lean", $FlowControls/OutFlows/BodyLeanFlow.value)
diff --git a/Scripts/FlowControl.gd b/Scripts/FlowControl.gd
deleted file mode 100644
index 66de06e..0000000
--- a/Scripts/FlowControl.gd
+++ /dev/null
@@ -1,21 +0,0 @@
-extends Control
-
-@export var in_value : float = 1.0
-@export var out_value : float = 1.0
-@export var vis_name : String = ""
-
-signal in_value_updated(new_value: float)
-signal out_value_updated(new_value: float)
-
-func _ready() -> void:
- $Panel/Label.text = self.vis_name
- $Panel/InStepper.value = self.in_value
- $Panel/OutStepper.value = self.out_value
-
-func _on_in_stepper_value_changed(value: float) -> void:
- self.in_value = value
- in_value_updated.emit(value)
-
-func _on_out_stepper_value_changed(value: float) -> void:
- self.out_value = value
- out_value_updated.emit(value)
diff --git a/Scripts/FlowSlider.gd b/Scripts/FlowSlider.gd
new file mode 100644
index 0000000..0c85b45
--- /dev/null
+++ b/Scripts/FlowSlider.gd
@@ -0,0 +1,10 @@
+extends Control
+
+@export var value : float = 1.0
+
+func _ready() -> void:
+ $Panel/Slider.value = self.value
+
+func _on_slider_value_changed(value: float) -> void:
+ self.value = $Panel/Slider.value
+ $Panel/ValueLabel.text = str(self.value)
diff --git a/Scripts/FlowControl.gd.uid b/Scripts/FlowSlider.gd.uid
similarity index 100%
rename from Scripts/FlowControl.gd.uid
rename to Scripts/FlowSlider.gd.uid
diff --git a/Scripts/HelenController.gd b/Scripts/HelenController.gd
new file mode 100644
index 0000000..0818448
--- /dev/null
+++ b/Scripts/HelenController.gd
@@ -0,0 +1,14 @@
+extends Node3D
+
+var animation_player
+
+func _ready():
+ animation_player = $AnimationPlayer
+
+func _movement_in(movement, rate):
+ animation_player.speed_scale = rate
+ animation_player.play(movement)
+
+func _movement_out(movement, rate):
+ animation_player.speed_scale = rate
+ animation_player.play_backwards(movement)
diff --git a/Scripts/AnimatronicController.gd.uid b/Scripts/HelenController.gd.uid
similarity index 100%
rename from Scripts/AnimatronicController.gd.uid
rename to Scripts/HelenController.gd.uid
diff --git a/Scripts/IndicatorLight.gd b/Scripts/IndicatorLight.gd
new file mode 100644
index 0000000..bbf57ae
--- /dev/null
+++ b/Scripts/IndicatorLight.gd
@@ -0,0 +1,22 @@
+extends Control
+
+@export var on: bool = false
+
+func _ready() -> void:
+ $Green.visible = self.on
+
+func turn_on() -> void:
+ self.on = true
+ $Green.visible = self.on
+
+func turn_off() -> void:
+ self.on = false
+ $Green.visible = self.on
+
+func toggle() -> void:
+ self.on = !self.on
+ $Green.visible = self.on
+
+func set_state(value: bool) -> void:
+ self.on = value
+ $Green.visible = self.on
diff --git a/Scripts/MovementButton.gd.uid b/Scripts/IndicatorLight.gd.uid
similarity index 100%
rename from Scripts/MovementButton.gd.uid
rename to Scripts/IndicatorLight.gd.uid
diff --git a/Scripts/LightController.gd b/Scripts/LightController.gd
deleted file mode 100644
index b5dc91d..0000000
--- a/Scripts/LightController.gd
+++ /dev/null
@@ -1,7 +0,0 @@
-extends Node3D
-
-func _movement_in(movement, _rate):
- get_node(movement).visible = true
-
-func _movement_out(movement, _rate):
- get_node(movement).visible = false
diff --git a/Scripts/LightController.gd.uid b/Scripts/LightController.gd.uid
deleted file mode 100644
index 2a8204c..0000000
--- a/Scripts/LightController.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://d1p4ite8ts2wi
diff --git a/Scripts/MovementButton.gd b/Scripts/MovementButton.gd
deleted file mode 100644
index 2e7e1c5..0000000
--- a/Scripts/MovementButton.gd
+++ /dev/null
@@ -1,41 +0,0 @@
-extends Control
-
-signal movement_in(movement, rate)
-signal movement_out(movement, rate)
-
-@export var animatronic : String
-@export var movement_bit : int
-@export var current_stage : String
-@export var base_scene_path : String
-@export var flow_path : String = "../../../../../FlyoutPanel/FlowControls/InvisibleMask/FlowHandle/"
-@export var movement_name : String
-
-var in_flow : float = 1.0
-var out_flow : float = 1.0
-
-func _ready() -> void:
- $Panel/Button.text = animatronic + " " + movement_name
- if (animatronic != "None"):
- var animatronic_node = get_node(base_scene_path + animatronic)
- movement_in.connect(animatronic_node._movement_in)
- movement_out.connect(animatronic_node._movement_out)
- if (flow_path != "None"):
- var flow_control = get_node(flow_path + str(movement_bit) + animatronic + movement_name + current_stage)
- flow_control.in_value_updated.connect(self._update_in_flow)
- flow_control.out_value_updated.connect(self._update_out_flow)
- in_flow = flow_control.in_value
- out_flow = flow_control.out_value
-
-func _update_in_flow(new_value: float) -> void:
- in_flow = new_value
-
-func _update_out_flow(new_value: float) -> void:
- out_flow = new_value
-
-func _on_button_button_down() -> void:
- movement_in.emit(movement_name, in_flow)
- $Panel/IndicatorPanel/Green.visible = true
-
-func _on_button_button_up() -> void:
- movement_out.emit(movement_name, out_flow)
- $Panel/IndicatorPanel/Green.visible = false
diff --git a/Scripts/MovementFrameIndicator.gd b/Scripts/MovementFrameIndicator.gd
deleted file mode 100644
index 67590fe..0000000
--- a/Scripts/MovementFrameIndicator.gd
+++ /dev/null
@@ -1,6 +0,0 @@
-extends Control
-
-@export var x_offset : int = 0
-
-func _ready() -> void:
- self.size.x += x_offset
diff --git a/Scripts/MovementFrameIndicator.gd.uid b/Scripts/MovementFrameIndicator.gd.uid
deleted file mode 100644
index ce8fc88..0000000
--- a/Scripts/MovementFrameIndicator.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://b4qincechbf63
diff --git a/Scripts/MovementRow.gd b/Scripts/MovementRow.gd
deleted file mode 100644
index b02c8c3..0000000
--- a/Scripts/MovementRow.gd
+++ /dev/null
@@ -1,176 +0,0 @@
-extends Panel
-
-@export var movement_bit : int = 0
-@export var movement_name : String = "Name"
-@export var flow_path : String = "../../../../../FlyoutPanel/FlowControls/InvisibleMask/FlowHandle/"
-@export var base_scene_path : String
-@export var current_stage : String
-@export var animatronic : String
-@export var movements : Array[bool]
-@export var etching: bool = false
-@export var forced_etchable: bool = false
-
-var in_flow : float = 1.0
-var out_flow : float = 1.0
-
-var key_binding : InputEventKey = InputEventKey.new()
-var current_index : int = 0
-var binding : bool = false
-var held_on_previous_frame : bool = false
-var playback_held_on_previous_frame : bool = false
-var recording : bool = false
-var playing : bool = true
-var current_block_indicator
-
-signal movement_in(movement, rate)
-signal movement_out(movement, rate)
-
-func set_at_current() -> void:
- if (current_index > self.movements.size()-1): self.movements.append(true)
- else: self.movements.set(current_index, true)
- if (check_at_index(current_index-1)): current_block_indicator.get_node("ColorRect").size.x += 2
- else:
- current_block_indicator = load("res://Scenes/GUI/Controls/MovementFrameIndicatorOn.tscn").instantiate()
- current_block_indicator.position.x = current_index * 2
- $MovementsBG/InvisibleMask/MovementsHandle.add_child(current_block_indicator)
-
-func unset_at_current() -> void:
- if (current_index > self.movements.size()-1): self.movements.append(false)
- else: self.movements.set(current_index, false)
- if (!check_at_index(current_index-1)): current_block_indicator.get_node("ColorRect").size.x += 2
- else:
- current_block_indicator = load("res://Scenes/GUI/Controls/MovementFrameIndicatorOff.tscn").instantiate()
- current_block_indicator.position.x = current_index * 2
- $MovementsBG/InvisibleMask/MovementsHandle.add_child(current_block_indicator)
-
-func check_at_current() -> bool:
- if (current_index > self.movements.size()-1): return false
- var out = self.movements.get(current_index)
- if (out == null): return false
- return out
-
-func check_at_index(cindex: int) -> bool:
- if (cindex > self.movements.size()-1): return false
- if (cindex < 0): return false
- var out = self.movements.get(cindex)
- if (out == null): return false
- return out
-
-func check_if_erasing() -> bool:
- if (forced_etchable): return true
- return (!$LockButton.button_pressed) && key_binding.keycode != 0
-
-func _step(amount: int):
- if (recording && check_if_erasing()):
- if (etching): set_at_current()
- else: unset_at_current()
- if (playing):
- if (check_at_current()):
- if (!playback_held_on_previous_frame):
- movement_in.emit(movement_name, in_flow)
- playback_held_on_previous_frame = true;
- else:
- if (playback_held_on_previous_frame):
- movement_out.emit(movement_name, out_flow)
- playback_held_on_previous_frame = false;
- current_index += amount
- $MovementsBG/InvisibleMask/MovementsHandle.position.x += -2*amount
-
-func _return_to_zero():
- current_index = 0
- $MovementsBG/InvisibleMask/MovementsHandle.position.x = 120
- movement_out.emit(movement_name, out_flow)
-
-func _erase_all() -> void:
- _return_to_zero()
- _on_clear_button_pressed()
-
-func _start_recording():
- recording = true
-
-func _end_recording():
- recording = false
-
-func _start_playback():
- playing = true
-
-func _end_playback():
- playing = false
-
-func update_text() -> void:
- if (animatronic == "None"): $Button.text = "%d - Unused (%s)" % [movement_bit, key_binding.as_text() if key_binding.keycode != 0 else "Unbound"]
- else: $Button.text = "%d - %s %s (%s)" % [movement_bit, animatronic, movement_name, key_binding.as_text() if key_binding.keycode != 0 else "Unbound"]
-
-func _update_in_flow(new_value: float) -> void:
- in_flow = new_value
-
-func _update_out_flow(new_value: float) -> void:
- out_flow = new_value
-
-func _ready() -> void:
- if (flow_path != "None"):
- var flow_control = get_node(flow_path + str(movement_bit) + animatronic + movement_name + current_stage)
- flow_control.in_value_updated.connect(self._update_in_flow)
- flow_control.out_value_updated.connect(self._update_out_flow)
- in_flow = flow_control.in_value
- out_flow = flow_control.out_value
- if (animatronic != "None"):
- var animatronic_node = get_node(base_scene_path + animatronic)
- movement_in.connect(animatronic_node._movement_in)
- movement_out.connect(animatronic_node._movement_out)
- movement_in.connect(self._movement_in)
- movement_out.connect(self._movement_out)
- var editor = get_node("../../../../../")
- editor.step.connect(_step)
- editor.start_recording.connect(_start_recording)
- editor.end_recording.connect(_end_recording)
- editor.return_to_zero.connect(_return_to_zero)
- editor.erase_all.connect(_erase_all)
- current_block_indicator = load("res://Scenes/GUI/Controls/MovementFrameIndicatorOff.tscn").instantiate()
- update_text()
-
-func _process(_delta: float) -> void:
- if (binding || key_binding.keycode == 0): return
- if (Input.is_key_pressed(key_binding.keycode)):
- if (!held_on_previous_frame):
- movement_in.emit(movement_name, in_flow)
- held_on_previous_frame = true;
- else:
- if (held_on_previous_frame):
- movement_out.emit(movement_name, out_flow)
- held_on_previous_frame = false;
-
-func _movement_in(_movement, _rate):
- $ActiveBG.visible = true
- if (recording): etching = true
-
-func _movement_out(_movement, _rate):
- $ActiveBG.visible = false
- etching = false
-
-func _on_button_pressed() -> void:
- if (binding):
- update_text()
- binding = false
- return
- if (key_binding.keycode == 0):
- $Button.text = "Press a key to bind."
- binding = true
- else:
- key_binding.keycode = KEY_NONE
- update_text()
-
-func _input(event: InputEvent) -> void:
- if (event is InputEventKey && binding):
- if (event.keycode != KEY_ESCAPE):
- key_binding = event
- binding = false
- update_text()
- return
-
-func _on_clear_button_pressed() -> void:
- if ($LockButton.button_pressed): return
- movements = []
- for indicator in $MovementsBG/InvisibleMask/MovementsHandle.get_children():
- indicator.queue_free()
- current_block_indicator = load("res://Scenes/GUI/Controls/MovementFrameIndicatorOff.tscn").instantiate()
diff --git a/Scripts/MovementRow.gd.uid b/Scripts/MovementRow.gd.uid
deleted file mode 100644
index 14caf71..0000000
--- a/Scripts/MovementRow.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://tn3aaldu7mm2
diff --git a/Stages.md b/Stages.md
deleted file mode 100644
index 8acdca4..0000000
--- a/Stages.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# Stages
-
-## Currently in game
-
- - Helen House (homemade stage)
- - Chuck E's Corner (homemade stage)
-
-## In Development
-
- - Balcony Stage
- - Prototype Road Stage
-
-## Planned
-
-### Cyberamics
-
- - Portrait Stage
- - Shelf Stage (Portrait stage with Balcony mechs)
- - C Stage
- - Rocker Stage
- - Road Stage
- - 2-Stage
- - 1-Stage
- - Turntable 1-Stage
- - Cyberamic 3-Stage
-
-
-### 3-Stage
-
- - 3-Stage
- - CU 1-Stage
- - Hollywood 3-Stage
-
-
-### Studio C
-
- - Studio C Alpha
- - Studio C Alpha 3-Stage
- - Studio C Jukebox/"Prototype"
- - Studio C Beta (3 Screens)
- - Studio C Beta (1 Screen)
- - Studio C Cappa (Mirror Backdrop)
- - Studio C Cappa (Spiral Backdrop)
- - Studio C Cappa (Beta Backdrop)
- - Star Stage
- - Studio C Beta (2012 Update)
- - Circles of Light
-
-### Other
-
- - Winchester Portrait Stage
- - Kooser Portrait Stage
- - Store specific variants (Lake Forest, Staten Island, Jeddah, Huntsville)
-
-
-## Far future (unlikely without model contributions)
-
- - Rock-afire Explosion
- - Mini Stage (RAE)
- - Magic Stage (RAE)
- - Hannah Banana Stage
- - Playroom 3-Stage
- - Winter 3-Stage
- - Awesome Adventure Machine
- - Concept Unification Prototype
- - Guest Stars (Portrait/Balcony stages)
- - Cabaret (Dolli Dimples, Artie Antlers, B.B. Bubbles, Dr. Quack)
- - Lounge (The King, King Kat, Helen Henny, Beach Bowsers, The Beagles)
- - Latex masks for 3-Stage
-
-
-## Never
-
- - 2015 Dance Floor
- - 2017 Dance Floor
- - 2019 Dance Floor
- - 2021 Dance Floor + Video Wall
- - Dance Floor + Circles of Light
- - Anything to do with The Mopsey Sisters
diff --git a/UI/BlankCam.png b/UI/BlankCam.png
index 822a25f..ee39acd 100644
Binary files a/UI/BlankCam.png and b/UI/BlankCam.png differ
diff --git a/UI/FastBackwards.png b/UI/FastBackwards.png
deleted file mode 100644
index 9bfcd28..0000000
Binary files a/UI/FastBackwards.png and /dev/null differ
diff --git a/UI/FastBackwards.png.import b/UI/FastBackwards.png.import
deleted file mode 100644
index a9eb6b8..0000000
--- a/UI/FastBackwards.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dhx2v2fd0egxd"
-path="res://.godot/imported/FastBackwards.png-f55ba91d8d237cb6919d5f2a056db594.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/FastBackwards.png"
-dest_files=["res://.godot/imported/FastBackwards.png-f55ba91d8d237cb6919d5f2a056db594.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/FastForward.png b/UI/FastForward.png
deleted file mode 100644
index 93f5dff..0000000
Binary files a/UI/FastForward.png and /dev/null differ
diff --git a/UI/FastForward.png.import b/UI/FastForward.png.import
deleted file mode 100644
index f24b413..0000000
--- a/UI/FastForward.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dsr03w7r667fw"
-path="res://.godot/imported/FastForward.png-acbfeb2710bea5385ca8ad13fa6699e8.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/FastForward.png"
-dest_files=["res://.godot/imported/FastForward.png-acbfeb2710bea5385ca8ad13fa6699e8.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/Pause.png b/UI/Pause.png
deleted file mode 100644
index 2892111..0000000
Binary files a/UI/Pause.png and /dev/null differ
diff --git a/UI/Pause.png.import b/UI/Pause.png.import
deleted file mode 100644
index 1d6d8e3..0000000
--- a/UI/Pause.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://bwhgy4u37jmo1"
-path="res://.godot/imported/Pause.png-90c47ed988bd7d26b746eb81a6aaeedf.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/Pause.png"
-dest_files=["res://.godot/imported/Pause.png-90c47ed988bd7d26b746eb81a6aaeedf.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/Play.png b/UI/Play.png
deleted file mode 100644
index 378ce01..0000000
Binary files a/UI/Play.png and /dev/null differ
diff --git a/UI/PlayBackwards.png b/UI/PlayBackwards.png
deleted file mode 100644
index 37f25b2..0000000
Binary files a/UI/PlayBackwards.png and /dev/null differ
diff --git a/UI/PlayBackwards.png.import b/UI/PlayBackwards.png.import
deleted file mode 100644
index 2e32746..0000000
--- a/UI/PlayBackwards.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dgacnkv2dc65s"
-path="res://.godot/imported/PlayBackwards.png-52f3d5b871717feab369f20308dd695c.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/PlayBackwards.png"
-dest_files=["res://.godot/imported/PlayBackwards.png-52f3d5b871717feab369f20308dd695c.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/PneumaticPlaything.icon/Assets/cylinder.svg b/UI/PneumaticPlaything.icon/Assets/cylinder.svg
deleted file mode 100644
index d6749de..0000000
--- a/UI/PneumaticPlaything.icon/Assets/cylinder.svg
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
diff --git a/UI/PneumaticPlaything.icon/Assets/cylinder.svg.import b/UI/PneumaticPlaything.icon/Assets/cylinder.svg.import
deleted file mode 100644
index 5c56810..0000000
--- a/UI/PneumaticPlaything.icon/Assets/cylinder.svg.import
+++ /dev/null
@@ -1,37 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://1eluxvmnj7l7"
-path="res://.godot/imported/cylinder.svg-7c12310ad8fca6e1f959909a64d6d065.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/PneumaticPlaything.icon/Assets/cylinder.svg"
-dest_files=["res://.godot/imported/cylinder.svg-7c12310ad8fca6e1f959909a64d6d065.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
-svg/scale=1.0
-editor/scale_with_editor_scale=false
-editor/convert_colors_with_editor_theme=false
diff --git a/UI/PneumaticPlaything.icon/Assets/green_lines.svg b/UI/PneumaticPlaything.icon/Assets/green_lines.svg
deleted file mode 100644
index ce9309e..0000000
--- a/UI/PneumaticPlaything.icon/Assets/green_lines.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
diff --git a/UI/PneumaticPlaything.icon/Assets/green_lines.svg.import b/UI/PneumaticPlaything.icon/Assets/green_lines.svg.import
deleted file mode 100644
index 6881607..0000000
--- a/UI/PneumaticPlaything.icon/Assets/green_lines.svg.import
+++ /dev/null
@@ -1,37 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dkg2eh0tfbji4"
-path="res://.godot/imported/green_lines.svg-af1cb631137e1105ee7be8775d8a5016.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/PneumaticPlaything.icon/Assets/green_lines.svg"
-dest_files=["res://.godot/imported/green_lines.svg-af1cb631137e1105ee7be8775d8a5016.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
-svg/scale=1.0
-editor/scale_with_editor_scale=false
-editor/convert_colors_with_editor_theme=false
diff --git a/UI/PneumaticPlaything.icon/icon.json b/UI/PneumaticPlaything.icon/icon.json
deleted file mode 100644
index 1b2358d..0000000
--- a/UI/PneumaticPlaything.icon/icon.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "fill" : {
- "automatic-gradient" : "srgb:0.12984,0.12985,0.12984,1.00000"
- },
- "groups" : [
- {
- "layers" : [
- {
- "blend-mode" : "normal",
- "fill" : {
- "automatic-gradient" : "srgb:1.00000,1.00000,1.00000,1.00000"
- },
- "glass" : true,
- "image-name" : "cylinder.svg",
- "name" : "cylinder",
- "position" : {
- "scale" : 3,
- "translation-in-points" : [
- 0,
- 0
- ]
- }
- }
- ],
- "shadow" : {
- "kind" : "neutral",
- "opacity" : 0.5
- },
- "translucency" : {
- "enabled" : true,
- "value" : 0.5
- }
- },
- {
- "layers" : [
- {
- "fill" : {
- "automatic-gradient" : "srgb:0.00000,0.97680,0.00000,1.00000"
- },
- "image-name" : "green_lines.svg",
- "name" : "green_lines",
- "opacity" : 1,
- "position" : {
- "scale" : 3.4,
- "translation-in-points" : [
- 0,
- 0
- ]
- }
- }
- ],
- "shadow" : {
- "kind" : "neutral",
- "opacity" : 0.5
- },
- "translucency" : {
- "enabled" : true,
- "value" : 0.5
- }
- }
- ],
- "supported-platforms" : {
- "circles" : [
- "watchOS"
- ],
- "squares" : "shared"
- }
-}
\ No newline at end of file
diff --git a/UI/Record.png b/UI/Record.png
deleted file mode 100644
index 4ffe48f..0000000
Binary files a/UI/Record.png and /dev/null differ
diff --git a/UI/Record.png.import b/UI/Record.png.import
deleted file mode 100644
index 2d19281..0000000
--- a/UI/Record.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://ckg2ihy105ttj"
-path="res://.godot/imported/Record.png-52d5a1455899304e32054af5c940c434.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/Record.png"
-dest_files=["res://.godot/imported/Record.png-52d5a1455899304e32054af5c940c434.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/SkipBackwards.png b/UI/SkipBackwards.png
deleted file mode 100644
index f3e1d5a..0000000
Binary files a/UI/SkipBackwards.png and /dev/null differ
diff --git a/UI/SkipBackwards.png.import b/UI/SkipBackwards.png.import
deleted file mode 100644
index 0e46ac4..0000000
--- a/UI/SkipBackwards.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dts4eh6hyt8p3"
-path="res://.godot/imported/SkipBackwards.png-dfebc48054bc60d9671fc8d69c696237.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/SkipBackwards.png"
-dest_files=["res://.godot/imported/SkipBackwards.png-dfebc48054bc60d9671fc8d69c696237.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/SkipForward.png b/UI/SkipForward.png
deleted file mode 100644
index 29c5dec..0000000
Binary files a/UI/SkipForward.png and /dev/null differ
diff --git a/UI/SkipForward.png.import b/UI/SkipForward.png.import
deleted file mode 100644
index eef54cb..0000000
--- a/UI/SkipForward.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://bphwtliq2ahus"
-path="res://.godot/imported/SkipForward.png-ca36b20fa5c982368f6b620245865f56.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/SkipForward.png"
-dest_files=["res://.godot/imported/SkipForward.png-ca36b20fa5c982368f6b620245865f56.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/SmallLock.png b/UI/SmallLock.png
deleted file mode 100644
index b5bc9f0..0000000
Binary files a/UI/SmallLock.png and /dev/null differ
diff --git a/UI/SmallLock.png.import b/UI/SmallLock.png.import
deleted file mode 100644
index ea363c7..0000000
--- a/UI/SmallLock.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://d007317123e27"
-path="res://.godot/imported/SmallLock.png-0c9e5ce04a7421f0922124b2fb1d8696.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/SmallLock.png"
-dest_files=["res://.godot/imported/SmallLock.png-0c9e5ce04a7421f0922124b2fb1d8696.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/SmallX.png b/UI/SmallX.png
deleted file mode 100644
index 157eba5..0000000
Binary files a/UI/SmallX.png and /dev/null differ
diff --git a/UI/SmallX.png.import b/UI/SmallX.png.import
deleted file mode 100644
index 7b9fa19..0000000
--- a/UI/SmallX.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cn5xdrxdv622h"
-path="res://.godot/imported/SmallX.png-fca237bd1b13d37241a1ac9e982c446b.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/SmallX.png"
-dest_files=["res://.godot/imported/SmallX.png-fca237bd1b13d37241a1ac9e982c446b.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/Stop.png b/UI/Stop.png
deleted file mode 100644
index a008b37..0000000
Binary files a/UI/Stop.png and /dev/null differ
diff --git a/UI/Stop.png.import b/UI/Stop.png.import
deleted file mode 100644
index 9659f7c..0000000
--- a/UI/Stop.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cttgtbu1xllwq"
-path="res://.godot/imported/Stop.png-28cf49bd72d354d073c38f19027d6ddb.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/Stop.png"
-dest_files=["res://.godot/imported/Stop.png-28cf49bd72d354d073c38f19027d6ddb.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/Themes/Dark.tres b/UI/Themes/Dark.tres
deleted file mode 100644
index cb4f782..0000000
--- a/UI/Themes/Dark.tres
+++ /dev/null
@@ -1,16 +0,0 @@
-[gd_resource type="Theme" load_steps=2 format=3 uid="uid://dbgs4id7y5d1c"]
-
-[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6oevq"]
-bg_color = Color(0.133333, 0.133333, 0.133333, 1)
-border_width_left = 1
-border_width_top = 1
-border_width_right = 1
-border_width_bottom = 1
-border_color = Color(0.0941176, 0.0941176, 0.0941176, 1)
-corner_radius_top_left = 4
-corner_radius_top_right = 4
-corner_radius_bottom_right = 4
-corner_radius_bottom_left = 4
-
-[resource]
-Panel/styles/panel = SubResource("StyleBoxFlat_6oevq")
diff --git a/UI/Themes/MovementsPanelOverride.tres b/UI/Themes/MovementsPanelOverride.tres
deleted file mode 100644
index 3055b66..0000000
--- a/UI/Themes/MovementsPanelOverride.tres
+++ /dev/null
@@ -1,6 +0,0 @@
-[gd_resource type="StyleBoxFlat" format=3 uid="uid://d17amc25o63p1"]
-
-[resource]
-bg_color = Color(0.0941176, 0.0941176, 0.0941176, 1)
-corner_radius_top_right = 4
-corner_radius_bottom_right = 4
diff --git a/UI/icon-32px.png b/UI/icon-32px.png
deleted file mode 100644
index 16574f1..0000000
Binary files a/UI/icon-32px.png and /dev/null differ
diff --git a/UI/icon-32px.png.import b/UI/icon-32px.png.import
deleted file mode 100644
index 6250137..0000000
--- a/UI/icon-32px.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://bpb3xn54kpxoe"
-path="res://.godot/imported/icon-32px.png-601da436f7467fcd6c395054742650f3.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/icon-32px.png"
-dest_files=["res://.godot/imported/icon-32px.png-601da436f7467fcd6c395054742650f3.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/icon-round.png b/UI/icon-round.png
deleted file mode 100644
index fdbbf6c..0000000
Binary files a/UI/icon-round.png and /dev/null differ
diff --git a/UI/icon-round.png.import b/UI/icon-round.png.import
deleted file mode 100644
index 5f55748..0000000
--- a/UI/icon-round.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://yqg6bh2fiumf"
-path="res://.godot/imported/icon-round.png-d13b0f9c2aed0f892b01044430866017.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/icon-round.png"
-dest_files=["res://.godot/imported/icon-round.png-d13b0f9c2aed0f892b01044430866017.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/UI/icon.icns b/UI/icon.icns
deleted file mode 100644
index cf6eb7e..0000000
Binary files a/UI/icon.icns and /dev/null differ
diff --git a/UI/icon.ico b/UI/icon.ico
deleted file mode 100644
index 59409c5..0000000
Binary files a/UI/icon.ico and /dev/null differ
diff --git a/UI/icon.png b/UI/icon.png
deleted file mode 100644
index fc311ca..0000000
Binary files a/UI/icon.png and /dev/null differ
diff --git a/UI/icon.png.import b/UI/icon.png.import
deleted file mode 100644
index 10cbd4d..0000000
--- a/UI/icon.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cnvfrr028730a"
-path="res://.godot/imported/icon.png-d44ad423496976af115f803f6386bc82.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://UI/icon.png"
-dest_files=["res://.godot/imported/icon.png-d44ad423496976af115f803f6386bc82.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/icon.png b/icon.png
new file mode 100644
index 0000000..bf8c711
Binary files /dev/null and b/icon.png differ
diff --git a/UI/Play.png.import b/icon.png.import
similarity index 70%
rename from UI/Play.png.import
rename to icon.png.import
index e17e752..3064ba9 100644
--- a/UI/Play.png.import
+++ b/icon.png.import
@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
-uid="uid://xllpr3qc064c"
-path="res://.godot/imported/Play.png-eec0d54380d32c59b84e7db5fa226d5e.ctex"
+uid="uid://dhjuhhilgmxq3"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://UI/Play.png"
-dest_files=["res://.godot/imported/Play.png-eec0d54380d32c59b84e7db5fa226d5e.ctex"]
+source_file="res://icon.png"
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
[params]
diff --git a/project.godot b/project.godot
index 4b8bb8c..1572dca 100644
--- a/project.godot
+++ b/project.godot
@@ -11,392 +11,27 @@ config_version=5
[application]
config/name="Pneumatic Plaything"
-config/version="v0.6"
+config/version="v0.1"
run/main_scene="uid://oiehbor0dlqx"
config/features=PackedStringArray("4.4", "GL Compatibility")
boot_splash/show_image=false
-config/icon="uid://cnvfrr028730a"
-config/macos_native_icon="res://UI/icon.icns"
-config/windows_native_icon="res://UI/icon.ico"
+config/icon="uid://dhjuhhilgmxq3"
[display]
window/size/viewport_width=1280
window/size/viewport_height=720
-[filesystem]
-
-import/blender/enabled=false
-
[input]
-ui_accept={
-"deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-]
-}
-ui_select={
-"deadzone": 0.5,
-"events": []
-}
-ui_cancel={
-"deadzone": 0.5,
-"events": []
-}
-ui_focus_next={
-"deadzone": 0.5,
-"events": []
-}
-ui_focus_prev={
-"deadzone": 0.5,
-"events": []
-}
-ui_left={
-"deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
-]
-}
-ui_right={
-"deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
-]
-}
-ui_up={
-"deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
-]
-}
-ui_down={
-"deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
-]
-}
-ui_page_up={
-"deadzone": 0.5,
-"events": []
-}
-ui_page_down={
-"deadzone": 0.5,
-"events": []
-}
-ui_home={
-"deadzone": 0.5,
-"events": []
-}
-ui_end={
-"deadzone": 0.5,
-"events": []
-}
-ui_cut={
-"deadzone": 0.5,
-"events": []
-}
-ui_copy={
-"deadzone": 0.5,
-"events": []
-}
-ui_paste={
-"deadzone": 0.5,
-"events": []
-}
-ui_undo={
-"deadzone": 0.5,
-"events": []
-}
-ui_redo={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_completion_query={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_completion_accept={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_completion_replace={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_newline={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_newline_blank={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_newline_above={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_indent={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_dedent={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_backspace_word={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_backspace_word.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_backspace_all_to_left.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_delete_word={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_delete_word.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_delete_all_to_right.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_left={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_word_left={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_word_left.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_right={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_word_right={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_word_right.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_up={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_down={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_line_start={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_line_start.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_line_end={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_line_end.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_page_up={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_page_down={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_document_start={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_document_start.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_document_end={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_document_end.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_add_below={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_add_below.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_add_above={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_caret_add_above.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_scroll_up={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_scroll_up.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_scroll_down={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_scroll_down.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_select_all={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_select_word_under_caret={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_select_word_under_caret.macos={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_add_selection_for_next_occurrence={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_skip_selection_for_next_occurrence={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_clear_carets_and_selection={
-"deadzone": 0.5,
-"events": []
-}
-ui_text_toggle_insert_mode={
-"deadzone": 0.5,
-"events": []
-}
-ui_menu={
-"deadzone": 0.5,
-"events": []
-}
-ui_unicode_start={
-"deadzone": 0.5,
-"events": []
-}
-ui_graph_duplicate={
-"deadzone": 0.5,
-"events": []
-}
-ui_graph_delete={
-"deadzone": 0.5,
-"events": []
-}
-ui_filedialog_up_one_level={
-"deadzone": 0.5,
-"events": []
-}
-ui_filedialog_refresh={
-"deadzone": 0.5,
-"events": []
-}
-ui_filedialog_show_hidden={
-"deadzone": 0.5,
-"events": []
-}
-ui_swap_input_direction={
-"deadzone": 0.5,
-"events": []
-}
toggle_editor_screen={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":true,"script":null)
]
}
-sequencer_play_pause={
-"deadzone": 0.2,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
-]
-}
-sequencer_play_reverse={
-"deadzone": 0.2,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null)
-]
-}
-sequencer_fast_forward={
-"deadzone": 0.2,
-"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":5,"axis_value":1.0,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-]
-}
-sequencer_fast_reverse={
-"deadzone": 0.2,
-"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":4,"axis_value":1.0,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-]
-}
-sequencer_step_forward={
-"deadzone": 0.2,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":true,"script":null)
-]
-}
-sequencer_step_backward={
-"deadzone": 0.2,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":9,"pressure":0.0,"pressed":true,"script":null)
-]
-}
-cycle_camera_angle={
-"deadzone": 0.2,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null)
-]
-}
-sequencer_home={
-"deadzone": 0.2,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194317,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
-]
-}
-fullscreen={
-"deadzone": 0.2,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194342,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":true,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
-]
-}
[rendering]
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"
-textures/vram_compression/import_etc2_astc=true
-limits/opengl/max_renderable_lights=128
-limits/opengl/max_lights_per_object=128