Compare commits

..

No commits in common. "main" and "v0.5.1" have entirely different histories.
main ... v0.5.1

51 changed files with 465 additions and 1571 deletions

Binary file not shown.

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 B

View file

@ -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

Binary file not shown.

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

View file

@ -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

Binary file not shown.

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -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

View file

@ -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="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="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://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://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://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://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://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://dhx2v2fd0egxd" path="res://UI/FastBackwards.png" id="4_wy7jo"]
@ -132,6 +131,33 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
color = Color(0.187176, 0.187176, 0.187176, 1) 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="."] [node name="Label" type="Label" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = -1 anchors_preset = -1
@ -153,35 +179,6 @@ Open the Controls menu to see all of the keybinds."
horizontal_alignment = 1 horizontal_alignment = 1
vertical_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="."] [node name="MenuBar" type="Panel" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = -1 anchors_preset = -1
@ -199,13 +196,11 @@ offset_top = 4.0
offset_right = 260.0 offset_right = 260.0
offset_bottom = 36.0 offset_bottom = 36.0
selected = 0 selected = 0
item_count = 3 item_count = 2
popup/item_0/text = "Balcony Stage" popup/item_0/text = "Helen House"
popup/item_0/id = 0 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_1/id = 1
popup/item_2/text = "Chuck E's Corner"
popup/item_2/id = 2
[node name="MenuButton" type="MenuButton" parent="MenuBar"] [node name="MenuButton" type="MenuButton" parent="MenuBar"]
layout_mode = 0 layout_mode = 0
@ -246,13 +241,13 @@ anchor_left = 1.0
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 0.5 anchor_bottom = 0.5
offset_left = -264.0 offset_left = -232.0
offset_top = -16.0 offset_top = -16.0
offset_right = -40.0 offset_right = -8.0
offset_bottom = 16.0 offset_bottom = 16.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 2 grow_vertical = 2
text = "Pneumatic Plaything v0.6" text = "Pneumatic Plaything v0.5.1"
horizontal_alignment = 2 horizontal_alignment = 2
vertical_alignment = 1 vertical_alignment = 1
@ -265,18 +260,6 @@ offset_bottom = 36.0
text = "No showtape loaded." text = "No showtape loaded."
vertical_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="."] [node name="SequencerPanel" type="Panel" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = -1 anchors_preset = -1
@ -736,7 +719,6 @@ Simulator Backend: Persephone
3-Stage Models: Persephone 3-Stage Models: Persephone
PTT Cybers Models: Persephone PTT Cybers Models: Persephone
Chuck E's Corner Stage: Luigigamin212 Chuck E's Corner Stage: Luigigamin212
Balcony Stage Model: ToastHQ
This project is not associated with CEC Entertainment LLC. This project is not associated with CEC Entertainment LLC.
or Creative Engineering Inc." or Creative Engineering Inc."

View file

@ -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

View file

@ -71,12 +71,12 @@ spot_angle_attenuation = 0.15
script = ExtResource("4_8suoo") script = ExtResource("4_8suoo")
[node name="Chuck" type="SpotLight3D" parent="Color Spots"] [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 visible = false
light_color = Color(0, 0.538333, 0.85, 1) light_color = Color(0, 0.538333, 0.85, 1)
light_energy = 3.0 light_energy = 3.0
spot_range = 6.53799 spot_range = 6.53799
spot_angle = 33.4444 spot_angle = 30.5982
spot_angle_attenuation = 0.1 spot_angle_attenuation = 0.1
[node name="Angle 1" type="Camera3D" parent="."] [node name="Angle 1" type="Camera3D" parent="."]

View file

@ -104,11 +104,11 @@ var stages_info = {
41: { "bot": "Warblettes", "movement": "Mouth", "flow_in": 4.0, "flow_out": 3.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 }, 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" }, 50: { "bot": "Spots", "movement": "Chuck", "flow_in": "None", "flow_out": "None" },
55: { "bot": "Floods", "movement": "Blue", "flow_in": "None", "flow_out": "None" }, 56: { "bot": "Spots", "movement": "Warblettes", "flow_in": "None", "flow_out": "None" },
78: { "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" }, 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": "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,7 +234,8 @@ signal end_recording()
signal return_to_zero() signal return_to_zero()
signal erase_all() signal erase_all()
func reload_stage() -> void: func reload_stage(stage_previously_loaded: bool) -> void:
if (stage_previously_loaded):
$SequencerPanel/TimelinePanel/VScrollBar.value = 0 $SequencerPanel/TimelinePanel/VScrollBar.value = 0
$FlyoutPanel/Movements/VScrollBar.value = 0 $FlyoutPanel/Movements/VScrollBar.value = 0
$FlyoutPanel/FlowControls/VScrollBar.value = 0 $FlyoutPanel/FlowControls/VScrollBar.value = 0
@ -498,7 +250,6 @@ func reload_stage() -> void:
camera.queue_free() camera.queue_free()
for cosmetic_adjustment in $FlyoutPanel/Cosmetics/InvisibleMask/CosmeticsHandle.get_children(): for cosmetic_adjustment in $FlyoutPanel/Cosmetics/InvisibleMask/CosmeticsHandle.get_children():
cosmetic_adjustment.queue_free() cosmetic_adjustment.queue_free()
if ($SubViewport.get_child_count() > 0):
$SubViewport.get_child(0).queue_free() $SubViewport.get_child(0).queue_free()
cam_index = 0 cam_index = 0
var stage = load(stages_info[current_stage]["scene"]).instantiate() var stage = load(stages_info[current_stage]["scene"]).instantiate()
@ -539,8 +290,7 @@ func reload_stage() -> void:
if (in_flow is not String): if (in_flow is not String):
var flow_control = load("res://Scenes/GUI/Controls/FlowControl.tscn").instantiate() var flow_control = load("res://Scenes/GUI/Controls/FlowControl.tscn").instantiate()
flow_control.position.y = flows_offset flow_control.position.y = flows_offset
flow_control.name = str(bit_number) + bot + movement + current_stage flow_control.name = bot + " " + movement
flow_control.vis_name = bot + " " + movement
flow_control.in_value = in_flow flow_control.in_value = in_flow
flow_control.out_value = out_flow flow_control.out_value = out_flow
$FlyoutPanel/FlowControls/InvisibleMask/FlowHandle.add_child(flow_control) $FlyoutPanel/FlowControls/InvisibleMask/FlowHandle.add_child(flow_control)
@ -552,7 +302,6 @@ func reload_stage() -> void:
row.position.y = rows_offset row.position.y = rows_offset
row.base_scene_path = "../../../../../" + stages_info[current_stage]["scene_ref_base"] row.base_scene_path = "../../../../../" + stages_info[current_stage]["scene_ref_base"]
row.animatronic = bot row.animatronic = bot
row.current_stage = current_stage
if (in_flow is String): row.flow_path = "None" if (in_flow is String): row.flow_path = "None"
row.movement_bit = bit_number row.movement_bit = bit_number
row.movement_name = movement row.movement_name = movement
@ -562,8 +311,6 @@ func reload_stage() -> void:
movement_button.position.y = rows_offset movement_button.position.y = rows_offset
movement_button.base_scene_path = "../../../../../" + stages_info[current_stage]["scene_ref_base"] movement_button.base_scene_path = "../../../../../" + stages_info[current_stage]["scene_ref_base"]
movement_button.animatronic = bot 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" if (in_flow is String): movement_button.flow_path = "None"
movement_button.movement_name = movement movement_button.movement_name = movement
$FlyoutPanel/Movements/InvisibleMask/MovementHandle.add_child(movement_button) $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: func _on_stage_change_overwrite_confirmation_dialog_confirmed() -> void:
erase_all.emit() erase_all.emit()
current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected)
reload_stage() reload_stage(true)
func update_time_label() -> void: func update_time_label() -> void:
var frames = index % 60 var frames = index % 60
@ -603,13 +350,13 @@ func _ready() -> void:
$MenuBar/MenuButton.get_popup().id_pressed.connect(_showtape_menu_button_pressed) $MenuBar/MenuButton.get_popup().id_pressed.connect(_showtape_menu_button_pressed)
OS.request_permissions() OS.request_permissions()
current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected)
reload_stage() reload_stage(false)
func _on_stage_selector_item_selected(_index: int) -> void: func _on_stage_selector_item_selected(_index: int) -> void:
if (showtape_loaded): $StageChangeOverwriteConfirmationDialog.show() if (showtape_loaded): $StageChangeOverwriteConfirmationDialog.show()
else: else:
current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected)
reload_stage() reload_stage(true)
func _showtape_menu_button_pressed(id: int) -> void: func _showtape_menu_button_pressed(id: int) -> void:
match (id): match (id):
@ -895,19 +642,36 @@ func save_data() -> String:
var temp_data = {} var temp_data = {}
var longest_channel = 0 var longest_channel = 0
for movement_row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children(): 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() if (movement_row.movements.size() > longest_channel): longest_channel = movement_row.movements.size()
for i in range(longest_channel+1): for i in range(longest_channel+1):
var total_frame_index = 1 var frame_long_1 = 0
var fstring = "" var frame_long_2 = 0
for j in range(64): var frame_long_3 = 0
var f_quartet = 0 var frame_long_4 = 0
for k in range(4): var frame_long_5 = 0
if (index_get_safe(i, index_s_get_safe(total_frame_index, temp_data))): var frame_long_6 = 0
f_quartet += int(pow(2, k)) var frame_long_7 = 0
total_frame_index += 1 var frame_long_8 = 0
fstring = ("%01X" % f_quartet) + fstring for j in temp_data:
write_out += fstring + "," if (index_get_safe(i, temp_data[j])):
if (j <= 32):
frame_long_1 += 1 << (j&32)-1
elif (j <= 64):
frame_long_2 += 1 << (j&32)-1
elif (j <= 96):
frame_long_3 += 1 << (j&32)-1
elif (j <= 128):
frame_long_4 += 1 << (j&32)-1
elif (j <= 160):
frame_long_5 += 1 << (j&32)-1
elif (j <= 192):
frame_long_6 += 1 << (j&32)-1
elif (j <= 224):
frame_long_7 += 1 << (j&32)-1
elif (j <= 256):
frame_long_8 += 1 << (j&32)-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 return write_out
func plot_data(data: String): func plot_data(data: String):
@ -917,11 +681,35 @@ func plot_data(data: String):
evil_glass.append(movement_row.movement_bit) evil_glass.append(movement_row.movement_bit)
for frame_string in data.split(","): for frame_string in data.split(","):
if (frame_string == ""): continue if (frame_string == ""): continue
var check_frame_split = frame_string.split() var frame_long_8 = frame_string.substr(0, 8).hex_to_int()
check_frame_split.reverse() 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"]: for i in stages_info[current_stage]["bit_mapping"]:
var er = false 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)))): 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 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)).forced_etchable = true
$SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_child(evil_glass.find(i)).etching = er $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_child(evil_glass.find(i)).etching = er
@ -938,10 +726,3 @@ func index_get_safe(cindex: int, data: Array[bool]) -> bool:
var out = data.get(cindex) var out = data.get(cindex)
if (out == null): return false if (out == null): return false
return out 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

View file

@ -2,13 +2,12 @@ extends Control
@export var in_value : float = 1.0 @export var in_value : float = 1.0
@export var out_value : float = 1.0 @export var out_value : float = 1.0
@export var vis_name : String = ""
signal in_value_updated(new_value: float) signal in_value_updated(new_value: float)
signal out_value_updated(new_value: float) signal out_value_updated(new_value: float)
func _ready() -> void: func _ready() -> void:
$Panel/Label.text = self.vis_name $Panel/Label.text = self.name
$Panel/InStepper.value = self.in_value $Panel/InStepper.value = self.in_value
$Panel/OutStepper.value = self.out_value $Panel/OutStepper.value = self.out_value

View file

@ -4,8 +4,6 @@ signal movement_in(movement, rate)
signal movement_out(movement, rate) signal movement_out(movement, rate)
@export var animatronic : String @export var animatronic : String
@export var movement_bit : int
@export var current_stage : String
@export var base_scene_path : String @export var base_scene_path : String
@export var flow_path : String = "../../../../../FlyoutPanel/FlowControls/InvisibleMask/FlowHandle/" @export var flow_path : String = "../../../../../FlyoutPanel/FlowControls/InvisibleMask/FlowHandle/"
@export var movement_name : String @export var movement_name : String
@ -20,7 +18,7 @@ func _ready() -> void:
movement_in.connect(animatronic_node._movement_in) movement_in.connect(animatronic_node._movement_in)
movement_out.connect(animatronic_node._movement_out) movement_out.connect(animatronic_node._movement_out)
if (flow_path != "None"): 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.in_value_updated.connect(self._update_in_flow)
flow_control.out_value_updated.connect(self._update_out_flow) flow_control.out_value_updated.connect(self._update_out_flow)
in_flow = flow_control.in_value in_flow = flow_control.in_value

View file

@ -4,7 +4,6 @@ extends Panel
@export var movement_name : String = "Name" @export var movement_name : String = "Name"
@export var flow_path : String = "../../../../../FlyoutPanel/FlowControls/InvisibleMask/FlowHandle/" @export var flow_path : String = "../../../../../FlyoutPanel/FlowControls/InvisibleMask/FlowHandle/"
@export var base_scene_path : String @export var base_scene_path : String
@export var current_stage : String
@export var animatronic : String @export var animatronic : String
@export var movements : Array[bool] @export var movements : Array[bool]
@export var etching: bool = false @export var etching: bool = false
@ -109,7 +108,7 @@ func _update_out_flow(new_value: float) -> void:
func _ready() -> void: func _ready() -> void:
if (flow_path != "None"): 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.in_value_updated.connect(self._update_in_flow)
flow_control.out_value_updated.connect(self._update_out_flow) flow_control.out_value_updated.connect(self._update_out_flow)
in_flow = flow_control.in_value in_flow = flow_control.in_value

View file

@ -2,13 +2,7 @@
## Currently in game ## Currently in game
- Helen House (homemade stage) - Helen House (not a real stage)
- Chuck E's Corner (homemade stage)
## In Development
- Balcony Stage
- Prototype Road Stage
## Planned ## Planned
@ -16,6 +10,7 @@
- Portrait Stage - Portrait Stage
- Shelf Stage (Portrait stage with Balcony mechs) - Shelf Stage (Portrait stage with Balcony mechs)
- Balcony Stage
- C Stage - C Stage
- Rocker Stage - Rocker Stage
- Road Stage - Road Stage

View file

@ -1,87 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="100mm"
height="100mm"
viewBox="0 0 100 100"
version="1.1"
id="svg1"
inkscape:version="1.4.2 (ebf0e940, 2025-05-08)"
sodipodi:docname="cylinder.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="true"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.4261574"
inkscape:cx="238.75345"
inkscape:cy="208.6025"
inkscape:window-width="1440"
inkscape:window-height="810"
inkscape:window-x="0"
inkscape:window-y="34"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#f2f2f2;stroke-width:0.264583"
id="rect1"
width="25"
height="50"
x="37.5"
y="40"
rx="12.5"
ry="12.5" />
<rect
style="fill:#f2f2f2;stroke-width:0.264583"
id="rect3"
width="10"
height="25"
x="35"
y="10"
rx="5"
ry="5" />
<rect
style="fill:#f2f2f2;stroke-width:0.264583"
id="rect4"
width="10"
height="25"
x="55"
y="10"
rx="5"
ry="5" />
<rect
style="fill:#f2f2f2;stroke-width:0.264583"
id="rect5"
width="30"
height="10"
x="35"
y="25"
rx="5"
ry="5" />
<rect
style="fill:#f2f2f2;stroke-width:0.264583"
id="rect6"
width="10"
height="20"
x="45"
y="30"
rx="5"
ry="5" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2 KiB

View file

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="100mm"
height="100mm"
viewBox="0 0 100 100"
version="1.1"
id="svg1"
inkscape:version="1.4.2 (ebf0e940, 2025-05-08)"
sodipodi:docname="green_lines.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.4261574"
inkscape:cx="205.79776"
inkscape:cy="188.26814"
inkscape:window-width="1440"
inkscape:window-height="810"
inkscape:window-x="0"
inkscape:window-y="34"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#00ff00;stroke-width:0.264583"
id="rect1"
width="80"
height="20"
x="10"
y="10"
rx="10"
ry="10" />
<rect
style="fill:#00ff00;stroke-width:0.264583"
id="rect2"
width="80"
height="20"
x="10"
y="70"
rx="10"
ry="10" />
<rect
style="fill:#00ff00;stroke-width:0.264583"
id="rect3"
width="80"
height="20"
x="10"
y="40"
rx="10"
ry="10" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -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

View file

@ -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"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 MiB

View file

@ -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

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8 MiB

After

Width:  |  Height:  |  Size: 43 KiB

Before After
Before After

View file

@ -2,7 +2,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cnvfrr028730a" uid="uid://dkbo8r6il5rh7"
path="res://.godot/imported/icon.png-d44ad423496976af115f803f6386bc82.ctex" path="res://.godot/imported/icon.png-d44ad423496976af115f803f6386bc82.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false

336
UI/icon.svg Normal file
View file

@ -0,0 +1,336 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="100mm"
height="100mm"
viewBox="0 0 100 100"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
sodipodi:docname="icon.svg"
inkscape:export-filename="icon.png"
inkscape:export-xdpi="130.048"
inkscape:export-ydpi="130.048"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="false"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.0555388"
inkscape:cx="152.05505"
inkscape:cy="293.21518"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs1"><linearGradient
id="linearGradient81"
inkscape:collect="always"><stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="0"
id="stop81" /><stop
style="stop-color:#00c000;stop-opacity:1;"
offset="1"
id="stop82" /></linearGradient><linearGradient
id="linearGradient72"
inkscape:collect="always"><stop
style="stop-color:#4d4d4d;stop-opacity:1;"
offset="0"
id="stop73" /><stop
style="stop-color:#303030;stop-opacity:1;"
offset="1"
id="stop74" /></linearGradient><linearGradient
id="linearGradient71"
inkscape:collect="always"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop71" /><stop
style="stop-color:#808080;stop-opacity:1;"
offset="1"
id="stop72" /></linearGradient><filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter15"
x="-0.03"
y="-0.03"
width="1.06"
height="1.0725"><feFlood
result="flood"
in="SourceGraphic"
flood-opacity="0.498039"
flood-color="rgb(0,0,0)"
id="feFlood14" /><feGaussianBlur
result="blur"
in="SourceGraphic"
stdDeviation="1.000000"
id="feGaussianBlur14" /><feOffset
result="offset"
in="blur"
dx="0.000000"
dy="1"
id="feOffset14" /><feComposite
result="comp1"
operator="in"
in="flood"
in2="offset"
id="feComposite14" /><feComposite
result="comp2"
operator="over"
in="SourceGraphic"
in2="comp1"
id="feComposite15" /></filter><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient71"
id="radialGradient72"
cx="60.190689"
cy="48.07777"
fx="60.190689"
fy="48.07777"
r="24.91572"
gradientTransform="matrix(1,0,0,1.8574985,0,-41.226617)"
gradientUnits="userSpaceOnUse"
spreadMethod="reflect" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient72"
id="radialGradient74"
cx="49.999996"
cy="52.499996"
fx="49.999996"
fy="52.499996"
r="42.399998"
gradientTransform="matrix(1,0,0,1.0589623,0,-3.0955189)"
gradientUnits="userSpaceOnUse"
spreadMethod="pad" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient81"
id="radialGradient82"
cx="50"
cy="52.5"
fx="50"
fy="52.5"
r="35"
gradientTransform="matrix(1,0,0,0.78571429,0,11.25)"
gradientUnits="userSpaceOnUse" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient81"
id="radialGradient1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.78571429,2.5,11.25)"
cx="50"
cy="52.5"
fx="50"
fy="52.5"
r="35" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient81"
id="radialGradient2"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.78571429,2.5,11.25)"
cx="50"
cy="52.5"
fx="50"
fy="52.5"
r="35" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient81"
id="radialGradient3"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.78571429,2.5,11.25)"
cx="50"
cy="52.5"
fx="50"
fy="52.5"
r="35" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient81"
id="radialGradient4"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.78571429,0,11.25)"
cx="50"
cy="52.5"
fx="50"
fy="52.5"
r="35" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient81"
id="radialGradient5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.78571429,2.5,11.25)"
cx="50"
cy="52.5"
fx="50"
fy="52.5"
r="35" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient81"
id="radialGradient6"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.78571429,2.5,11.25)"
cx="50"
cy="52.5"
fx="50"
fy="52.5"
r="35" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient81"
id="radialGradient7"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9375,0,0,0.78571429,2.8125,11.25)"
cx="50"
cy="52.5"
fx="50"
fy="52.5"
r="35" /><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient81"
id="radialGradient8"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.78571429,0,11.25)"
cx="50"
cy="52.5"
fx="50"
fy="52.5"
r="35" /></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><rect
style="fill:url(#radialGradient74);fill-opacity:1;stroke-width:0.264583;filter:url(#filter15)"
id="rect1"
width="80"
height="80"
x="10"
y="10"
rx="17"
ry="17" /><g
id="g80"
style="fill:url(#radialGradient82)"
transform="translate(0,-2.5)"><rect
style="fill:url(#radialGradient1);fill-opacity:1;stroke-width:0.264583"
id="rect74"
width="20"
height="10"
x="17.5"
y="25"
rx="5"
ry="5" /><rect
style="fill:url(#radialGradient2);fill-opacity:1;stroke-width:0.264583"
id="rect75"
width="20"
height="10"
x="42.5"
y="25"
rx="5"
ry="5" /><rect
style="fill:url(#radialGradient3);fill-opacity:1;stroke-width:0.324047"
id="rect76"
width="30"
height="10"
x="22.5"
y="40"
rx="5"
ry="5" /><rect
style="fill:url(#radialGradient4);fill-opacity:1;stroke-width:0.264583"
id="rect77"
width="20"
height="10"
x="60"
y="40"
rx="5"
ry="5" /><rect
style="fill:url(#radialGradient5);fill-opacity:1;stroke-width:0.264583"
id="rect78"
width="20"
height="10"
x="17.5"
y="55"
rx="5"
ry="5" /><rect
style="fill:url(#radialGradient6);fill-opacity:1;stroke-width:0.35001"
id="rect79"
width="35"
height="10"
x="42.5"
y="55"
rx="5"
ry="5" /><rect
style="fill:url(#radialGradient7);fill-opacity:1;stroke-width:0.362295"
id="rect80"
width="37.5"
height="10"
x="45"
y="70"
rx="4.6875"
ry="5" /><rect
style="fill:url(#radialGradient8);fill-opacity:1;stroke-width:0.187089"
id="rect81"
width="10"
height="10"
x="20"
y="70"
rx="5"
ry="5" /></g><g
id="g7"
style="fill:url(#radialGradient72);fill-opacity:1"><rect
style="fill:url(#radialGradient72);fill-opacity:1;stroke-width:0.264583"
id="rect2"
width="10"
height="80"
x="69.694618"
y="-11.538497"
rx="5"
ry="5"
transform="rotate(25.383575)" /><rect
style="fill:url(#radialGradient72);fill-opacity:1;stroke-width:0.187089"
id="rect3"
width="5"
height="10"
x="72.194618"
y="-16.538498"
transform="rotate(25.383575)" /><rect
style="fill:url(#radialGradient72);fill-opacity:1;stroke-width:0.264583"
id="rect4"
width="2.5"
height="15"
x="77.194618"
y="-31.5385"
rx="1.25"
ry="1.25"
transform="rotate(25.383575)" /><rect
style="fill:url(#radialGradient72);fill-opacity:1;stroke-width:0.264583"
id="rect5"
width="2.5"
height="15"
x="69.694618"
y="-31.5385"
rx="1.25"
ry="1.25"
transform="rotate(25.383575)" /><rect
style="fill:url(#radialGradient72);fill-opacity:1;stroke-width:0.216031"
id="rect6"
width="10"
height="2.5"
x="69.694618"
y="-19.038498"
rx="2.5"
ry="2.5"
transform="rotate(25.383575)" /><rect
style="fill:url(#radialGradient72);fill-opacity:1;stroke-width:0.187088"
id="rect7"
width="7.5"
height="2.5"
x="70.944618"
y="-19.038498"
transform="rotate(25.383575)" /></g></g></svg>

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://1eluxvmnj7l7" uid="uid://bm61nhm3rs043"
path="res://.godot/imported/cylinder.svg-7c12310ad8fca6e1f959909a64d6d065.ctex" path="res://.godot/imported/icon.svg-c9c2a32fd2d5f8bc98ecd887f02eeda7.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/PneumaticPlaything.icon/Assets/cylinder.svg" source_file="res://UI/icon.svg"
dest_files=["res://.godot/imported/cylinder.svg-7c12310ad8fca6e1f959909a64d6d065.ctex"] dest_files=["res://.godot/imported/icon.svg-c9c2a32fd2d5f8bc98ecd887f02eeda7.ctex"]
[params] [params]

View file

@ -11,23 +11,17 @@ config_version=5
[application] [application]
config/name="Pneumatic Plaything" config/name="Pneumatic Plaything"
config/version="v0.6" config/version="v0.5.1"
run/main_scene="uid://oiehbor0dlqx" run/main_scene="uid://oiehbor0dlqx"
config/features=PackedStringArray("4.4", "GL Compatibility") config/features=PackedStringArray("4.4", "GL Compatibility")
boot_splash/show_image=false boot_splash/show_image=false
config/icon="uid://cnvfrr028730a" config/icon="uid://bm61nhm3rs043"
config/macos_native_icon="res://UI/icon.icns"
config/windows_native_icon="res://UI/icon.ico"
[display] [display]
window/size/viewport_width=1280 window/size/viewport_width=1280
window/size/viewport_height=720 window/size/viewport_height=720
[filesystem]
import/blender/enabled=false
[input] [input]
ui_accept={ ui_accept={
@ -398,5 +392,3 @@ fullscreen={
renderer/rendering_method="gl_compatibility" renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility"
textures/vram_compression/import_etc2_astc=true textures/vram_compression/import_etc2_astc=true
limits/opengl/max_renderable_lights=128
limits/opengl/max_lights_per_object=128