diff --git a/Models/3-Stage/3stHelen.glb b/Models/3-Stage/3stHelen.glb
index a2bdb2f..a3e3958 100644
Binary files a/Models/3-Stage/3stHelen.glb and b/Models/3-Stage/3stHelen.glb differ
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.glb.import b/Models/Balcony/BalconyStage.glb.import
deleted file mode 100644
index a005e55..0000000
--- a/Models/Balcony/BalconyStage.glb.import
+++ /dev/null
@@ -1,37 +0,0 @@
-[remap]
-
-importer="scene"
-importer_version=1
-type="PackedScene"
-uid="uid://c6n4otfble154"
-path="res://.godot/imported/BalconyStage.glb-30f76dcef53d0e1cd152a84572aefbee.scn"
-
-[deps]
-
-source_file="res://Models/Balcony/BalconyStage.glb"
-dest_files=["res://.godot/imported/BalconyStage.glb-30f76dcef53d0e1cd152a84572aefbee.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/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/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.glb.import b/Models/Cyberamics/Cyber Helen.glb.import
deleted file mode 100644
index 0bec33a..0000000
--- a/Models/Cyberamics/Cyber Helen.glb.import
+++ /dev/null
@@ -1,37 +0,0 @@
-[remap]
-
-importer="scene"
-importer_version=1
-type="PackedScene"
-uid="uid://d34xfaignny8j"
-path="res://.godot/imported/Cyber Helen.glb-3f0344c1f3e746ac81eea3dfffd7e005.scn"
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Helen.glb"
-dest_files=["res://.godot/imported/Cyber Helen.glb-3f0344c1f3e746ac81eea3dfffd7e005.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/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.glb.import b/Models/Cyberamics/Cyber Jasper.glb.import
deleted file mode 100644
index 58015b9..0000000
--- a/Models/Cyberamics/Cyber Jasper.glb.import
+++ /dev/null
@@ -1,37 +0,0 @@
-[remap]
-
-importer="scene"
-importer_version=1
-type="PackedScene"
-uid="uid://ba7i8p8olef2s"
-path="res://.godot/imported/Cyber Jasper.glb-7156eb669feb8aeef67d143d15c0b7ad.scn"
-
-[deps]
-
-source_file="res://Models/Cyberamics/Cyber Jasper.glb"
-dest_files=["res://.godot/imported/Cyber Jasper.glb-7156eb669feb8aeef67d143d15c0b7ad.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/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/Scenes/GUI/EditorScreen.tscn b/Scenes/GUI/EditorScreen.tscn
index 3d97c93..9b1788a 100644
--- a/Scenes/GUI/EditorScreen.tscn
+++ b/Scenes/GUI/EditorScreen.tscn
@@ -1,11 +1,10 @@
-[gd_scene load_steps=27 format=3 uid="uid://oiehbor0dlqx"]
+[gd_scene load_steps=26 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"]
@@ -132,6 +131,33 @@ grow_horizontal = 2
grow_vertical = 2
color = Color(0.187176, 0.187176, 0.187176, 1)
+[node name="CameraPlaceholder" type="TextureRect" parent="."]
+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
+offset_bottom = 408.0
+grow_horizontal = 0
+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="Label" type="Label" parent="."]
layout_mode = 1
anchors_preset = -1
@@ -153,35 +179,6 @@ Open the Controls menu to see all of the keybinds."
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
@@ -199,13 +196,11 @@ offset_top = 4.0
offset_right = 260.0
offset_bottom = 36.0
selected = 0
-item_count = 3
-popup/item_0/text = "Balcony Stage"
+item_count = 2
+popup/item_0/text = "Helen House"
popup/item_0/id = 0
-popup/item_1/text = "Helen House"
+popup/item_1/text = "Chuck E's Corner"
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
@@ -246,13 +241,13 @@ anchor_left = 1.0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
-offset_left = -264.0
+offset_left = -232.0
offset_top = -16.0
-offset_right = -40.0
+offset_right = -8.0
offset_bottom = 16.0
grow_horizontal = 0
grow_vertical = 2
-text = "Pneumatic Plaything v0.6"
+text = "Pneumatic Plaything v0.5"
horizontal_alignment = 2
vertical_alignment = 1
@@ -265,18 +260,6 @@ offset_bottom = 36.0
text = "No showtape loaded."
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
@@ -736,7 +719,6 @@ 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."
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
index 9f1dbf9..522597a 100644
--- a/Scenes/Stages/ChuckEsCorner.tscn
+++ b/Scenes/Stages/ChuckEsCorner.tscn
@@ -71,12 +71,12 @@ spot_angle_attenuation = 0.15
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)
+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(0, 0.538333, 0.85, 1)
light_energy = 3.0
spot_range = 6.53799
-spot_angle = 33.4444
+spot_angle = 30.5982
spot_angle_attenuation = 0.1
[node name="Angle 1" type="Camera3D" parent="."]
diff --git a/Scripts/EditorScreen.gd b/Scripts/EditorScreen.gd
index f34bf79..1b58821 100644
--- a/Scripts/EditorScreen.gd
+++ b/Scripts/EditorScreen.gd
@@ -104,11 +104,11 @@ var stages_info = {
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" },
+ 56: { "bot": "Spots", "movement": "Warblettes", "flow_in": "None", "flow_out": "None" },
+ 71: { "bot": "Floods", "movement": "Red", "flow_in": "None", "flow_out": "None" },
+ 72: { "bot": "Floods", "movement": "Green", "flow_in": "None", "flow_out": "None" },
+ 73: { "bot": "Floods", "movement": "Blue", "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":
@@ -225,255 +225,6 @@ var stages_info = {
},
}
}
- },
- "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,
- },
- },
- }
}
}
@@ -483,24 +234,24 @@ 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):
+func reload_stage(stage_previously_loaded: bool) -> void:
+ if (stage_previously_loaded):
+ $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()
$SubViewport.get_child(0).queue_free()
- cam_index = 0
+ cam_index = 0
var stage = load(stages_info[current_stage]["scene"]).instantiate()
$SubViewport.add_child(stage)
@@ -539,8 +290,7 @@ func reload_stage() -> void:
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.name = bot + " " + movement
flow_control.in_value = in_flow
flow_control.out_value = out_flow
$FlyoutPanel/FlowControls/InvisibleMask/FlowHandle.add_child(flow_control)
@@ -552,7 +302,6 @@ func reload_stage() -> void:
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
@@ -562,8 +311,6 @@ func reload_stage() -> void:
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)
@@ -576,7 +323,7 @@ func reload_stage() -> void:
func _on_stage_change_overwrite_confirmation_dialog_confirmed() -> void:
erase_all.emit()
current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected)
- reload_stage()
+ reload_stage(true)
func update_time_label() -> void:
var frames = index % 60
@@ -603,13 +350,13 @@ func _ready() -> void:
$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()
+ reload_stage(false)
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()
+ reload_stage(true)
func _showtape_menu_button_pressed(id: int) -> void:
match (id):
@@ -874,9 +621,6 @@ func _on_step_forward_button_pressed() -> void:
update_time_label()
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()
@@ -895,19 +639,36 @@ func save_data() -> 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
+ temp_data[int(movement_row.name.split(" ")[0])] = 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 + ","
+ var frame_long_1 = 0
+ var frame_long_2 = 0
+ var frame_long_3 = 0
+ var frame_long_4 = 0
+ var frame_long_5 = 0
+ var frame_long_6 = 0
+ var frame_long_7 = 0
+ var frame_long_8 = 0
+ for j in temp_data:
+ if (index_get_safe(i, temp_data[j])):
+ if (j <= 32):
+ frame_long_1 += 1 << (j&64)-1
+ elif (j <= 64):
+ frame_long_2 += 1 << (j&64)-1
+ elif (j <= 96):
+ frame_long_3 += 1 << (j&64)-1
+ elif (j <= 128):
+ frame_long_4 += 1 << (j&64)-1
+ elif (j <= 160):
+ frame_long_5 += 1 << (j&64)-1
+ elif (j <= 192):
+ frame_long_6 += 1 << (j&64)-1
+ elif (j <= 224):
+ frame_long_7 += 1 << (j&64)-1
+ elif (j <= 256):
+ frame_long_8 += 1 << (j&64)-1
+ write_out += (("%08X%08X%08X%08X%08X%08X%08X%08X,") % [frame_long_8, frame_long_7, frame_long_6, frame_long_5, frame_long_4, frame_long_3, frame_long_2, frame_long_1])
return write_out
func plot_data(data: String):
@@ -917,17 +678,39 @@ func plot_data(data: String):
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()
+ var frame_long_8 = frame_string.substr(0, 8).hex_to_int()
+ var frame_long_7 = frame_string.substr(8, 8).hex_to_int()
+ var frame_long_6 = frame_string.substr(16, 8).hex_to_int()
+ var frame_long_5 = frame_string.substr(24, 8).hex_to_int()
+ var frame_long_4 = frame_string.substr(32, 8).hex_to_int()
+ var frame_long_3 = frame_string.substr(40, 8).hex_to_int()
+ var frame_long_2 = frame_string.substr(48, 8).hex_to_int()
+ var frame_long_1 = frame_string.substr(56, 8).hex_to_int()
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
+ var check_i = (i % 32) - 1
+ var check_frame_segment = frame_long_1
+ if (i <= 32):
+ check_frame_segment = frame_long_1
+ elif (i <= 64):
+ check_frame_segment = frame_long_2
+ elif (i <= 96):
+ check_frame_segment = frame_long_3
+ elif (i <= 128):
+ check_frame_segment = frame_long_4
+ elif (i <= 160):
+ check_frame_segment = frame_long_5
+ elif (i <= 192):
+ check_frame_segment = frame_long_6
+ elif (i <= 224):
+ check_frame_segment = frame_long_7
+ elif (i <= 256):
+ check_frame_segment = frame_long_8
+ if ((check_frame_segment & int(pow(2, check_i))) >> check_i == 1):
+ er = 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()
@@ -938,10 +721,3 @@ func index_get_safe(cindex: int, data: Array[bool]) -> bool:
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
diff --git a/Scripts/FlowControl.gd b/Scripts/FlowControl.gd
index 66de06e..a4c6fc7 100644
--- a/Scripts/FlowControl.gd
+++ b/Scripts/FlowControl.gd
@@ -2,13 +2,12 @@ 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/Label.text = self.name
$Panel/InStepper.value = self.in_value
$Panel/OutStepper.value = self.out_value
diff --git a/Scripts/MovementButton.gd b/Scripts/MovementButton.gd
index 2e7e1c5..31bd90b 100644
--- a/Scripts/MovementButton.gd
+++ b/Scripts/MovementButton.gd
@@ -4,8 +4,6 @@ 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
@@ -20,7 +18,7 @@ func _ready() -> void:
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)
+ var flow_control = get_node(flow_path + animatronic + " " + movement_name)
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
diff --git a/Scripts/MovementRow.gd b/Scripts/MovementRow.gd
index b02c8c3..60851b0 100644
--- a/Scripts/MovementRow.gd
+++ b/Scripts/MovementRow.gd
@@ -4,11 +4,9 @@ extends Panel
@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
@@ -56,12 +54,8 @@ func check_at_index(cindex: int) -> bool:
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 (recording && !$LockButton.button_pressed):
if (etching): set_at_current()
else: unset_at_current()
if (playing):
@@ -109,7 +103,7 @@ func _update_out_flow(new_value: float) -> void:
func _ready() -> void:
if (flow_path != "None"):
- var flow_control = get_node(flow_path + str(movement_bit) + animatronic + movement_name + current_stage)
+ var flow_control = get_node(flow_path + animatronic + " " + movement_name)
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
@@ -168,8 +162,8 @@ func _input(event: InputEvent) -> void:
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()
diff --git a/Stages.md b/Stages.md
index 8acdca4..12731bd 100644
--- a/Stages.md
+++ b/Stages.md
@@ -2,13 +2,7 @@
## Currently in game
- - Helen House (homemade stage)
- - Chuck E's Corner (homemade stage)
-
-## In Development
-
- - Balcony Stage
- - Prototype Road Stage
+ - Helen House (not a real stage)
## Planned
@@ -16,6 +10,7 @@
- Portrait Stage
- Shelf Stage (Portrait stage with Balcony mechs)
+ - Balcony Stage
- C Stage
- Rocker Stage
- Road Stage
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/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/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
index fc311ca..9886d6f 100644
Binary files a/UI/icon.png and b/UI/icon.png differ
diff --git a/UI/icon.png.import b/UI/icon.png.import
index 10cbd4d..1fbd3b0 100644
--- a/UI/icon.png.import
+++ b/UI/icon.png.import
@@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
-uid="uid://cnvfrr028730a"
+uid="uid://dkbo8r6il5rh7"
path="res://.godot/imported/icon.png-d44ad423496976af115f803f6386bc82.ctex"
metadata={
"vram_texture": false
diff --git a/UI/icon.svg b/UI/icon.svg
new file mode 100644
index 0000000..684d422
--- /dev/null
+++ b/UI/icon.svg
@@ -0,0 +1,336 @@
+
+
+
+
diff --git a/UI/PneumaticPlaything.icon/Assets/cylinder.svg.import b/UI/icon.svg.import
similarity index 70%
rename from UI/PneumaticPlaything.icon/Assets/cylinder.svg.import
rename to UI/icon.svg.import
index 5c56810..6fc4cc8 100644
--- a/UI/PneumaticPlaything.icon/Assets/cylinder.svg.import
+++ b/UI/icon.svg.import
@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
-uid="uid://1eluxvmnj7l7"
-path="res://.godot/imported/cylinder.svg-7c12310ad8fca6e1f959909a64d6d065.ctex"
+uid="uid://bm61nhm3rs043"
+path="res://.godot/imported/icon.svg-c9c2a32fd2d5f8bc98ecd887f02eeda7.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://UI/PneumaticPlaything.icon/Assets/cylinder.svg"
-dest_files=["res://.godot/imported/cylinder.svg-7c12310ad8fca6e1f959909a64d6d065.ctex"]
+source_file="res://UI/icon.svg"
+dest_files=["res://.godot/imported/icon.svg-c9c2a32fd2d5f8bc98ecd887f02eeda7.ctex"]
[params]
diff --git a/project.godot b/project.godot
index 4b8bb8c..b79e99f 100644
--- a/project.godot
+++ b/project.godot
@@ -11,23 +11,17 @@ config_version=5
[application]
config/name="Pneumatic Plaything"
-config/version="v0.6"
+config/version="v0.5"
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://bm61nhm3rs043"
[display]
window/size/viewport_width=1280
window/size/viewport_height=720
-[filesystem]
-
-import/blender/enabled=false
-
[input]
ui_accept={
@@ -398,5 +392,3 @@ fullscreen={
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