this ones called "persephone forgets to commit"

rearrange some files
make menu much nicer
add modding support
remove GT files from repo
This commit is contained in:
Persephone Bubblegum-Holiday 2025-07-31 22:31:46 -07:00
parent e71a64c690
commit 72b8578ece
37 changed files with 906 additions and 268 deletions

1
.gitignore vendored
View file

@ -1,5 +1,4 @@
# Godot 4+ specific ignores # Godot 4+ specific ignores
.godot/ .godot/
/android/ /android/
/LoadedModContent/
export_presets.cfg export_presets.cfg

View file

@ -2,16 +2,16 @@
[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/EditorDark.tres" id="1_v0ton"] [ext_resource type="Theme" uid="uid://dbgs4id7y5d1c" path="res://UI/Themes/EditorDark.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/TransportControls/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/TransportControls/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/TransportControls/SkipBackwards.png" id="3_r4ytj"]
[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/TransportControls/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/TransportControls/FastBackwards.png" id="4_wy7jo"]
[ext_resource type="Texture2D" uid="uid://cttgtbu1xllwq" path="res://UI/Stop.png" id="8_20noo"] [ext_resource type="Texture2D" uid="uid://cttgtbu1xllwq" path="res://UI/TransportControls/Stop.png" id="8_20noo"]
[ext_resource type="Texture2D" uid="uid://dsr03w7r667fw" path="res://UI/FastForward.png" id="8_v0ton"] [ext_resource type="Texture2D" uid="uid://dsr03w7r667fw" path="res://UI/TransportControls/FastForward.png" id="8_v0ton"]
[ext_resource type="Texture2D" uid="uid://bphwtliq2ahus" path="res://UI/SkipForward.png" id="9_20noo"] [ext_resource type="Texture2D" uid="uid://bphwtliq2ahus" path="res://UI/TransportControls/SkipForward.png" id="9_20noo"]
[ext_resource type="Texture2D" uid="uid://ckg2ihy105ttj" path="res://UI/Record.png" id="10_wy7jo"] [ext_resource type="Texture2D" uid="uid://ckg2ihy105ttj" path="res://UI/TransportControls/Record.png" id="10_wy7jo"]
[ext_resource type="ButtonGroup" uid="uid://bij2tonqeslpt" path="res://Scenes/GUI/FlyoutButtonGroup.tres" id="13_wy7jo"] [ext_resource type="ButtonGroup" uid="uid://bij2tonqeslpt" path="res://Scenes/GUI/FlyoutButtonGroup.tres" id="13_wy7jo"]
[sub_resource type="ViewportTexture" id="ViewportTexture_g6u4d"] [sub_resource type="ViewportTexture" id="ViewportTexture_g6u4d"]
@ -141,6 +141,10 @@ dialog_text = "This showtape is not compatible with the currently selected stage
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
[node name="SubViewport" type="SubViewport" parent="."] [node name="SubViewport" type="SubViewport" parent="."]
msaa_3d = 1
screen_space_aa = 1
use_debanding = true
use_occlusion_culling = true
mesh_lod_threshold = 0.0 mesh_lod_threshold = 0.0
size = Vector2i(1280, 720) size = Vector2i(1280, 720)
@ -153,7 +157,7 @@ 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="Label" type="Label" parent="."] [node name="InstructionsLabel" type="Button" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = -1 anchors_preset = -1
anchor_right = 0.5 anchor_right = 0.5
@ -166,17 +170,18 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
text = "Welcome to the Pneumatic Plaything Editor! text = "Welcome to the Pneumatic Plaything Editor!
You can use the buttons on the top bar to change the You can use the menu button on the top bar to
stage, load a showtape, or exit to the menu. create a new Showtape, load an existing Showtape,
or exit to the menu.
The buttons on the side can be used to manually The buttons on the side can be used to manually
control aspects of the show, such as flows, the control aspects of the show, such as flows, the
camera, and cosmetics. camera, and cosmetics.
Open the Controls menu (under the Menu button) to see Controls can be viewed from the main menu
all of the keybinds."
horizontal_alignment = 1 Click on this message to dismiss it."
vertical_alignment = 1 flat = true
[node name="CameraPlaceholder" type="TextureRect" parent="."] [node name="CameraPlaceholder" type="TextureRect" parent="."]
layout_mode = 1 layout_mode = 1
@ -224,7 +229,7 @@ offset_top = 4.0
offset_right = 260.0 offset_right = 260.0
offset_bottom = 36.0 offset_bottom = 36.0
selected = 1 selected = 1
item_count = 15 item_count = 16
popup/item_0/text = "Official Stages" popup/item_0/text = "Official Stages"
popup/item_0/id = 0 popup/item_0/id = 0
popup/item_0/separator = true popup/item_0/separator = true
@ -238,32 +243,34 @@ popup/item_4/text = "3-Stage"
popup/item_4/id = 4 popup/item_4/id = 4
popup/item_5/text = "Prototype Road Stage" popup/item_5/text = "Prototype Road Stage"
popup/item_5/id = 5 popup/item_5/id = 5
popup/item_6/text = "2-Stage" popup/item_6/text = "Road Stage"
popup/item_6/id = 6 popup/item_6/id = 6
popup/item_7/text = "1-Stage" popup/item_7/text = "2-Stage"
popup/item_7/id = 7 popup/item_7/id = 7
popup/item_8/text = "Turntable 1-Stage" popup/item_8/text = "1-Stage"
popup/item_8/id = 8 popup/item_8/id = 8
popup/item_9/text = "Cyberamic 3-Stage" popup/item_9/text = "Turntable 1-Stage"
popup/item_9/id = 9 popup/item_9/id = 9
popup/item_10/text = "CU-1 Stage" popup/item_10/text = "Cyberamic 3-Stage"
popup/item_10/id = 10 popup/item_10/id = 10
popup/item_11/text = "Custom Stages" popup/item_11/text = "CU-1 Stage"
popup/item_11/id = 11 popup/item_11/id = 11
popup/item_11/separator = true popup/item_12/text = "Custom Stages"
popup/item_12/text = "Helen House"
popup/item_12/id = 12 popup/item_12/id = 12
popup/item_13/text = "Chuck E's Corner" popup/item_12/separator = true
popup/item_13/text = "Helen House"
popup/item_13/id = 13 popup/item_13/id = 13
popup/item_14/text = "Modded" popup/item_14/text = "Chuck E's Corner"
popup/item_14/id = 14 popup/item_14/id = 14
popup/item_14/separator = true popup/item_15/text = "Modded Stages"
popup/item_15/id = 15
popup/item_15/separator = true
[node name="EditingLabel" type="Label" parent="MenuBar"] [node name="EditingLabel" type="Label" parent="MenuBar"]
layout_mode = 0 layout_mode = 0
offset_left = 264.0 offset_left = 268.0
offset_top = 4.0 offset_top = 4.0
offset_right = 520.0 offset_right = 524.0
offset_bottom = 36.0 offset_bottom = 36.0
text = "No showtape loaded." text = "No showtape loaded."
vertical_alignment = 1 vertical_alignment = 1
@ -634,135 +641,6 @@ offset_bottom = 388.0
max_value = 0.0 max_value = 0.0
step = 1.0 step = 1.0
[node name="ControlsScreen" type="Control" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="InputEater" type="Button" parent="ControlsScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/focus = SubResource("StyleBoxEmpty_wy7jo")
theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_v0ton")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_20noo")
theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_mch36")
theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_fxi2g")
theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_bdf35")
theme_override_styles/hover = SubResource("StyleBoxEmpty_j2w5p")
theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_bv2rw")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_gx718")
theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_gu086")
theme_override_styles/normal = SubResource("StyleBoxEmpty_othvt")
[node name="DialogPanel" type="Panel" parent="ControlsScreen"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -256.0
offset_top = -192.0
offset_right = 256.0
offset_bottom = 192.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="ControlsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Fullscreen camera view: ESC
Fullscreen program: F11 or Alt+Enter
Play/Pause: Space
Play Reverse: Shift + Space
Fast Forward: Shift + Right Arrow
Fast Reverse: Shift + Left
Step Forward: Right Arrow
Step Backward: Left Arrow
Stop: Home
Change Camera Angle: Tab"
horizontal_alignment = 1
vertical_alignment = 1
[node name="CreditsScreen" type="Control" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="InputEater" type="Button" parent="CreditsScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/focus = SubResource("StyleBoxEmpty_wy7jo")
theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_v0ton")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_20noo")
theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_mch36")
theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_fxi2g")
theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_bdf35")
theme_override_styles/hover = SubResource("StyleBoxEmpty_j2w5p")
theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_bv2rw")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_gx718")
theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_gu086")
theme_override_styles/normal = SubResource("StyleBoxEmpty_othvt")
[node name="DialogPanel" type="Panel" parent="CreditsScreen"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -256.0
offset_top = -256.0
offset_right = 256.0
offset_bottom = 256.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="CreditsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Pneumatic Plaything Animatronic Simulator
Project Oversight: Persephone (KawaiiZenbo)
Interface Design: Persephone
Simulator Backend: Persephone
3-Stage Bot Models: Persephone
Cyberamic Bot Models: Persephone
C-Stage Model: Persephone
Iris Textures: Avery
Chuck E's Corner Stage: Luigigamin212
Balcony Stage Model: ToastHQ
This project is not associated with CEC Entertainment LLC.
or Creative Engineering Inc."
horizontal_alignment = 1
vertical_alignment = 1
[node name="ShowtapeNewScreen" type="Control" parent="."] [node name="ShowtapeNewScreen" type="Control" parent="."]
visible = false visible = false
layout_mode = 1 layout_mode = 1
@ -1121,6 +999,7 @@ expand_mode = 2
[connection signal="confirmed" from="StageChangeOverwriteConfirmationDialog" to="." method="_on_stage_change_overwrite_confirmation_dialog_confirmed"] [connection signal="confirmed" from="StageChangeOverwriteConfirmationDialog" to="." method="_on_stage_change_overwrite_confirmation_dialog_confirmed"]
[connection signal="confirmed" from="ExitMenuOverwriteConfirmationDialog" to="." method="_on_exit_menu_overwrite_confirmation_dialog_confirmed"] [connection signal="confirmed" from="ExitMenuOverwriteConfirmationDialog" to="." method="_on_exit_menu_overwrite_confirmation_dialog_confirmed"]
[connection signal="confirmed" from="ExitDesktopOverwriteConfirmationDialog" to="." method="_on_exit_desktop_overwrite_confirmation_dialog_2_confirmed"] [connection signal="confirmed" from="ExitDesktopOverwriteConfirmationDialog" to="." method="_on_exit_desktop_overwrite_confirmation_dialog_2_confirmed"]
[connection signal="pressed" from="InstructionsLabel" to="." method="_on_instructions_label_pressed"]
[connection signal="item_selected" from="MenuBar/StageSelector" to="." method="_on_stage_selector_item_selected"] [connection signal="item_selected" from="MenuBar/StageSelector" to="." method="_on_stage_selector_item_selected"]
[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/StepBackwardsButton" to="." method="_on_step_backwards_button_pressed"] [connection signal="pressed" from="SequencerPanel/TransportControls/Centered/StepBackwardsButton" to="." method="_on_step_backwards_button_pressed"]
[connection signal="pressed" from="SequencerPanel/TransportControls/Centered/FastBackwardsButton" to="." method="_on_fast_backwards_button_pressed"] [connection signal="pressed" from="SequencerPanel/TransportControls/Centered/FastBackwardsButton" to="." method="_on_fast_backwards_button_pressed"]
@ -1139,8 +1018,6 @@ expand_mode = 2
[connection signal="value_changed" from="FlyoutPanel/Movements/VScrollBar" to="." method="_on_movement_v_scroll_bar_value_changed"] [connection signal="value_changed" from="FlyoutPanel/Movements/VScrollBar" to="." method="_on_movement_v_scroll_bar_value_changed"]
[connection signal="value_changed" from="FlyoutPanel/FlowControls/VScrollBar" to="." method="_on_flow_v_scroll_bar_value_changed"] [connection signal="value_changed" from="FlyoutPanel/FlowControls/VScrollBar" to="." method="_on_flow_v_scroll_bar_value_changed"]
[connection signal="value_changed" from="FlyoutPanel/Cosmetics/VScrollBar" to="." method="_on_cosmetics_v_scroll_bar_value_changed"] [connection signal="value_changed" from="FlyoutPanel/Cosmetics/VScrollBar" to="." method="_on_cosmetics_v_scroll_bar_value_changed"]
[connection signal="pressed" from="ControlsScreen/InputEater" to="." method="_on_input_eater_pressed"]
[connection signal="pressed" from="CreditsScreen/InputEater" to="." method="_on_input_eater_pressed"]
[connection signal="pressed" from="ShowtapeNewScreen/InputEater" to="." method="_on_input_eater_pressed"] [connection signal="pressed" from="ShowtapeNewScreen/InputEater" to="." method="_on_input_eater_pressed"]
[connection signal="pressed" from="ShowtapeNewScreen/DialogPanel/AudioBrowseButton" to="." method="_on_showtape_new_audio_browse_button_pressed"] [connection signal="pressed" from="ShowtapeNewScreen/DialogPanel/AudioBrowseButton" to="." method="_on_showtape_new_audio_browse_button_pressed"]
[connection signal="pressed" from="ShowtapeNewScreen/DialogPanel/CancelButton" to="." method="_on_showtape_new_cancel_button_pressed"] [connection signal="pressed" from="ShowtapeNewScreen/DialogPanel/CancelButton" to="." method="_on_showtape_new_cancel_button_pressed"]

View file

@ -1,30 +1,578 @@
[gd_scene load_steps=3 format=3 uid="uid://1ikkb4b8mw1w"] [gd_scene load_steps=19 format=3 uid="uid://1ikkb4b8mw1w"]
[ext_resource type="Theme" uid="uid://dbgs4id7y5d1c" path="res://UI/Themes/EditorDark.tres" id="1_dkd36"]
[ext_resource type="Script" uid="uid://b5nh5td5bdsfd" path="res://Scripts/MainMenu.gd" id="1_ocgay"] [ext_resource type="Script" uid="uid://b5nh5td5bdsfd" path="res://Scripts/MainMenu.gd" id="1_ocgay"]
[ext_resource type="Texture2D" uid="uid://dbh0vh85wks2l" path="res://UI/logo.png" id="2_6d82g"]
[ext_resource type="Texture2D" uid="uid://6mf6wucl3y6k" path="res://UI/MenuBG/BalconyBG.png" id="2_j6v32"]
[ext_resource type="Texture2D" uid="uid://dr6ir8mgbjrs7" path="res://UI/MenuBG/CStageBG.png" id="3_vaoig"]
[ext_resource type="Texture2D" uid="uid://dyyyg85g3jwip" path="res://UI/MenuBG/ProtoRoadBG.png" id="4_dkd36"]
[sub_resource type="LabelSettings" id="LabelSettings_6d82g"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dkd36"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ha2rd"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wdeli"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wyv1s"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_drn21"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_pcbci"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_he4sq"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rsjs4"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rj3vb"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_pocyv"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8uhic"]
[sub_resource type="LabelSettings" id="LabelSettings_dkd36"]
font_size = 48 font_size = 48
[node name="MainMenu" type="Control"] [node name="MainMenu" type="Control"]
layout_mode = 3 layout_mode = 3
anchors_preset = 0 anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("1_dkd36")
script = ExtResource("1_ocgay") script = ExtResource("1_ocgay")
[node name="Label" type="Label" parent="."] [node name="PleaseRestart" type="AcceptDialog" parent="."]
layout_mode = 0 auto_translate_mode = 1
offset_left = 103.0 initial_position = 2
offset_top = 100.0 dialog_text = "Please restart the game for any changes to apply."
offset_right = 580.0
offset_bottom = 167.0
text = "Pneumatic Plaything"
label_settings = SubResource("LabelSettings_6d82g")
[node name="Button" type="Button" parent="."] [node name="Backgrounds" type="Control" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="BalconyBG" type="TextureRect" parent="Backgrounds"]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_j6v32")
expand_mode = 1
[node name="CStageBG" type="TextureRect" parent="Backgrounds"]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_vaoig")
expand_mode = 1
[node name="ProtoRoadBG" type="TextureRect" parent="Backgrounds"]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("4_dkd36")
expand_mode = 1
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 0 layout_mode = 0
offset_left = 303.0 offset_left = 64.0
offset_top = 349.0 offset_top = 64.0
offset_right = 579.0 offset_right = 576.0
offset_bottom = 506.0 offset_bottom = 160.0
texture = ExtResource("2_6d82g")
[node name="Buttons" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 60.0
offset_top = -380.0
offset_right = 324.0
offset_bottom = -64.0
grow_vertical = 0
[node name="EditorButton" type="Button" parent="Buttons"]
layout_mode = 0
offset_left = 4.0
offset_top = 4.0
offset_right = 260.0
offset_bottom = 52.0
text = "Editor" text = "Editor"
[connection signal="pressed" from="Button" to="." method="_on_button_pressed"] [node name="FreeRoamButton" type="Button" parent="Buttons"]
layout_mode = 0
offset_left = 4.0
offset_top = 56.0
offset_right = 260.0
offset_bottom = 104.0
text = "Free Roam
"
[node name="ModsButton" type="Button" parent="Buttons"]
layout_mode = 0
offset_left = 4.0
offset_top = 108.0
offset_right = 260.0
offset_bottom = 156.0
text = "Manage Mods"
[node name="ControlsButton" type="Button" parent="Buttons"]
layout_mode = 0
offset_left = 4.0
offset_top = 160.0
offset_right = 260.0
offset_bottom = 208.0
text = "Controls"
[node name="CreditsButton" type="Button" parent="Buttons"]
layout_mode = 0
offset_left = 4.0
offset_top = 212.0
offset_right = 260.0
offset_bottom = 260.0
text = "Credits"
[node name="ExitButton" type="Button" parent="Buttons"]
layout_mode = 0
offset_left = 4.0
offset_top = 264.0
offset_right = 260.0
offset_bottom = 312.0
text = "Exit to Desktop"
[node name="FreeRoamChooseScreen" type="Control" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="FreeRoamChooseScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.121569, 0.121569, 0.121569, 0.501961)
[node name="InputEater" type="Button" parent="FreeRoamChooseScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/focus = SubResource("StyleBoxEmpty_dkd36")
theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_ha2rd")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_wdeli")
theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_wyv1s")
theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_drn21")
theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_pcbci")
theme_override_styles/hover = SubResource("StyleBoxEmpty_he4sq")
theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_rsjs4")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_rj3vb")
theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_pocyv")
theme_override_styles/normal = SubResource("StyleBoxEmpty_8uhic")
[node name="DialogPanel" type="Panel" parent="FreeRoamChooseScreen"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 64.0
offset_right = -64.0
offset_bottom = -64.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="FreeRoamChooseScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
offset_left = 8.0
offset_top = 8.0
offset_right = -8.0
offset_bottom = 112.0
grow_horizontal = 2
text = "Free Roam"
label_settings = SubResource("LabelSettings_dkd36")
horizontal_alignment = 1
vertical_alignment = 1
[node name="ModsScreen" type="Control" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="ModsScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.121569, 0.121569, 0.121569, 0.501961)
[node name="InputEater" type="Button" parent="ModsScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/focus = SubResource("StyleBoxEmpty_dkd36")
theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_ha2rd")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_wdeli")
theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_wyv1s")
theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_drn21")
theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_pcbci")
theme_override_styles/hover = SubResource("StyleBoxEmpty_he4sq")
theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_rsjs4")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_rj3vb")
theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_pocyv")
theme_override_styles/normal = SubResource("StyleBoxEmpty_8uhic")
[node name="DialogPanel" type="Panel" parent="ModsScreen"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 64.0
offset_right = -64.0
offset_bottom = -64.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="ModsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
offset_left = 8.0
offset_top = 8.0
offset_right = -8.0
offset_bottom = 112.0
grow_horizontal = 2
text = "Mods"
label_settings = SubResource("LabelSettings_dkd36")
horizontal_alignment = 1
vertical_alignment = 1
[node name="ModList" type="ItemList" parent="ModsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
anchor_bottom = 0.5
offset_left = 8.0
offset_top = 128.0
offset_right = -8.0
grow_horizontal = 2
grow_vertical = 2
[node name="ModNameText" type="Label" parent="ModsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 8.0
offset_top = 8.0
offset_bottom = 40.0
text = "Select a mod to view its information"
vertical_alignment = 1
clip_text = true
text_overrun_behavior = 3
[node name="ModAuthorText" type="Label" parent="ModsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_left = 8.0
offset_top = 8.0
offset_right = -8.0
offset_bottom = 40.0
vertical_alignment = 1
clip_text = true
text_overrun_behavior = 3
[node name="ModVersionText" type="Label" parent="ModsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_right = 0.25
anchor_bottom = 1.0
offset_left = 8.0
offset_top = -40.0
offset_bottom = -8.0
vertical_alignment = 1
clip_text = true
text_overrun_behavior = 3
[node name="ModDescriptionText" type="Label" parent="ModsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 8.0
offset_top = 48.0
offset_right = -8.0
offset_bottom = -48.0
grow_horizontal = 2
grow_vertical = 2
autowrap_mode = 2
clip_text = true
text_overrun_behavior = 3
[node name="OpenFolderButton" type="Button" parent="ModsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -264.0
offset_top = -40.0
offset_right = -8.0
offset_bottom = -8.0
grow_horizontal = 0
grow_vertical = 0
text = "Open Mods Folder"
[node name="ControlsScreen" type="Control" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="ControlsScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.121569, 0.121569, 0.121569, 0.501961)
[node name="InputEater" type="Button" parent="ControlsScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/focus = SubResource("StyleBoxEmpty_dkd36")
theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_ha2rd")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_wdeli")
theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_wyv1s")
theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_drn21")
theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_pcbci")
theme_override_styles/hover = SubResource("StyleBoxEmpty_he4sq")
theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_rsjs4")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_rj3vb")
theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_pocyv")
theme_override_styles/normal = SubResource("StyleBoxEmpty_8uhic")
[node name="DialogPanel" type="Panel" parent="ControlsScreen"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 64.0
offset_right = -64.0
offset_bottom = -64.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="ControlsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
offset_left = 8.0
offset_top = 8.0
offset_right = -8.0
offset_bottom = 112.0
grow_horizontal = 2
text = "Controls"
label_settings = SubResource("LabelSettings_dkd36")
horizontal_alignment = 1
vertical_alignment = 1
[node name="EditorLabel" type="Label" parent="ControlsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = 8.0
offset_top = 128.0
offset_bottom = -8.0
grow_horizontal = 2
grow_vertical = 2
text = "Global:
Fullscreen: F11 or Alt+Enter
In Editor:
Fullscreen camera view: ESC
Play/Pause: Space
Play Reverse: Shift + Space
Fast Forward: Shift + Right Arrow
Fast Reverse: Shift + Left
Step Forward: Right Arrow
Step Backward: Left Arrow
Stop: Home
Change Camera Angle: Tab"
[node name="FreeRoamLabel" type="Label" parent="ControlsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 128.0
offset_right = -8.0
offset_bottom = -8.0
grow_horizontal = 2
grow_vertical = 2
text = "
In Free Roam:
Move: W, A, S, D
Jump: Space
Open Menu: ESC"
[node name="CreditsScreen" type="Control" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="CreditsScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.121569, 0.121569, 0.121569, 0.501961)
[node name="InputEater" type="Button" parent="CreditsScreen"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/focus = SubResource("StyleBoxEmpty_dkd36")
theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_ha2rd")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_wdeli")
theme_override_styles/hover_pressed_mirrored = SubResource("StyleBoxEmpty_wyv1s")
theme_override_styles/hover_pressed = SubResource("StyleBoxEmpty_drn21")
theme_override_styles/hover_mirrored = SubResource("StyleBoxEmpty_pcbci")
theme_override_styles/hover = SubResource("StyleBoxEmpty_he4sq")
theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_rsjs4")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_rj3vb")
theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_pocyv")
theme_override_styles/normal = SubResource("StyleBoxEmpty_8uhic")
[node name="DialogPanel" type="Panel" parent="CreditsScreen"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 64.0
offset_right = -64.0
offset_bottom = -64.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="CreditsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
offset_left = 8.0
offset_top = 8.0
offset_right = -8.0
offset_bottom = 112.0
grow_horizontal = 2
text = "Credits"
label_settings = SubResource("LabelSettings_dkd36")
horizontal_alignment = 1
vertical_alignment = 1
[node name="CreditsLabel" type="Label" parent="CreditsScreen/DialogPanel"]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 8.0
offset_top = 128.0
offset_right = -8.0
offset_bottom = -8.0
grow_horizontal = 2
grow_vertical = 2
text = "Pneumatic Plaything Animatronic Simulator
Project Oversight: Persephone (KawaiiZenbo)
Interface Design: Persephone
Simulator Backend: Persephone
3-Stage Bot Models: Persephone
Cyberamic Bot Models: Persephone
C-Stage Model: Persephone
Cyberamic Iris Textures: Avery
Chuck E's Corner Stage: Luigigamin212
Balcony Stage Model: ToastHQ
This project is not associated with CEC Entertainment LLC.
or Creative Engineering Inc."
horizontal_alignment = 1
[connection signal="pressed" from="Buttons/EditorButton" to="." method="_on_button_pressed"]
[connection signal="pressed" from="Buttons/FreeRoamButton" to="." method="_on_free_roam_button_pressed"]
[connection signal="pressed" from="Buttons/ModsButton" to="." method="_on_mods_button_pressed"]
[connection signal="pressed" from="Buttons/ControlsButton" to="." method="_on_controls_button_pressed"]
[connection signal="pressed" from="Buttons/CreditsButton" to="." method="_on_credits_button_pressed"]
[connection signal="pressed" from="Buttons/ExitButton" to="." method="_on_exit_button_pressed"]
[connection signal="pressed" from="FreeRoamChooseScreen/InputEater" to="." method="_on_input_eater_pressed"]
[connection signal="pressed" from="ModsScreen/InputEater" to="." method="_on_input_eater_pressed"]
[connection signal="item_selected" from="ModsScreen/DialogPanel/ModList" to="." method="_on_mod_list_item_selected"]
[connection signal="pressed" from="ModsScreen/DialogPanel/OpenFolderButton" to="." method="_on_open_folder_button_pressed"]
[connection signal="pressed" from="ControlsScreen/InputEater" to="." method="_on_input_eater_pressed"]
[connection signal="pressed" from="CreditsScreen/InputEater" to="." method="_on_input_eater_pressed"]

View file

@ -374,3 +374,14 @@ var Cyber3Stage = {
], ],
"cosmetic_defaults": [ 4, 4, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 3 ] "cosmetic_defaults": [ 4, 4, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 3 ]
} }
var stages_info = {
"Helen House": HelenHouse,
"Chuck E's Corner": ChuckEsCorner,
"Balcony Stage": BalconyStage,
"C-Stage": CStage,
"Prototype Road Stage": ProtoRoadStage,
"Cyberamic 3-Stage": Cyber3Stage,
}
var loaded_mods = { }

View file

@ -7,22 +7,12 @@ var playback_rate : int = 1
var transport_enabled : bool = false var transport_enabled : bool = false
var erase_validated : bool = false var erase_validated : bool = false
var cam_index : int = 0 var cam_index : int = 0
var fullscreen : bool = false
var showtape_loaded : bool = false var showtape_loaded : bool = false
var show_name : String var show_name : String
var current_stage : String var current_stage : String
var stages_info = {
"Helen House": Stages.HelenHouse,
"Chuck E's Corner": Stages.ChuckEsCorner,
"Balcony Stage": Stages.BalconyStage,
"C-Stage": Stages.CStage,
"Prototype Road Stage": Stages.ProtoRoadStage,
"Cyberamic 3-Stage": Stages.Cyber3Stage,
}
signal step(amount: int) signal step(amount: int)
signal start_recording() signal start_recording()
signal end_recording() signal end_recording()
@ -47,14 +37,14 @@ func reload_stage() -> void:
if ($SubViewport.get_child_count() > 0): 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.stages_info[current_stage]["scene"]).instantiate()
$SubViewport.add_child(stage) $SubViewport.add_child(stage)
var cam_offset = 4 var cam_offset = 4
for i in range(1, stages_info[current_stage]["camera_count"]+1): for i in range(1, Stages.stages_info[current_stage]["camera_count"]+1):
var camera_button = load("res://Scenes/GUI/Controls/CameraButton.tscn").instantiate() var camera_button = load("res://Scenes/GUI/Controls/CameraButton.tscn").instantiate()
camera_button.camera = "Angle " + str(i) camera_button.camera = "Angle " + str(i)
camera_button.base_scene_path = "../../../" + stages_info[current_stage]["scene_ref_base"] camera_button.base_scene_path = "../../../" + Stages.stages_info[current_stage]["scene_ref_base"]
camera_button.position.y = cam_offset camera_button.position.y = cam_offset
cam_offset += 36 cam_offset += 36
$FlyoutPanel/Camera.add_child(camera_button) $FlyoutPanel/Camera.add_child(camera_button)
@ -62,13 +52,13 @@ func reload_stage() -> void:
var cosmetics_offset = 0 var cosmetics_offset = 0
var cosmetics_count = 0 var cosmetics_count = 0
for cosmetic_subtable in stages_info[current_stage]["cosmetics"]: for cosmetic_subtable in Stages.stages_info[current_stage]["cosmetics"]:
for cosmetic in cosmetic_subtable: for cosmetic in cosmetic_subtable:
var cosmetic_adjustment = load("res://Scenes/GUI/Controls/CosmeticAdjustment.tscn").instantiate() var cosmetic_adjustment = load("res://Scenes/GUI/Controls/CosmeticAdjustment.tscn").instantiate()
cosmetic_adjustment.vis_name = cosmetic cosmetic_adjustment.vis_name = cosmetic
cosmetic_adjustment.options = cosmetic_subtable[cosmetic] cosmetic_adjustment.options = cosmetic_subtable[cosmetic]
cosmetic_adjustment.scene_handle = "../../../../../" + stages_info[current_stage]["scene_ref_base"] cosmetic_adjustment.scene_handle = "../../../../../" + Stages.stages_info[current_stage]["scene_ref_base"]
cosmetic_adjustment.drop_index = stages_info[current_stage]["cosmetic_defaults"][cosmetics_count] cosmetic_adjustment.drop_index = Stages.stages_info[current_stage]["cosmetic_defaults"][cosmetics_count]
cosmetic_adjustment.position.y = cosmetics_offset cosmetic_adjustment.position.y = cosmetics_offset
cosmetics_offset += 44 cosmetics_offset += 44
cosmetics_count += 1 cosmetics_count += 1
@ -78,12 +68,12 @@ func reload_stage() -> void:
var rows_offset = 0 var rows_offset = 0
var flows_offset = 0 var flows_offset = 0
var flow_count = 0 var flow_count = 0
for bit_number in stages_info[current_stage]["bit_mapping"]: for bit_number in Stages.stages_info[current_stage]["bit_mapping"]:
var bot = stages_info[current_stage]["bit_mapping"][bit_number]["bot"] var bot = Stages.stages_info[current_stage]["bit_mapping"][bit_number]["bot"]
var movement = stages_info[current_stage]["bit_mapping"][bit_number]["movement"] var movement = Stages.stages_info[current_stage]["bit_mapping"][bit_number]["movement"]
var in_flow = stages_info[current_stage]["bit_mapping"][bit_number]["flow_in"] var in_flow = Stages.stages_info[current_stage]["bit_mapping"][bit_number]["flow_in"]
var out_flow = stages_info[current_stage]["bit_mapping"][bit_number]["flow_out"] var out_flow = Stages.stages_info[current_stage]["bit_mapping"][bit_number]["flow_out"]
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
@ -98,7 +88,7 @@ func reload_stage() -> void:
var row = load("res://Scenes/GUI/Controls/MovementRow.tscn").instantiate() var row = load("res://Scenes/GUI/Controls/MovementRow.tscn").instantiate()
row.name = str(bit_number) + " Bit" row.name = str(bit_number) + " Bit"
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.stages_info[current_stage]["scene_ref_base"]
row.animatronic = bot row.animatronic = bot
row.current_stage = current_stage row.current_stage = current_stage
if (in_flow is String): row.flow_path = "None" if (in_flow is String): row.flow_path = "None"
@ -108,7 +98,7 @@ func reload_stage() -> void:
var movement_button = load("res://Scenes/GUI/Controls/MovementButton.tscn").instantiate() var movement_button = load("res://Scenes/GUI/Controls/MovementButton.tscn").instantiate()
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.stages_info[current_stage]["scene_ref_base"]
movement_button.animatronic = bot movement_button.animatronic = bot
movement_button.movement_bit = bit_number movement_button.movement_bit = bit_number
movement_button.current_stage = current_stage movement_button.current_stage = current_stage
@ -116,8 +106,8 @@ func reload_stage() -> void:
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)
rows_offset += 44 rows_offset += 44
$SequencerPanel/TimelinePanel/VScrollBar.max_value = stages_info[current_stage]["bits"] - 1 $SequencerPanel/TimelinePanel/VScrollBar.max_value = Stages.stages_info[current_stage]["bits"] - 1
$FlyoutPanel/Movements/VScrollBar.max_value = stages_info[current_stage]["bits"] - 1 $FlyoutPanel/Movements/VScrollBar.max_value = Stages.stages_info[current_stage]["bits"] - 1
$FlyoutPanel/FlowControls/VScrollBar.max_value = flow_count - 1 $FlyoutPanel/FlowControls/VScrollBar.max_value = flow_count - 1
$CameraPreview.visible = true $CameraPreview.visible = true
@ -149,7 +139,9 @@ func _ready() -> void:
get_tree().get_root().size_changed.connect(_on_size_changed) get_tree().get_root().size_changed.connect(_on_size_changed)
erase_all.connect(_erase_all) erase_all.connect(_erase_all)
$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() for mod in Stages.loaded_mods:
for moddedStage in Stages.loaded_mods[mod]["implements_stages"]:
$MenuBar/StageSelector.add_item(moddedStage)
current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected)
reload_stage() reload_stage()
@ -232,8 +224,8 @@ func _on_showtape_load_open_button_pressed() -> void:
$IncorrectShowtapeDialog.dialog_text = "This showtape is not the correct version!" $IncorrectShowtapeDialog.dialog_text = "This showtape is not the correct version!"
$IncorrectShowtapeDialog.show() $IncorrectShowtapeDialog.show()
return return
if (header[3] != stages_info[current_stage]["ust_type"]): if (header[3] != Stages.stages_info[current_stage]["ust_type"]):
$IncorrectShowtapeDialog.dialog_text = "This showtape is not compatible with the currently selected stage.\nShowtape stage type: %s\n Current stage type: %s" % [ header[3], stages_info[current_stage]["ust_type"] ] $IncorrectShowtapeDialog.dialog_text = "This showtape is not compatible with the currently selected stage.\nShowtape stage type: %s\n Current stage type: %s" % [ header[3], Stages.stages_info[current_stage]["ust_type"] ]
$IncorrectShowtapeDialog.show() $IncorrectShowtapeDialog.show()
return return
show_name = header[2] show_name = header[2]
@ -257,7 +249,7 @@ func _on_showtape_save_create_button_pressed() -> void:
if ($ShowtapeSaveScreen/DialogPanel/OutFilePath.text == ""): if ($ShowtapeSaveScreen/DialogPanel/OutFilePath.text == ""):
$NoFileSpecified.show() $NoFileSpecified.show()
return return
var header = "UST,2,"+show_name.replace(",", "_").replace(";", "_")+","+stages_info[current_stage]["ust_type"]+";" var header = "UST,2,"+show_name.replace(",", "_").replace(";", "_")+","+Stages.stages_info[current_stage]["ust_type"]+";"
var data_out_string = save_data() var data_out_string = save_data()
var file = FileAccess.open($ShowtapeSaveScreen/DialogPanel/OutFilePath.text, FileAccess.WRITE) var file = FileAccess.open($ShowtapeSaveScreen/DialogPanel/OutFilePath.text, FileAccess.WRITE)
file.store_string(header+data_out_string+";"+Marshalls.raw_to_base64($AudioStreamPlayer.stream.data)) file.store_string(header+data_out_string+";"+Marshalls.raw_to_base64($AudioStreamPlayer.stream.data))
@ -273,34 +265,32 @@ func _on_save_showtape_file_dialog_file_selected(path: String) -> void:
$ShowtapeSaveScreen/DialogPanel/OutFilePath.text = path $ShowtapeSaveScreen/DialogPanel/OutFilePath.text = path
func _input(event: InputEvent) -> void: func _input(event: InputEvent) -> void:
if event.is_action_pressed("toggle_editor_screen"): if event.is_action_pressed("editor_toggle_full_camera"):
$CameraPreview.visible = !$CameraPreview.visible; $CameraPreview.visible = !$CameraPreview.visible;
$CameraFullScreen.visible = !$CameraFullScreen.visible; $CameraFullScreen.visible = !$CameraFullScreen.visible;
if event.is_action_pressed("fullscreen"): if event.is_action_pressed("fullscreen"):
if (!fullscreen): if (!DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN):
fullscreen = true
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
else: else:
fullscreen = false
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
if (event.is_action_pressed("cycle_camera_angle")): if (event.is_action_pressed("editor_cycle_camera_angle")):
cam_index += 1 cam_index += 1
get_node(stages_info[current_stage]["scene_ref_base"] + "Angle " + str((cam_index % stages_info[current_stage]["camera_count"])+1)).current = true get_node(Stages.stages_info[current_stage]["scene_ref_base"] + "Angle " + str((cam_index % Stages.stages_info[current_stage]["camera_count"])+1)).current = true
if (transport_enabled): if (transport_enabled):
if event.is_action_pressed("sequencer_play_pause"): if event.is_action_pressed("editor_sequencer_play_pause"):
if (playing): _on_pause_button_pressed() if (playing): _on_pause_button_pressed()
else: _on_play_button_pressed() else: _on_play_button_pressed()
elif event.is_action_pressed("sequencer_play_reverse"): elif event.is_action_pressed("editor_sequencer_play_reverse"):
_on_play_backwards_button_pressed() _on_play_backwards_button_pressed()
elif event.is_action_pressed("sequencer_fast_reverse"): elif event.is_action_pressed("editor_sequencer_fast_reverse"):
_on_fast_backwards_button_pressed() _on_fast_backwards_button_pressed()
elif event.is_action_pressed("sequencer_fast_forward"): elif event.is_action_pressed("editor_sequencer_fast_forward"):
_on_fast_forward_button_pressed() _on_fast_forward_button_pressed()
elif event.is_action_pressed("sequencer_step_backward"): elif event.is_action_pressed("editor_sequencer_step_backward"):
_on_step_backwards_button_pressed() _on_step_backwards_button_pressed()
elif event.is_action_pressed("sequencer_step_forward"): elif event.is_action_pressed("editor_sequencer_step_forward"):
_on_step_forward_button_pressed() _on_step_forward_button_pressed()
elif event.is_action_pressed("sequencer_home"): elif event.is_action_pressed("editor_sequencer_home"):
_on_stop_button_pressed() _on_stop_button_pressed()
func _physics_process(_delta: float) -> void: func _physics_process(_delta: float) -> void:
@ -342,8 +332,6 @@ func _on_credits_button_pressed() -> void:
$CreditsScreen.visible = true $CreditsScreen.visible = true
func _on_input_eater_pressed() -> void: func _on_input_eater_pressed() -> void:
$ControlsScreen.visible = false
$CreditsScreen.visible = false
$ShowtapeNewScreen.visible = false $ShowtapeNewScreen.visible = false
$ShowtapeLoadScreen.visible = false $ShowtapeLoadScreen.visible = false
$ShowtapeSaveScreen.visible = false $ShowtapeSaveScreen.visible = false
@ -478,7 +466,7 @@ func plot_data(data: String):
if (frame_string == ""): continue if (frame_string == ""): continue
var check_frame_split = frame_string.split() var check_frame_split = frame_string.split()
check_frame_split.reverse() check_frame_split.reverse()
for i in stages_info[current_stage]["bit_mapping"]: for i in Stages.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)))): if ((check_frame_split[(i - 1) / 4].hex_to_int() & int(pow(2, ((i - 1) % 4)))) == int(pow(2, ((i - 1) % 4)))):
er = true er = true
@ -512,3 +500,7 @@ func _on_exit_menu_overwrite_confirmation_dialog_confirmed() -> void:
func _on_exit_desktop_overwrite_confirmation_dialog_2_confirmed() -> void: func _on_exit_desktop_overwrite_confirmation_dialog_2_confirmed() -> void:
get_tree().quit() get_tree().quit()
func _on_instructions_label_pressed() -> void:
$InstructionsLabel.visible = false

View file

@ -1,5 +1,79 @@
extends Control extends Control
func _ready():
OS.request_permissions()
randomize()
$Backgrounds.get_child(randi() % $Backgrounds.get_child_count()).visible = true
var moddir = DirAccess.open("user://Mods")
if moddir == null:
print("Mod folder was not found. Creating.")
var temp = DirAccess.open("user://")
temp.make_dir("Mods")
moddir = DirAccess.open("user://Mods")
moddir.list_dir_begin()
for file: String in moddir.get_files():
if (!file.ends_with(".pck")): return
ProjectSettings.load_resource_pack("user://Mods/%s" % file, false)
var dir = DirAccess.open("res://LoadedModContent/ModManifest")
if dir == null:
print("No mods were found.")
return
dir.list_dir_begin()
var tempLoadedList = []
for file: String in dir.get_files():
var modManifest = load(dir.get_current_dir() + "/" + file.trim_suffix(".remap")).new()
if (Stages.loaded_mods.get(modManifest.ModInfo["mod_name"]) != null):
if (tempLoadedList.find(modManifest.ModInfo["mod_name"]) == -1):
$ModsScreen/DialogPanel/ModList.add_item(modManifest.ModInfo["mod_name"], null, true)
return
Stages.loaded_mods[modManifest.ModInfo["mod_name"]] = modManifest.ModInfo
for stage in modManifest.ModInfo["implements_stages"]:
Stages.stages_info[stage] = modManifest.ModInfo["implements_stages"][stage]
$ModsScreen/DialogPanel/ModList.add_item(modManifest.ModInfo["mod_name"], null, true)
tempLoadedList.append(modManifest.ModInfo["mod_name"])
print("Loaded Mod \"%s\"" % modManifest.ModInfo["mod_name"])
func _on_button_pressed() -> void: func _on_button_pressed() -> void:
get_tree().change_scene_to_file("res://Scenes/GUI/EditorScreen.tscn") get_tree().change_scene_to_file("res://Scenes/GUI/EditorScreen.tscn")
func _on_exit_button_pressed() -> void:
get_tree().quit()
func _on_credits_button_pressed() -> void:
$CreditsScreen.visible = true
func _on_controls_button_pressed() -> void:
$ControlsScreen.visible = true
func _on_free_roam_button_pressed() -> void:
$FreeRoamChooseScreen.visible = true
func _on_mods_button_pressed() -> void:
$ModsScreen.visible = true
func _on_input_eater_pressed() -> void:
$CreditsScreen.visible = false
$ControlsScreen.visible = false
$FreeRoamChooseScreen.visible = false
$ModsScreen.visible = false
func _input(event: InputEvent) -> void:
if event.is_action_pressed("fullscreen"):
if (!DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN):
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
else:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
func _on_mod_list_item_selected(index: int) -> void:
var itext = $ModsScreen/DialogPanel/ModList.get_item_text(index)
$ModsScreen/DialogPanel/ModNameText.text = Stages.loaded_mods[itext]["mod_name"]
$ModsScreen/DialogPanel/ModAuthorText.text = "by %s" % Stages.loaded_mods[itext]["mod_creator"]
$ModsScreen/DialogPanel/ModVersionText.text = "Mod version %s" % Stages.loaded_mods[itext]["mod_version"]
$ModsScreen/DialogPanel/ModDescriptionText.text = Stages.loaded_mods[itext]["mod_description"]
func _on_open_folder_button_pressed() -> void:
OS.shell_open(ProjectSettings.globalize_path("user://Mods"))
$PleaseRestart.show()

BIN
UI/MenuBG/BalconyBG.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://6mf6wucl3y6k"
path="res://.godot/imported/BalconyBG.png-77fc3cb12985ad4aa4c7a07719c902d3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://UI/MenuBG/BalconyBG.png"
dest_files=["res://.godot/imported/BalconyBG.png-77fc3cb12985ad4aa4c7a07719c902d3.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

BIN
UI/MenuBG/CStageBG.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dr6ir8mgbjrs7"
path="res://.godot/imported/CStageBG.png-e353155e38aa74a5eeb8ad8bbf0ca97f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://UI/MenuBG/CStageBG.png"
dest_files=["res://.godot/imported/CStageBG.png-e353155e38aa74a5eeb8ad8bbf0ca97f.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

BIN
UI/MenuBG/ProtoRoadBG.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dyyyg85g3jwip"
path="res://.godot/imported/ProtoRoadBG.png-14030153324591d805d6a4c6283133d9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://UI/MenuBG/ProtoRoadBG.png"
dest_files=["res://.godot/imported/ProtoRoadBG.png-14030153324591d805d6a4c6283133d9.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

View file

Before

Width:  |  Height:  |  Size: 362 B

After

Width:  |  Height:  |  Size: 362 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dhx2v2fd0egxd" uid="uid://dhx2v2fd0egxd"
path="res://.godot/imported/FastBackwards.png-f55ba91d8d237cb6919d5f2a056db594.ctex" path="res://.godot/imported/FastBackwards.png-baafc41184f250c6fa4ffe3e374078aa.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/FastBackwards.png" source_file="res://UI/TransportControls/FastBackwards.png"
dest_files=["res://.godot/imported/FastBackwards.png-f55ba91d8d237cb6919d5f2a056db594.ctex"] dest_files=["res://.godot/imported/FastBackwards.png-baafc41184f250c6fa4ffe3e374078aa.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 337 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dsr03w7r667fw" uid="uid://dsr03w7r667fw"
path="res://.godot/imported/FastForward.png-acbfeb2710bea5385ca8ad13fa6699e8.ctex" path="res://.godot/imported/FastForward.png-fb55633376434284021e6fcb868d095e.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/FastForward.png" source_file="res://UI/TransportControls/FastForward.png"
dest_files=["res://.godot/imported/FastForward.png-acbfeb2710bea5385ca8ad13fa6699e8.ctex"] dest_files=["res://.godot/imported/FastForward.png-fb55633376434284021e6fcb868d095e.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 138 B

After

Width:  |  Height:  |  Size: 138 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bwhgy4u37jmo1" uid="uid://bwhgy4u37jmo1"
path="res://.godot/imported/Pause.png-90c47ed988bd7d26b746eb81a6aaeedf.ctex" path="res://.godot/imported/Pause.png-6e00544a0fac9a91b2c20976bb7ce799.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/Pause.png" source_file="res://UI/TransportControls/Pause.png"
dest_files=["res://.godot/imported/Pause.png-90c47ed988bd7d26b746eb81a6aaeedf.ctex"] dest_files=["res://.godot/imported/Pause.png-6e00544a0fac9a91b2c20976bb7ce799.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 346 B

After

Width:  |  Height:  |  Size: 346 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://xllpr3qc064c" uid="uid://xllpr3qc064c"
path="res://.godot/imported/Play.png-eec0d54380d32c59b84e7db5fa226d5e.ctex" path="res://.godot/imported/Play.png-afe759610dc1045a62cd8cc2e725ba25.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/Play.png" source_file="res://UI/TransportControls/Play.png"
dest_files=["res://.godot/imported/Play.png-eec0d54380d32c59b84e7db5fa226d5e.ctex"] dest_files=["res://.godot/imported/Play.png-afe759610dc1045a62cd8cc2e725ba25.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 353 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dgacnkv2dc65s" uid="uid://dgacnkv2dc65s"
path="res://.godot/imported/PlayBackwards.png-52f3d5b871717feab369f20308dd695c.ctex" path="res://.godot/imported/PlayBackwards.png-fa19f96c52d7ee8953d0dc88bd9de225.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/PlayBackwards.png" source_file="res://UI/TransportControls/PlayBackwards.png"
dest_files=["res://.godot/imported/PlayBackwards.png-52f3d5b871717feab369f20308dd695c.ctex"] dest_files=["res://.godot/imported/PlayBackwards.png-fa19f96c52d7ee8953d0dc88bd9de225.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 411 B

After

Width:  |  Height:  |  Size: 411 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://ckg2ihy105ttj" uid="uid://ckg2ihy105ttj"
path="res://.godot/imported/Record.png-52d5a1455899304e32054af5c940c434.ctex" path="res://.godot/imported/Record.png-feac6691f8b44c91b371c385fd49720a.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/Record.png" source_file="res://UI/TransportControls/Record.png"
dest_files=["res://.godot/imported/Record.png-52d5a1455899304e32054af5c940c434.ctex"] dest_files=["res://.godot/imported/Record.png-feac6691f8b44c91b371c385fd49720a.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 352 B

After

Width:  |  Height:  |  Size: 352 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dts4eh6hyt8p3" uid="uid://dts4eh6hyt8p3"
path="res://.godot/imported/SkipBackwards.png-dfebc48054bc60d9671fc8d69c696237.ctex" path="res://.godot/imported/SkipBackwards.png-07ed2723ebfa991c5eb7dd5b04bbdcc5.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/SkipBackwards.png" source_file="res://UI/TransportControls/SkipBackwards.png"
dest_files=["res://.godot/imported/SkipBackwards.png-dfebc48054bc60d9671fc8d69c696237.ctex"] dest_files=["res://.godot/imported/SkipBackwards.png-07ed2723ebfa991c5eb7dd5b04bbdcc5.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 331 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bphwtliq2ahus" uid="uid://bphwtliq2ahus"
path="res://.godot/imported/SkipForward.png-ca36b20fa5c982368f6b620245865f56.ctex" path="res://.godot/imported/SkipForward.png-d4be5716d356f8b0d5ac15243372a7e3.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/SkipForward.png" source_file="res://UI/TransportControls/SkipForward.png"
dest_files=["res://.godot/imported/SkipForward.png-ca36b20fa5c982368f6b620245865f56.ctex"] dest_files=["res://.godot/imported/SkipForward.png-d4be5716d356f8b0d5ac15243372a7e3.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 138 B

After

Width:  |  Height:  |  Size: 138 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://d007317123e27" uid="uid://d007317123e27"
path="res://.godot/imported/SmallLock.png-0c9e5ce04a7421f0922124b2fb1d8696.ctex" path="res://.godot/imported/SmallLock.png-c01b2981fa753e94bcf44ea7af0f5dc4.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/SmallLock.png" source_file="res://UI/TransportControls/SmallLock.png"
dest_files=["res://.godot/imported/SmallLock.png-0c9e5ce04a7421f0922124b2fb1d8696.ctex"] dest_files=["res://.godot/imported/SmallLock.png-c01b2981fa753e94bcf44ea7af0f5dc4.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 164 B

After

Width:  |  Height:  |  Size: 164 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cn5xdrxdv622h" uid="uid://cn5xdrxdv622h"
path="res://.godot/imported/SmallX.png-fca237bd1b13d37241a1ac9e982c446b.ctex" path="res://.godot/imported/SmallX.png-3e04f0094c67e8b6434dfe5dacc07c39.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/SmallX.png" source_file="res://UI/TransportControls/SmallX.png"
dest_files=["res://.godot/imported/SmallX.png-fca237bd1b13d37241a1ac9e982c446b.ctex"] dest_files=["res://.godot/imported/SmallX.png-3e04f0094c67e8b6434dfe5dacc07c39.ctex"]
[params] [params]

View file

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 132 B

Before After
Before After

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cttgtbu1xllwq" uid="uid://cttgtbu1xllwq"
path="res://.godot/imported/Stop.png-28cf49bd72d354d073c38f19027d6ddb.ctex" path="res://.godot/imported/Stop.png-fb014661ae7c7c34a81ed967c5cf7ad4.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://UI/Stop.png" source_file="res://UI/TransportControls/Stop.png"
dest_files=["res://.godot/imported/Stop.png-28cf49bd72d354d073c38f19027d6ddb.ctex"] dest_files=["res://.godot/imported/Stop.png-fb014661ae7c7c34a81ed967c5cf7ad4.ctex"]
[params] [params]

BIN
UI/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

34
UI/logo.png.import Normal file
View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbh0vh85wks2l"
path="res://.godot/imported/logo.png-51af639b546fa143c715ebb74d0509d5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://UI/logo.png"
dest_files=["res://.godot/imported/logo.png-51af639b546fa143c715ebb74d0509d5.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

View file

@ -338,55 +338,55 @@ ui_swap_input_direction={
"deadzone": 0.5, "deadzone": 0.5,
"events": [] "events": []
} }
toggle_editor_screen={ editor_toggle_full_camera={
"deadzone": 0.2, "deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":true,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":true,"script":null)
] ]
} }
sequencer_play_pause={ editor_sequencer_play_pause={
"deadzone": 0.2, "deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
] ]
} }
sequencer_play_reverse={ editor_sequencer_play_reverse={
"deadzone": 0.2, "deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null)
] ]
} }
sequencer_fast_forward={ editor_sequencer_fast_forward={
"deadzone": 0.2, "deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":5,"axis_value":1.0,"script":null) "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":5,"axis_value":1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
] ]
} }
sequencer_fast_reverse={ editor_sequencer_fast_reverse={
"deadzone": 0.2, "deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":4,"axis_value":1.0,"script":null) "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":4,"axis_value":1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
] ]
} }
sequencer_step_forward={ editor_sequencer_step_forward={
"deadzone": 0.2, "deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":true,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":true,"script":null)
] ]
} }
sequencer_step_backward={ editor_sequencer_step_backward={
"deadzone": 0.2, "deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":9,"pressure":0.0,"pressed":true,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":9,"pressure":0.0,"pressed":true,"script":null)
] ]
} }
cycle_camera_angle={ editor_cycle_camera_angle={
"deadzone": 0.2, "deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null)
] ]
} }
sequencer_home={ editor_sequencer_home={
"deadzone": 0.2, "deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194317,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194317,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
@ -401,8 +401,9 @@ fullscreen={
[rendering] [rendering]
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"
textures/vram_compression/import_etc2_astc=true textures/vram_compression/import_etc2_astc=true
anti_aliasing/quality/msaa_3d=1
limits/opengl/max_renderable_lights=128 limits/opengl/max_renderable_lights=128
limits/opengl/max_lights_per_object=128 limits/opengl/max_lights_per_object=128
anti_aliasing/quality/screen_space_aa=1
anti_aliasing/quality/use_debanding=true