diff --git a/Models/Room.glb b/Models/HelenHouse-Room.glb similarity index 100% rename from Models/Room.glb rename to Models/HelenHouse-Room.glb diff --git a/Models/Room.glb.import b/Models/HelenHouse-Room.glb.import similarity index 75% rename from Models/Room.glb.import rename to Models/HelenHouse-Room.glb.import index a2980ee..04f457c 100644 --- a/Models/Room.glb.import +++ b/Models/HelenHouse-Room.glb.import @@ -4,12 +4,12 @@ importer="scene" importer_version=1 type="PackedScene" uid="uid://bhoeqcsdb0fx2" -path="res://.godot/imported/Room.glb-057b6820edeabb93a1fe769eeffdac34.scn" +path="res://.godot/imported/HelenHouse-Room.glb-d94c54c0b353197dae218f85f4b80b38.scn" [deps] -source_file="res://Models/Room.glb" -dest_files=["res://.godot/imported/Room.glb-057b6820edeabb93a1fe769eeffdac34.scn"] +source_file="res://Models/HelenHouse-Room.glb" +dest_files=["res://.godot/imported/HelenHouse-Room.glb-d94c54c0b353197dae218f85f4b80b38.scn"] [params] diff --git a/Models/Stage.glb b/Models/HelenHouse-Stage.glb similarity index 100% rename from Models/Stage.glb rename to Models/HelenHouse-Stage.glb diff --git a/Models/Stage.glb.import b/Models/HelenHouse-Stage.glb.import similarity index 75% rename from Models/Stage.glb.import rename to Models/HelenHouse-Stage.glb.import index f5efa03..bc8c55e 100644 --- a/Models/Stage.glb.import +++ b/Models/HelenHouse-Stage.glb.import @@ -4,12 +4,12 @@ importer="scene" importer_version=1 type="PackedScene" uid="uid://btvomf1ayoypu" -path="res://.godot/imported/Stage.glb-38d445218888b57ffbbfd79eb6fd72c0.scn" +path="res://.godot/imported/HelenHouse-Stage.glb-cec5fe70b1f2a888ac5fe9fa252e083f.scn" [deps] -source_file="res://Models/Stage.glb" -dest_files=["res://.godot/imported/Stage.glb-38d445218888b57ffbbfd79eb6fd72c0.scn"] +source_file="res://Models/HelenHouse-Stage.glb" +dest_files=["res://.godot/imported/HelenHouse-Stage.glb-cec5fe70b1f2a888ac5fe9fa252e083f.scn"] [params] diff --git a/Scenes/GUI/Controls/CameraButton.tscn b/Scenes/GUI/Controls/CameraButton.tscn new file mode 100644 index 0000000..c49bfca --- /dev/null +++ b/Scenes/GUI/Controls/CameraButton.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=2 format=3 uid="uid://bt7bxdgv6u8ev"] + +[ext_resource type="Script" uid="uid://dfoog0y2bh7tk" path="res://Scripts/CameraButton.gd" id="1_3y3s1"] + +[node name="CameraButton" type="Control"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 136.0 +offset_bottom = 32.0 +script = ExtResource("1_3y3s1") + +[node name="Button" type="Button" parent="."] +layout_mode = 0 +offset_left = 4.0 +offset_right = 132.0 +offset_bottom = 32.0 +text = "Angle" + +[connection signal="pressed" from="Button" to="." method="_on_button_pressed"] diff --git a/Scenes/GUI/Controls/FlowControl.tscn b/Scenes/GUI/Controls/FlowControl.tscn new file mode 100644 index 0000000..dddcf94 --- /dev/null +++ b/Scenes/GUI/Controls/FlowControl.tscn @@ -0,0 +1,87 @@ +[gd_scene load_steps=3 format=3 uid="uid://blg1c3v4o44of"] + +[ext_resource type="Script" uid="uid://blhv0kms1sleu" path="res://Scripts/FlowControl.gd" id="1_6sy3t"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6sy3t"] +border_width_left = 1 +border_color = Color(0.0941176, 0.0941176, 0.0941176, 1) + +[node name="FlowControl" type="Control"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 512.0 +offset_bottom = 40.0 +script = ExtResource("1_6sy3t") + +[node name="Panel" type="Panel" parent="."] +layout_mode = 0 +offset_right = 512.0 +offset_bottom = 40.0 + +[node name="Label" type="Label" parent="Panel"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = 167.0 +offset_bottom = 36.0 +text = "Movement" +vertical_alignment = 1 +clip_text = true +text_overrun_behavior = 3 + +[node name="InSlider" type="HSlider" parent="Panel"] +layout_mode = 2 +offset_left = 171.0 +offset_top = 4.0 +offset_right = 235.0 +offset_bottom = 36.0 +size_flags_vertical = 1 +max_value = 5.0 +step = 0.1 +value = 1.0 + +[node name="InStepper" type="SpinBox" parent="Panel"] +layout_mode = 0 +offset_left = 239.0 +offset_top = 4.0 +offset_right = 335.0 +offset_bottom = 36.0 +max_value = 5.0 +step = 0.1 +value = 1.0 +prefix = "In:" + +[node name="OutSlider" type="HSlider" parent="Panel"] +layout_mode = 2 +offset_left = 344.0 +offset_top = 4.0 +offset_right = 408.0 +offset_bottom = 36.0 +size_flags_vertical = 1 +max_value = 5.0 +step = 0.1 +value = 1.0 + +[node name="OutStepper" type="SpinBox" parent="Panel"] +layout_mode = 0 +offset_left = 412.0 +offset_top = 4.0 +offset_right = 508.0 +offset_bottom = 36.0 +max_value = 5.0 +step = 0.1 +value = 1.0 +prefix = "Out:" + +[node name="VSeparator" type="VSeparator" parent="Panel"] +layout_mode = 0 +offset_left = 337.0 +offset_top = 4.0 +offset_right = 341.0 +offset_bottom = 36.0 +theme_override_styles/separator = SubResource("StyleBoxFlat_6sy3t") + +[connection signal="value_changed" from="Panel/InSlider" to="." method="_on_in_slider_value_changed"] +[connection signal="value_changed" from="Panel/InStepper" to="." method="_on_in_stepper_value_changed"] +[connection signal="value_changed" from="Panel/OutSlider" to="." method="_on_out_slider_value_changed"] +[connection signal="value_changed" from="Panel/OutStepper" to="." method="_on_out_stepper_value_changed"] diff --git a/Scenes/GUI/Controls/FlowSlider.tscn b/Scenes/GUI/Controls/FlowSlider.tscn deleted file mode 100644 index d2dfd56..0000000 --- a/Scenes/GUI/Controls/FlowSlider.tscn +++ /dev/null @@ -1,42 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://blg1c3v4o44of"] - -[ext_resource type="Script" uid="uid://blhv0kms1sleu" path="res://Scripts/FlowSlider.gd" id="1_q164o"] - -[node name="FlowSlider" type="Control"] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_right = -1280.0 -offset_bottom = -720.0 -grow_horizontal = 2 -grow_vertical = 2 -script = ExtResource("1_q164o") - -[node name="Panel" type="Panel" parent="."] -layout_mode = 0 -offset_right = 96.0 -offset_bottom = 32.0 - -[node name="Slider" type="HSlider" parent="Panel"] -layout_mode = 2 -offset_left = 4.0 -offset_right = 64.0 -offset_bottom = 32.0 -size_flags_vertical = 1 -max_value = 5.0 -step = 0.1 -value = 1.0 - -[node name="ValueLabel" type="Label" parent="Panel"] -layout_mode = 2 -offset_left = 64.0 -offset_right = 96.0 -offset_bottom = 32.0 -size_flags_horizontal = 8 -size_flags_vertical = 1 -text = "1.0" -horizontal_alignment = 1 -vertical_alignment = 1 - -[connection signal="value_changed" from="Panel/Slider" to="." method="_on_slider_value_changed"] diff --git a/Scenes/GUI/Controls/IndicatorLight.tscn b/Scenes/GUI/Controls/MovementButton.tscn similarity index 51% rename from Scenes/GUI/Controls/IndicatorLight.tscn rename to Scenes/GUI/Controls/MovementButton.tscn index 998e838..0200f4a 100644 --- a/Scenes/GUI/Controls/IndicatorLight.tscn +++ b/Scenes/GUI/Controls/MovementButton.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=4 format=3 uid="uid://cbf3x44mvo701"] -[ext_resource type="Script" uid="uid://cg157l4uo7ki8" path="res://Scripts/IndicatorLight.gd" id="1_l718a"] +[ext_resource type="Script" uid="uid://cg157l4uo7ki8" path="res://Scripts/MovementButton.gd" id="1_l718a"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1pi70"] bg_color = Color(0, 0, 0, 1) @@ -16,23 +16,26 @@ corner_radius_top_right = 12 corner_radius_bottom_right = 12 corner_radius_bottom_left = 12 -[node name="IndicatorLight" type="Control"] +[node name="MovementButton" type="Control"] layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_right = -1280.0 -offset_bottom = -720.0 -grow_horizontal = 2 -grow_vertical = 2 +anchors_preset = 0 +offset_right = 256.0 +offset_bottom = 40.0 script = ExtResource("1_l718a") -[node name="Container" type="Panel" parent="."] +[node name="Panel" type="Panel" parent="."] layout_mode = 0 -offset_right = 32.0 -offset_bottom = 32.0 +offset_right = 256.0 +offset_bottom = 40.0 -[node name="Black" type="Panel" parent="."] +[node name="IndicatorPanel" type="Panel" parent="Panel"] +layout_mode = 0 +offset_left = 220.0 +offset_top = 4.0 +offset_right = 252.0 +offset_bottom = 36.0 + +[node name="Black" type="Panel" parent="Panel/IndicatorPanel"] layout_mode = 0 offset_left = 4.0 offset_top = 4.0 @@ -40,10 +43,22 @@ offset_right = 28.0 offset_bottom = 28.0 theme_override_styles/panel = SubResource("StyleBoxFlat_1pi70") -[node name="Green" type="Panel" parent="."] +[node name="Green" type="Panel" parent="Panel/IndicatorPanel"] +visible = false layout_mode = 0 offset_left = 4.0 offset_top = 4.0 offset_right = 28.0 offset_bottom = 28.0 theme_override_styles/panel = SubResource("StyleBoxFlat_5m0fm") + +[node name="Button" type="Button" parent="Panel"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = 216.0 +offset_bottom = 36.0 +text = "Movement" + +[connection signal="button_down" from="Panel/Button" to="." method="_on_button_button_down"] +[connection signal="button_up" from="Panel/Button" to="." method="_on_button_button_up"] diff --git a/Scenes/GUI/Controls/MovementRow.tscn b/Scenes/GUI/Controls/MovementRow.tscn index d8ddf35..82822aa 100644 --- a/Scenes/GUI/Controls/MovementRow.tscn +++ b/Scenes/GUI/Controls/MovementRow.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=5 format=3 uid="uid://dtkqaw5533rxy"] +[gd_scene load_steps=6 format=3 uid="uid://dtkqaw5533rxy"] [ext_resource type="StyleBox" uid="uid://d17amc25o63p1" path="res://UI/Themes/MovementsPanelOverride.tres" id="1_d1xev"] [ext_resource type="Script" uid="uid://tn3aaldu7mm2" path="res://Scripts/MovementRow.gd" id="1_rm5t0"] [ext_resource type="Texture2D" uid="uid://cn5xdrxdv622h" path="res://UI/SmallX.png" id="2_e7anl"] +[ext_resource type="Texture2D" uid="uid://d007317123e27" path="res://UI/SmallLock.png" id="3_ldhn8"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rm5t0"] bg_color = Color(0, 1, 0, 1) @@ -36,6 +37,8 @@ offset_bottom = 36.0 tooltip_text = "Click to bind a key to this movement" text = "0 - Name (Unbound)" alignment = 0 +text_overrun_behavior = 3 +clip_text = true [node name="ClearButton" type="Button" parent="."] layout_mode = 0 @@ -46,6 +49,16 @@ offset_bottom = 20.0 tooltip_text = "Clear this row" icon = ExtResource("2_e7anl") +[node name="LockButton" type="Button" parent="."] +layout_mode = 0 +offset_left = 244.0 +offset_top = 20.0 +offset_right = 260.0 +offset_bottom = 36.0 +tooltip_text = "Prevent recording over" +toggle_mode = true +icon = ExtResource("3_ldhn8") + [node name="MovementsBG" type="Panel" parent="."] layout_mode = 1 anchors_preset = -1 diff --git a/Scenes/GUI/EditorScreen.tscn b/Scenes/GUI/EditorScreen.tscn index a0c7d1e..9ee2aa8 100644 --- a/Scenes/GUI/EditorScreen.tscn +++ b/Scenes/GUI/EditorScreen.tscn @@ -1,19 +1,18 @@ -[gd_scene load_steps=27 format=3 uid="uid://oiehbor0dlqx"] +[gd_scene load_steps=26 format=3 uid="uid://oiehbor0dlqx"] [ext_resource type="Script" uid="uid://dfiwoln8mdwm8" path="res://Scripts/EditorScreen.gd" id="1_sd512"] [ext_resource type="Theme" uid="uid://dbgs4id7y5d1c" path="res://UI/Themes/Dark.tres" id="1_v0ton"] -[ext_resource type="PackedScene" uid="uid://btre5j66mpchy" path="res://Scenes/Stages/Helen House/HelenHouse.tscn" id="2_p1t5g"] [ext_resource type="Texture2D" uid="uid://xllpr3qc064c" path="res://UI/Play.png" id="3_g6u4d"] [ext_resource type="Texture2D" uid="uid://dgacnkv2dc65s" path="res://UI/PlayBackwards.png" id="3_mr8sb"] [ext_resource type="Texture2D" uid="uid://dts4eh6hyt8p3" path="res://UI/SkipBackwards.png" id="3_r4ytj"] [ext_resource type="Texture2D" uid="uid://bwhgy4u37jmo1" path="res://UI/Pause.png" id="4_ba3jn"] +[ext_resource type="Texture2D" uid="uid://s3yr2wasxv03" path="res://UI/BlankCam.png" id="4_v0ton"] [ext_resource type="Texture2D" uid="uid://dhx2v2fd0egxd" path="res://UI/FastBackwards.png" id="4_wy7jo"] [ext_resource type="Texture2D" uid="uid://cttgtbu1xllwq" path="res://UI/Stop.png" id="8_20noo"] [ext_resource type="Texture2D" uid="uid://dsr03w7r667fw" path="res://UI/FastForward.png" id="8_v0ton"] [ext_resource type="Texture2D" uid="uid://bphwtliq2ahus" path="res://UI/SkipForward.png" id="9_20noo"] [ext_resource type="Texture2D" uid="uid://ckg2ihy105ttj" path="res://UI/Record.png" id="10_wy7jo"] -[ext_resource type="PackedScene" uid="uid://dyuhywnk8heav" path="res://Scenes/Stages/Helen House/HelenHouseMovementRows.tscn" id="12_20noo"] -[ext_resource type="PackedScene" uid="uid://dwhrame6udwbh" path="res://Scenes/Stages/Helen House/HelenHouseFlyout.tscn" 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"] viewport_path = NodePath("SubViewport") @@ -115,8 +114,6 @@ dialog_text = "This showtape is not compatible with the currently selected stage [node name="SubViewport" type="SubViewport" parent="."] size = Vector2i(1280, 720) -[node name="HelenHouse" parent="SubViewport" instance=ExtResource("2_p1t5g")] - [node name="ColorRect" type="ColorRect" parent="."] layout_mode = 1 anchors_preset = 15 @@ -126,7 +123,22 @@ grow_horizontal = 2 grow_vertical = 2 color = Color(0.187176, 0.187176, 0.187176, 1) +[node name="CameraPlaceholder" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_right = 1.0 +offset_left = -4.0 +offset_top = 48.0 +offset_right = -4.0 +offset_bottom = 408.0 +grow_horizontal = 0 +texture = ExtResource("4_v0ton") +expand_mode = 5 +stretch_mode = 6 + [node name="CameraPreview" type="TextureRect" parent="."] +visible = false layout_mode = 1 anchors_preset = -1 anchor_left = 0.5 @@ -178,7 +190,7 @@ offset_right = 260.0 offset_bottom = 36.0 selected = 0 item_count = 1 -popup/item_0/text = "Helen House (Custom)" +popup/item_0/text = "Helen House" popup/item_0/id = 0 [node name="MenuButton" type="MenuButton" parent="MenuBar"] @@ -226,7 +238,7 @@ offset_right = -8.0 offset_bottom = 16.0 grow_horizontal = 0 grow_vertical = 2 -text = "Pneumatic Plaything v0.3" +text = "Pneumatic Plaything v0.4" horizontal_alignment = 2 vertical_alignment = 1 @@ -394,14 +406,14 @@ grow_vertical = 2 [node name="VScrollBar" type="VScrollBar" parent="SequencerPanel/TimelinePanel"] layout_mode = 1 -anchors_preset = -1 +anchors_preset = 9 anchor_bottom = 1.0 offset_left = 4.0 offset_top = 4.0 offset_right = 12.0 offset_bottom = -4.0 grow_vertical = 2 -max_value = 31.0 +max_value = 0.0 step = 1.0 [node name="InvisibleMask" type="Control" parent="SequencerPanel/TimelinePanel"] @@ -417,32 +429,180 @@ offset_bottom = -4.0 grow_horizontal = 2 grow_vertical = 2 -[node name="RowsHandle" type="Control" parent="SequencerPanel/TimelinePanel/InvisibleMask"] +[node name="MovementRowsContainer" type="Control" parent="SequencerPanel/TimelinePanel/InvisibleMask"] layout_mode = 1 -anchors_preset = 10 +anchors_preset = 15 anchor_right = 1.0 +anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -[node name="HelenHouseMovementRows" parent="SequencerPanel/TimelinePanel/InvisibleMask/RowsHandle" instance=ExtResource("12_20noo")] +[node name="Playhead" type="VSeparator" parent="SequencerPanel/TimelinePanel/InvisibleMask"] layout_mode = 1 - -[node name="VSeparator" type="VSeparator" parent="SequencerPanel/TimelinePanel"] -layout_mode = 1 -anchors_preset = -1 +anchors_preset = 9 anchor_bottom = 1.0 -offset_left = 398.0 -offset_right = 4.0 +offset_left = 388.0 +offset_right = 392.0 grow_vertical = 2 -[node name="HelenHouseFlyout" parent="." instance=ExtResource("13_wy7jo")] +[node name="FlyoutPanel" type="Control" parent="."] layout_mode = 1 -anchors_preset = -1 anchor_bottom = 0.5 offset_left = 4.0 offset_top = 48.0 offset_right = 140.0 offset_bottom = 48.0 +grow_vertical = 2 + +[node name="FlyoutButtons" type="Panel" parent="FlyoutPanel"] +layout_mode = 1 +anchors_preset = 9 +anchor_bottom = 1.0 +offset_right = 136.0 +grow_vertical = 2 + +[node name="MovementsFlyoutButton" type="Button" parent="FlyoutPanel/FlyoutButtons"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = 132.0 +offset_bottom = 36.0 +toggle_mode = true +button_group = ExtResource("13_wy7jo") +text = "Movements" + +[node name="FlowsFlyoutButton" type="Button" parent="FlyoutPanel/FlyoutButtons"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 40.0 +offset_right = 132.0 +offset_bottom = 72.0 +toggle_mode = true +button_group = ExtResource("13_wy7jo") +text = "Flows" + +[node name="CameraFlyoutButton" type="Button" parent="FlyoutPanel/FlyoutButtons"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 76.0 +offset_right = 132.0 +offset_bottom = 108.0 +toggle_mode = true +button_group = ExtResource("13_wy7jo") +text = "Camera" + +[node name="CosmeticsFlyoutButton" type="Button" parent="FlyoutPanel/FlyoutButtons"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 112.0 +offset_right = 132.0 +offset_bottom = 144.0 +toggle_mode = true +button_group = ExtResource("13_wy7jo") +text = "Cosmetics" + +[node name="StageFlyoutButton" type="Button" parent="FlyoutPanel/FlyoutButtons"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 148.0 +offset_right = 132.0 +offset_bottom = 180.0 +toggle_mode = true +button_group = ExtResource("13_wy7jo") +text = "Stage" + +[node name="Movements" type="Panel" parent="FlyoutPanel"] +visible = false +layout_mode = 0 +offset_left = 140.0 +offset_right = 416.0 +offset_bottom = 392.0 + +[node name="InvisibleMask" type="Control" parent="FlyoutPanel/Movements"] +clip_contents = true +layout_mode = 3 +anchors_preset = 0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = 260.0 +offset_bottom = 388.0 + +[node name="MovementHandle" type="Control" parent="FlyoutPanel/Movements/InvisibleMask"] +anchors_preset = 0 + +[node name="VScrollBar" type="VScrollBar" parent="FlyoutPanel/Movements"] +offset_left = 264.0 +offset_top = 4.0 +offset_right = 272.0 +offset_bottom = 388.0 +max_value = 0.0 +step = 1.0 + +[node name="FlowControls" type="Panel" parent="FlyoutPanel"] +visible = false +layout_mode = 0 +offset_left = 140.0 +offset_right = 672.0 +offset_bottom = 392.0 + +[node name="InvisibleMask" type="Control" parent="FlyoutPanel/FlowControls"] +clip_contents = true +anchors_preset = 0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = 516.0 +offset_bottom = 388.0 + +[node name="FlowHandle" type="Control" parent="FlyoutPanel/FlowControls/InvisibleMask"] +anchors_preset = 0 + +[node name="VScrollBar" type="VScrollBar" parent="FlyoutPanel/FlowControls"] +layout_mode = 0 +offset_left = 520.0 +offset_top = 4.0 +offset_right = 528.0 +offset_bottom = 388.0 +max_value = 0.0 +step = 1.0 + +[node name="Camera" type="Panel" parent="FlyoutPanel"] +visible = false +layout_mode = 0 +offset_left = 140.0 +offset_right = 276.0 +offset_bottom = 4.0 + +[node name="Cosmetics" type="Panel" parent="FlyoutPanel"] +visible = false +layout_mode = 0 +offset_left = 140.0 +offset_right = 396.0 +offset_bottom = 64.0 + +[node name="Label" type="Label" parent="FlyoutPanel/Cosmetics"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = 228.0 +offset_bottom = 36.0 +text = "No options for this stage :(" +vertical_alignment = 1 + +[node name="Stage" type="Panel" parent="FlyoutPanel"] +visible = false +layout_mode = 0 +offset_left = 140.0 +offset_right = 396.0 +offset_bottom = 64.0 + +[node name="Label" type="Label" parent="FlyoutPanel/Stage"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = 228.0 +offset_bottom = 36.0 +text = "No options for this stage :(" +vertical_alignment = 1 [node name="ControlsScreen" type="Control" parent="."] visible = false @@ -941,6 +1101,7 @@ expand_mode = 2 [connection signal="file_selected" from="SaveShowtapeFileDialog" to="." method="_on_save_showtape_file_dialog_file_selected"] [connection signal="confirmed" from="NewOverwriteConfirmationDialog" to="." method="_on_new_overwrite_confirmation_dialog_confirmed"] [connection signal="confirmed" from="LoadOverwriteConfirmationDialog" to="." method="_on_load_overwrite_confirmation_dialog_confirmed"] +[connection signal="item_selected" from="MenuBar/StageSelector" to="." method="_on_stage_selector_item_selected"] [connection signal="pressed" from="MenuBar/ControlsButton" to="." method="_on_controls_button_pressed"] [connection signal="pressed" from="MenuBar/CreditsButton" to="." method="_on_credits_button_pressed"] [connection signal="pressed" from="SequencerPanel/TransportControls/Centered/StepBackwardsButton" to="." method="_on_step_backwards_button_pressed"] @@ -953,6 +1114,13 @@ expand_mode = 2 [connection signal="pressed" from="SequencerPanel/TransportControls/Centered/StepForwardButton" to="." method="_on_step_forward_button_pressed"] [connection signal="toggled" from="SequencerPanel/TransportControls/RecordButton" to="." method="_on_record_button_toggled"] [connection signal="value_changed" from="SequencerPanel/TimelinePanel/VScrollBar" to="." method="_on_v_scroll_bar_value_changed"] +[connection signal="toggled" from="FlyoutPanel/FlyoutButtons/MovementsFlyoutButton" to="." method="_on_movements_flyout_button_toggled"] +[connection signal="toggled" from="FlyoutPanel/FlyoutButtons/FlowsFlyoutButton" to="." method="_on_flows_flyout_button_toggled"] +[connection signal="toggled" from="FlyoutPanel/FlyoutButtons/CameraFlyoutButton" to="." method="_on_camera_flyout_button_toggled"] +[connection signal="toggled" from="FlyoutPanel/FlyoutButtons/CosmeticsFlyoutButton" to="." method="_on_cosmetics_flyout_button_toggled"] +[connection signal="toggled" from="FlyoutPanel/FlyoutButtons/StageFlyoutButton" to="." method="_on_stage_flyout_button_toggled"] +[connection signal="value_changed" from="FlyoutPanel/Movements/VScrollBar" to="." method="_on_movement_v_scroll_bar_value_changed"] +[connection signal="value_changed" from="FlyoutPanel/FlowControls/VScrollBar" to="." method="_on_flow_v_scroll_bar_value_changed"] [connection signal="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"] diff --git a/Scenes/Stages/Helen House/HelenHouseFlyout.tscn b/Scenes/Stages/Helen House/HelenHouseFlyout.tscn deleted file mode 100644 index c227897..0000000 --- a/Scenes/Stages/Helen House/HelenHouseFlyout.tscn +++ /dev/null @@ -1,1043 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://dwhrame6udwbh"] - -[ext_resource type="Script" uid="uid://bh512bgpm0kj7" path="res://Scripts/HelenHouseFlyout.gd" id="1_82hqt"] -[ext_resource type="ButtonGroup" uid="uid://bij2tonqeslpt" path="res://Scenes/GUI/FlyoutButtonGroup.tres" id="1_p77ya"] -[ext_resource type="PackedScene" uid="uid://cbf3x44mvo701" path="res://Scenes/GUI/Controls/IndicatorLight.tscn" id="2_82hqt"] -[ext_resource type="PackedScene" uid="uid://blg1c3v4o44of" path="res://Scenes/GUI/Controls/FlowSlider.tscn" id="3_petwi"] - -[node name="HelenHouseFlyout" type="Control"] -layout_mode = 3 -anchors_preset = 9 -anchor_bottom = 1.0 -offset_right = 136.0 -grow_vertical = 2 -script = ExtResource("1_82hqt") - -[node name="FlyoutButtons" type="Panel" parent="."] -layout_mode = 1 -anchors_preset = 9 -anchor_bottom = 1.0 -offset_right = 136.0 -grow_vertical = 2 - -[node name="MovementsFlyoutButton" type="Button" parent="FlyoutButtons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 4.0 -offset_right = 132.0 -offset_bottom = 36.0 -toggle_mode = true -button_group = ExtResource("1_p77ya") -text = "Movements" - -[node name="FlowsFlyoutButton" type="Button" parent="FlyoutButtons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 40.0 -offset_right = 132.0 -offset_bottom = 72.0 -toggle_mode = true -button_group = ExtResource("1_p77ya") -text = "Flows" - -[node name="CameraFlyoutButton" type="Button" parent="FlyoutButtons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 76.0 -offset_right = 132.0 -offset_bottom = 108.0 -toggle_mode = true -button_group = ExtResource("1_p77ya") -text = "Camera" - -[node name="CosmeticsFlyoutButton" type="Button" parent="FlyoutButtons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 112.0 -offset_right = 132.0 -offset_bottom = 144.0 -toggle_mode = true -button_group = ExtResource("1_p77ya") -text = "Cosmetics" - -[node name="StageFlyoutButton" type="Button" parent="FlyoutButtons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 148.0 -offset_right = 132.0 -offset_bottom = 180.0 -toggle_mode = true -button_group = ExtResource("1_p77ya") -text = "Stage" - -[node name="Movements" type="Panel" parent="."] -visible = false -layout_mode = 0 -offset_left = 140.0 -offset_right = 480.0 -offset_bottom = 364.0 - -[node name="Buttons" type="Control" parent="Movements"] -anchors_preset = 0 - -[node name="Mouth" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 4.0 -offset_right = 132.0 -offset_bottom = 36.0 -text = "Mouth" - -[node name="LeftEar" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 40.0 -offset_right = 132.0 -offset_bottom = 72.0 -text = "Left Ear" - -[node name="RightEar" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 76.0 -offset_right = 132.0 -offset_bottom = 108.0 -text = "Right Ear" - -[node name="LeftEyelid" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 112.0 -offset_right = 132.0 -offset_bottom = 144.0 -text = "Left Eyelid" - -[node name="RightEyelid" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 148.0 -offset_right = 132.0 -offset_bottom = 180.0 -text = "Right Eyelid" - -[node name="EyesLeft" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 184.0 -offset_right = 132.0 -offset_bottom = 216.0 -text = "Eyes Left" - -[node name="EyesRight" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 220.0 -offset_right = 132.0 -offset_bottom = 252.0 -text = "Eyes Right" - -[node name="HeadLeft" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 256.0 -offset_right = 132.0 -offset_bottom = 288.0 -text = "Head Left" - -[node name="HeadRight" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 292.0 -offset_right = 132.0 -offset_bottom = 324.0 -text = "Head Right" - -[node name="HeadUp" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 328.0 -offset_right = 132.0 -offset_bottom = 360.0 -text = "Head Up" - -[node name="LeftArmUp" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 172.0 -offset_top = 4.0 -offset_right = 300.0 -offset_bottom = 36.0 -text = "Left Arm Up" - -[node name="LeftArmTwist" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 172.0 -offset_top = 40.0 -offset_right = 300.0 -offset_bottom = 72.0 -text = "Left Arm Twist" - -[node name="LeftElbow" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 172.0 -offset_top = 76.0 -offset_right = 300.0 -offset_bottom = 108.0 -text = "Left Elbow" - -[node name="RightArmUp" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 172.0 -offset_top = 112.0 -offset_right = 300.0 -offset_bottom = 144.0 -text = "Right Arm Up" - -[node name="RightArmTwist" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 172.0 -offset_top = 148.0 -offset_right = 300.0 -offset_bottom = 180.0 -text = "R. Arm Twist" - -[node name="RightElbow" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 172.0 -offset_top = 184.0 -offset_right = 300.0 -offset_bottom = 216.0 -text = "Right Elbow" - -[node name="BodyLeft" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 172.0 -offset_top = 220.0 -offset_right = 300.0 -offset_bottom = 252.0 -text = "Body Left" - -[node name="BodyRight" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 172.0 -offset_top = 256.0 -offset_right = 300.0 -offset_bottom = 288.0 -text = "Body Right" - -[node name="BodyLean" type="Button" parent="Movements/Buttons"] -layout_mode = 0 -offset_left = 172.0 -offset_top = 292.0 -offset_right = 300.0 -offset_bottom = 324.0 -text = "Body Lean" - -[node name="IndicatorLights" type="Control" parent="Movements"] -anchors_preset = 0 - -[node name="Mouth" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 4.0 -offset_right = 136.0 -offset_bottom = 4.0 - -[node name="Left Ear" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 40.0 -offset_right = 136.0 -offset_bottom = 40.0 - -[node name="Right Ear" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 76.0 -offset_right = 136.0 -offset_bottom = 76.0 - -[node name="Left Eyelid" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 112.0 -offset_right = 136.0 -offset_bottom = 112.0 - -[node name="Right Eyelid" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 148.0 -offset_right = 136.0 -offset_bottom = 148.0 - -[node name="Eyes Left" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 184.0 -offset_right = 136.0 -offset_bottom = 184.0 - -[node name="Eyes Right" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 220.0 -offset_right = 136.0 -offset_bottom = 220.0 - -[node name="Head Left" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 256.0 -offset_right = 136.0 -offset_bottom = 256.0 - -[node name="Head Right" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 292.0 -offset_right = 136.0 -offset_bottom = 292.0 - -[node name="Head Up" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 136.0 -offset_top = 328.0 -offset_right = 136.0 -offset_bottom = 328.0 - -[node name="Left Arm Up" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 304.0 -offset_top = 4.0 -offset_right = 304.0 -offset_bottom = 4.0 - -[node name="Left Arm Twist" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 304.0 -offset_top = 40.0 -offset_right = 304.0 -offset_bottom = 40.0 - -[node name="Left Elbow" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 304.0 -offset_top = 76.0 -offset_right = 304.0 -offset_bottom = 76.0 - -[node name="Right Arm Up" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 304.0 -offset_top = 112.0 -offset_right = 304.0 -offset_bottom = 112.0 - -[node name="Right Arm Twist" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 304.0 -offset_top = 148.0 -offset_right = 304.0 -offset_bottom = 148.0 - -[node name="Right Elbow" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 304.0 -offset_top = 184.0 -offset_right = 304.0 -offset_bottom = 184.0 - -[node name="Body Left" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 304.0 -offset_top = 220.0 -offset_right = 304.0 -offset_bottom = 220.0 - -[node name="Body Right" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 304.0 -offset_top = 256.0 -offset_right = 304.0 -offset_bottom = 256.0 - -[node name="Body Lean" parent="Movements/IndicatorLights" instance=ExtResource("2_82hqt")] -layout_mode = 1 -offset_left = 304.0 -offset_top = 292.0 -offset_right = 304.0 -offset_bottom = 292.0 - -[node name="FlowControls" type="Panel" parent="."] -visible = false -layout_mode = 0 -offset_left = 140.0 -offset_right = 808.0 -offset_bottom = 392.0 - -[node name="Labels" type="Control" parent="FlowControls"] -anchors_preset = 0 -offset_top = -40.0 -offset_bottom = -40.0 - -[node name="MovementsLabel1" type="Label" parent="FlowControls/Labels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 40.0 -offset_right = 132.0 -offset_bottom = 72.0 -text = "Movement" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="MovementsLabel2" type="Label" parent="FlowControls/Labels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 40.0 -offset_right = 464.0 -offset_bottom = 72.0 -text = "Movement" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="InFlowsLabel1" type="Label" parent="FlowControls/Labels"] -layout_mode = 0 -offset_left = 136.0 -offset_top = 40.0 -offset_right = 232.0 -offset_bottom = 72.0 -text = "In Flow" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="InFlowsLabel2" type="Label" parent="FlowControls/Labels"] -layout_mode = 0 -offset_left = 468.0 -offset_top = 40.0 -offset_right = 564.0 -offset_bottom = 72.0 -text = "In Flow" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="OutFlowsLabel1" type="Label" parent="FlowControls/Labels"] -layout_mode = 0 -offset_left = 236.0 -offset_top = 40.0 -offset_right = 332.0 -offset_bottom = 72.0 -text = "Out Flow" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="OutFlowsLabel2" type="Label" parent="FlowControls/Labels"] -layout_mode = 0 -offset_left = 568.0 -offset_top = 40.0 -offset_right = 664.0 -offset_bottom = 72.0 -text = "Out Flow" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="InFlows" type="Control" parent="FlowControls"] -anchors_preset = 0 -offset_top = -40.0 -offset_bottom = -40.0 - -[node name="MouthFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 72.0 -offset_right = 135.5 -offset_bottom = 72.0 -value = 3.0 - -[node name="LeftEarFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 108.0 -offset_right = 135.5 -offset_bottom = 108.0 -value = 3.5 - -[node name="RightEarFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 144.0 -offset_right = 135.5 -offset_bottom = 144.0 -value = 3.5 - -[node name="LeftEyelidFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 180.0 -offset_right = 135.5 -offset_bottom = 180.0 -value = 1.5 - -[node name="RightEyelidFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 216.0 -offset_right = 135.5 -offset_bottom = 216.0 -value = 1.5 - -[node name="EyesLeftFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 252.0 -offset_right = 135.5 -offset_bottom = 252.0 -value = 2.0 - -[node name="EyesRightFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 288.0 -offset_right = 135.5 -offset_bottom = 288.0 -value = 2.0 - -[node name="HeadLeftFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 324.0 -offset_right = 135.5 -offset_bottom = 324.0 -value = 1.5 - -[node name="HeadRightFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 360.0 -offset_right = 135.5 -offset_bottom = 360.0 -value = 1.5 - -[node name="HeadUpFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 135.5 -offset_top = 396.0 -offset_right = 135.5 -offset_bottom = 396.0 - -[node name="LeftArmUpFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 467.5 -offset_top = 72.0 -offset_right = 467.5 -offset_bottom = 72.0 -value = 0.8 - -[node name="LeftArmTwistFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 467.5 -offset_top = 108.0 -offset_right = 467.5 -offset_bottom = 108.0 -value = 0.8 - -[node name="LeftElbowFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 467.5 -offset_top = 144.0 -offset_right = 467.5 -offset_bottom = 144.0 - -[node name="RightArmUpFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 467.5 -offset_top = 180.0 -offset_right = 467.5 -offset_bottom = 180.0 -value = 0.8 - -[node name="RightArmTwistFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 467.5 -offset_top = 216.0 -offset_right = 467.5 -offset_bottom = 216.0 -value = 0.8 - -[node name="RightElbowFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 467.5 -offset_top = 252.0 -offset_right = 467.5 -offset_bottom = 252.0 - -[node name="BodyLeftFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 467.5 -offset_top = 288.0 -offset_right = 467.5 -offset_bottom = 288.0 -value = 0.7 - -[node name="BodyRightFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 467.5 -offset_top = 324.0 -offset_right = 467.5 -offset_bottom = 324.0 -value = 0.7 - -[node name="BodyLeanFlow" parent="FlowControls/InFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 467.5 -offset_top = 360.0 -offset_right = 467.5 -offset_bottom = 360.0 - -[node name="OutFlows" type="Control" parent="FlowControls"] -anchors_preset = 0 -offset_top = -40.0 -offset_bottom = -40.0 - -[node name="MouthFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 72.0 -offset_right = 235.5 -offset_bottom = 72.0 -value = 2.0 - -[node name="LeftEarFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 108.0 -offset_right = 235.5 -offset_bottom = 108.0 -value = 1.5 - -[node name="RightEarFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 144.0 -offset_right = 235.5 -offset_bottom = 144.0 -value = 1.5 - -[node name="LeftEyelidFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 180.0 -offset_right = 235.5 -offset_bottom = 180.0 -value = 2.0 - -[node name="RightEyelidFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 216.0 -offset_right = 235.5 -offset_bottom = 216.0 -value = 2.0 - -[node name="EyesLeftFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 252.0 -offset_right = 235.5 -offset_bottom = 252.0 -value = 2.0 - -[node name="EyesRightFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 288.0 -offset_right = 235.5 -offset_bottom = 288.0 -value = 2.0 - -[node name="HeadLeftFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 324.0 -offset_right = 235.5 -offset_bottom = 324.0 -value = 1.5 - -[node name="HeadRightFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 360.0 -offset_right = 235.5 -offset_bottom = 360.0 -value = 1.5 - -[node name="HeadUpFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 235.5 -offset_top = 396.0 -offset_right = 235.5 -offset_bottom = 396.0 - -[node name="LeftArmUpFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 567.5 -offset_top = 72.0 -offset_right = 567.5 -offset_bottom = 72.0 -value = 0.6 - -[node name="LeftArmTwistFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 567.5 -offset_top = 108.0 -offset_right = 567.5 -offset_bottom = 108.0 -value = 0.8 - -[node name="LeftElbowFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 567.5 -offset_top = 144.0 -offset_right = 567.5 -offset_bottom = 144.0 - -[node name="RightArmUpFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 567.5 -offset_top = 180.0 -offset_right = 567.5 -offset_bottom = 180.0 -value = 0.6 - -[node name="RightArmTwistFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 567.5 -offset_top = 216.0 -offset_right = 567.5 -offset_bottom = 216.0 -value = 0.8 - -[node name="RightElbowFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 567.5 -offset_top = 252.0 -offset_right = 567.5 -offset_bottom = 252.0 - -[node name="BodyLeftFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 567.5 -offset_top = 288.0 -offset_right = 567.5 -offset_bottom = 288.0 -value = 0.7 - -[node name="BodyRightFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 567.5 -offset_top = 324.0 -offset_right = 567.5 -offset_bottom = 324.0 -value = 0.7 - -[node name="BodyLeanFlow" parent="FlowControls/OutFlows" instance=ExtResource("3_petwi")] -layout_mode = 1 -offset_left = 567.5 -offset_top = 360.0 -offset_right = 567.5 -offset_bottom = 360.0 -value = 0.8 - -[node name="MovementLabels" type="Control" parent="FlowControls"] -layout_mode = 3 -anchors_preset = 0 - -[node name="Mouth" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 32.0 -offset_right = 132.0 -offset_bottom = 64.0 -text = "Mouth" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="LeftEar" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 68.0 -offset_right = 132.0 -offset_bottom = 100.0 -text = "Left Ear" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="RightEar" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 104.0 -offset_right = 132.0 -offset_bottom = 136.0 -text = "Right Ear" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="LeftEyelid" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 140.0 -offset_right = 132.0 -offset_bottom = 172.0 -text = "Left Eyelid" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="RightEyelid" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 176.0 -offset_right = 132.0 -offset_bottom = 208.0 -text = "Right Eyelid" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="EyesLeft" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 212.0 -offset_right = 132.0 -offset_bottom = 244.0 -text = "Eyes Left" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="EyesRight" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 248.0 -offset_right = 132.0 -offset_bottom = 280.0 -text = "Eyes Right" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="HeadLeft" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 284.0 -offset_right = 132.0 -offset_bottom = 316.0 -text = "Head Left" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="HeadRight" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 320.0 -offset_right = 132.0 -offset_bottom = 352.0 -text = "Head Right" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="HeadUp" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 356.0 -offset_right = 132.0 -offset_bottom = 388.0 -text = "Head Up" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="LeftArmUp" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 32.0 -offset_right = 464.0 -offset_bottom = 64.0 -text = "Left Arm Up" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="LeftArmTwist" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 68.0 -offset_right = 464.0 -offset_bottom = 100.0 -text = "Left Arm Twist" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="LeftElbow" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 104.0 -offset_right = 464.0 -offset_bottom = 136.0 -text = "Left Elbow" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="RightArmUp" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 140.0 -offset_right = 464.0 -offset_bottom = 172.0 -text = "Right Arm Up" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="RightArmTwist" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 176.0 -offset_right = 464.0 -offset_bottom = 208.0 -text = "R. Arm Twist" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="RightElbow" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 212.0 -offset_right = 464.0 -offset_bottom = 244.0 -text = "Right Elbow" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="BodyLeft" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 248.0 -offset_right = 464.0 -offset_bottom = 280.0 -text = "Body Left" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="BodyRight" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 284.0 -offset_right = 464.0 -offset_bottom = 316.0 -text = "Body Right" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="BodyLean" type="Label" parent="FlowControls/MovementLabels"] -layout_mode = 0 -offset_left = 336.0 -offset_top = 320.0 -offset_right = 464.0 -offset_bottom = 352.0 -text = "Body Lean" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="Camera" type="Panel" parent="."] -visible = false -layout_mode = 0 -offset_left = 140.0 -offset_right = 276.0 -offset_bottom = 76.0 - -[node name="Angle1Button" type="Button" parent="Camera"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 4.0 -offset_right = 132.0 -offset_bottom = 36.0 -text = "Angle 1" - -[node name="Angle2Button" type="Button" parent="Camera"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 40.0 -offset_right = 132.0 -offset_bottom = 72.0 -text = "Angle 2" - -[node name="Cosmetics" type="Panel" parent="."] -visible = false -layout_mode = 0 -offset_left = 140.0 -offset_right = 396.0 -offset_bottom = 64.0 - -[node name="Label" type="Label" parent="Cosmetics"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 4.0 -offset_right = 228.0 -offset_bottom = 36.0 -text = "No options for this stage :(" -vertical_alignment = 1 - -[node name="Stage" type="Panel" parent="."] -visible = false -layout_mode = 0 -offset_left = 140.0 -offset_right = 396.0 -offset_bottom = 64.0 - -[node name="Label" type="Label" parent="Stage"] -layout_mode = 0 -offset_left = 4.0 -offset_top = 4.0 -offset_right = 228.0 -offset_bottom = 36.0 -text = "No options for this stage :(" -vertical_alignment = 1 - -[connection signal="toggled" from="FlyoutButtons/MovementsFlyoutButton" to="." method="_on_movements_flyout_button_toggled"] -[connection signal="toggled" from="FlyoutButtons/FlowsFlyoutButton" to="." method="_on_flows_flyout_button_toggled"] -[connection signal="toggled" from="FlyoutButtons/CameraFlyoutButton" to="." method="_on_camera_flyout_button_toggled"] -[connection signal="toggled" from="FlyoutButtons/CosmeticsFlyoutButton" to="." method="_on_cosmetics_flyout_button_toggled"] -[connection signal="toggled" from="FlyoutButtons/StageFlyoutButton" to="." method="_on_stage_flyout_button_toggled"] -[connection signal="button_down" from="Movements/Buttons/Mouth" to="." method="_on_mouth_button_down"] -[connection signal="button_up" from="Movements/Buttons/Mouth" to="." method="_on_mouth_button_up"] -[connection signal="button_down" from="Movements/Buttons/LeftEar" to="." method="_on_left_ear_button_down"] -[connection signal="button_up" from="Movements/Buttons/LeftEar" to="." method="_on_left_ear_button_up"] -[connection signal="button_down" from="Movements/Buttons/RightEar" to="." method="_on_right_ear_button_down"] -[connection signal="button_up" from="Movements/Buttons/RightEar" to="." method="_on_right_ear_button_up"] -[connection signal="button_down" from="Movements/Buttons/LeftEyelid" to="." method="_on_left_eyelid_button_down"] -[connection signal="button_up" from="Movements/Buttons/LeftEyelid" to="." method="_on_left_eyelid_button_up"] -[connection signal="button_down" from="Movements/Buttons/RightEyelid" to="." method="_on_right_eyelid_button_down"] -[connection signal="button_up" from="Movements/Buttons/RightEyelid" to="." method="_on_right_eyelid_button_up"] -[connection signal="button_down" from="Movements/Buttons/EyesLeft" to="." method="_on_eyes_left_button_down"] -[connection signal="button_up" from="Movements/Buttons/EyesLeft" to="." method="_on_eyes_left_button_up"] -[connection signal="button_down" from="Movements/Buttons/EyesRight" to="." method="_on_eyes_right_button_down"] -[connection signal="button_up" from="Movements/Buttons/EyesRight" to="." method="_on_eyes_right_button_up"] -[connection signal="button_down" from="Movements/Buttons/HeadLeft" to="." method="_on_head_left_button_down"] -[connection signal="button_up" from="Movements/Buttons/HeadLeft" to="." method="_on_head_left_button_up"] -[connection signal="button_down" from="Movements/Buttons/HeadRight" to="." method="_on_head_right_button_down"] -[connection signal="button_up" from="Movements/Buttons/HeadRight" to="." method="_on_head_right_button_up"] -[connection signal="button_down" from="Movements/Buttons/HeadUp" to="." method="_on_head_up_button_down"] -[connection signal="button_up" from="Movements/Buttons/HeadUp" to="." method="_on_head_up_button_up"] -[connection signal="button_down" from="Movements/Buttons/LeftArmUp" to="." method="_on_left_arm_up_button_down"] -[connection signal="button_up" from="Movements/Buttons/LeftArmUp" to="." method="_on_left_arm_up_button_up"] -[connection signal="button_down" from="Movements/Buttons/LeftArmTwist" to="." method="_on_left_arm_twist_button_down"] -[connection signal="button_up" from="Movements/Buttons/LeftArmTwist" to="." method="_on_left_arm_twist_button_up"] -[connection signal="button_down" from="Movements/Buttons/LeftElbow" to="." method="_on_left_elbow_button_down"] -[connection signal="button_up" from="Movements/Buttons/LeftElbow" to="." method="_on_left_elbow_button_up"] -[connection signal="button_down" from="Movements/Buttons/RightArmUp" to="." method="_on_right_arm_up_button_down"] -[connection signal="button_up" from="Movements/Buttons/RightArmUp" to="." method="_on_right_arm_up_button_up"] -[connection signal="button_down" from="Movements/Buttons/RightArmTwist" to="." method="_on_right_arm_twist_button_down"] -[connection signal="button_up" from="Movements/Buttons/RightArmTwist" to="." method="_on_right_arm_twist_button_up"] -[connection signal="button_down" from="Movements/Buttons/RightElbow" to="." method="_on_right_elbow_button_down"] -[connection signal="button_up" from="Movements/Buttons/RightElbow" to="." method="_on_right_elbow_button_up"] -[connection signal="button_down" from="Movements/Buttons/BodyLeft" to="." method="_on_body_left_button_down"] -[connection signal="button_up" from="Movements/Buttons/BodyLeft" to="." method="_on_body_left_button_up"] -[connection signal="button_down" from="Movements/Buttons/BodyRight" to="." method="_on_body_right_button_down"] -[connection signal="button_up" from="Movements/Buttons/BodyRight" to="." method="_on_body_right_button_up"] -[connection signal="button_down" from="Movements/Buttons/BodyLean" to="." method="_on_body_lean_button_down"] -[connection signal="button_up" from="Movements/Buttons/BodyLean" to="." method="_on_body_lean_button_up"] -[connection signal="pressed" from="Camera/Angle1Button" to="." method="_on_angle_1_button_pressed"] -[connection signal="pressed" from="Camera/Angle2Button" to="." method="_on_angle_2_button_pressed"] diff --git a/Scenes/Stages/Helen House/HelenHouseMovementRows.tscn b/Scenes/Stages/Helen House/HelenHouseMovementRows.tscn deleted file mode 100644 index 9242caa..0000000 --- a/Scenes/Stages/Helen House/HelenHouseMovementRows.tscn +++ /dev/null @@ -1,321 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://dyuhywnk8heav"] - -[ext_resource type="PackedScene" uid="uid://dtkqaw5533rxy" path="res://Scenes/GUI/Controls/MovementRow.tscn" id="1_g2q8r"] - -[node name="HelenHouseMovementRows" type="Control"] -layout_mode = 3 -anchors_preset = 10 -anchor_right = 1.0 -grow_horizontal = 2 - -[node name="MouthRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -grow_horizontal = 1 -movement_bit = 1 -movement_name = "Mouth" - -[node name="LeftEarRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 44.0 -offset_bottom = 84.0 -grow_horizontal = 1 -movement_bit = 2 -movement_name = "Left Ear" - -[node name="RightEarRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 88.0 -offset_bottom = 128.0 -grow_horizontal = 1 -movement_bit = 3 -movement_name = "Right Ear" - -[node name="LeftEyelidRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 132.0 -offset_bottom = 172.0 -grow_horizontal = 1 -movement_bit = 4 -movement_name = "Left Eyelid" - -[node name="RightEyelidRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 176.0 -offset_bottom = 216.0 -grow_horizontal = 1 -movement_bit = 5 -movement_name = "Right Eyelid" - -[node name="EyesLeftRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 220.0 -offset_bottom = 260.0 -grow_horizontal = 1 -movement_bit = 6 -movement_name = "Eyes Left" - -[node name="EyesRightRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 264.0 -offset_bottom = 304.0 -grow_horizontal = 1 -movement_bit = 7 -movement_name = "Eyes Right" - -[node name="HeadLeftRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 308.0 -offset_bottom = 348.0 -grow_horizontal = 1 -movement_bit = 8 -movement_name = "Head Left" - -[node name="HeadRightRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 352.0 -offset_bottom = 392.0 -grow_horizontal = 1 -movement_bit = 9 -movement_name = "Head Right" - -[node name="HeadUpRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 396.0 -offset_bottom = 436.0 -grow_horizontal = 1 -movement_bit = 10 -movement_name = "Head Up" - -[node name="LeftArmUpRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 440.0 -offset_bottom = 480.0 -grow_horizontal = 1 -movement_bit = 11 -movement_name = "Left Arm Up" - -[node name="LeftArmTwistRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 484.0 -offset_bottom = 524.0 -grow_horizontal = 1 -movement_bit = 12 -movement_name = "Left Arm Twist" - -[node name="LeftElbowRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 528.0 -offset_bottom = 568.0 -grow_horizontal = 1 -movement_bit = 13 -movement_name = "Left Elbow" - -[node name="RightArmUpRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 572.0 -offset_bottom = 612.0 -grow_horizontal = 1 -movement_bit = 14 -movement_name = "Right Arm Up" - -[node name="RightArmTwistRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 616.0 -offset_bottom = 656.0 -grow_horizontal = 1 -movement_bit = 15 -movement_name = "Right Arm Twist" - -[node name="RightElbowRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 660.0 -offset_bottom = 700.0 -grow_horizontal = 1 -movement_bit = 16 -movement_name = "Right Elbow" - -[node name="BodyLeftRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 704.0 -offset_bottom = 744.0 -grow_horizontal = 1 -movement_bit = 17 -movement_name = "Body Left" - -[node name="BodyRightRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 748.0 -offset_bottom = 788.0 -grow_horizontal = 1 -movement_bit = 18 -movement_name = "Body Right" - -[node name="BodyLeanRow" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 792.0 -offset_bottom = 832.0 -grow_horizontal = 1 -movement_bit = 19 -movement_name = "Body Lean" - -[node name="Unused20" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 836.0 -offset_bottom = 876.0 -grow_horizontal = 1 -movement_bit = 20 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused21" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 880.0 -offset_bottom = 920.0 -grow_horizontal = 1 -movement_bit = 21 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused22" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 924.0 -offset_bottom = 964.0 -grow_horizontal = 1 -movement_bit = 22 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused23" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 968.0 -offset_bottom = 1008.0 -grow_horizontal = 1 -movement_bit = 23 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused24" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 1012.0 -offset_bottom = 1052.0 -grow_horizontal = 1 -movement_bit = 24 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused25" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 1056.0 -offset_bottom = 1096.0 -grow_horizontal = 1 -movement_bit = 25 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused26" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 1100.0 -offset_bottom = 1140.0 -grow_horizontal = 1 -movement_bit = 26 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused27" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 1144.0 -offset_bottom = 1184.0 -grow_horizontal = 1 -movement_bit = 27 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused28" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 1188.0 -offset_bottom = 1228.0 -grow_horizontal = 1 -movement_bit = 28 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused29" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 1232.0 -offset_bottom = 1272.0 -grow_horizontal = 1 -movement_bit = 29 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused30" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 1276.0 -offset_bottom = 1316.0 -grow_horizontal = 1 -movement_bit = 30 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused31" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 1320.0 -offset_bottom = 1360.0 -grow_horizontal = 1 -movement_bit = 31 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" - -[node name="Unused32" parent="." instance=ExtResource("1_g2q8r")] -layout_mode = 1 -anchors_preset = -1 -offset_top = 1364.0 -offset_bottom = 1404.0 -grow_horizontal = 1 -movement_bit = 32 -movement_name = "Unused" -flow_path = "None" -animatronic_path = "None" diff --git a/Scenes/Stages/Helen House/HelenHouse.tscn b/Scenes/Stages/HelenHouse.tscn similarity index 77% rename from Scenes/Stages/Helen House/HelenHouse.tscn rename to Scenes/Stages/HelenHouse.tscn index 6dd600f..641471d 100644 --- a/Scenes/Stages/Helen House/HelenHouse.tscn +++ b/Scenes/Stages/HelenHouse.tscn @@ -1,30 +1,30 @@ [gd_scene load_steps=6 format=3 uid="uid://btre5j66mpchy"] -[ext_resource type="PackedScene" uid="uid://f0fkcs7erhop" path="res://Models/3stHelen.glb" id="2_e7oou"] -[ext_resource type="Script" uid="uid://bu68w4jnh0n2b" path="res://Scripts/HelenController.gd" id="3_e2vvs"] -[ext_resource type="PackedScene" uid="uid://bhoeqcsdb0fx2" path="res://Models/Room.glb" id="4_pv43k"] -[ext_resource type="PackedScene" uid="uid://btvomf1ayoypu" path="res://Models/Stage.glb" id="5_afett"] +[ext_resource type="PackedScene" uid="uid://f0fkcs7erhop" path="res://Models/3stHelen.glb" id="1_s1mol"] +[ext_resource type="Script" uid="uid://bu68w4jnh0n2b" path="res://Scripts/AnimatronicController.gd" id="2_odcb6"] +[ext_resource type="PackedScene" uid="uid://bhoeqcsdb0fx2" path="res://Models/HelenHouse-Room.glb" id="3_e7oou"] +[ext_resource type="PackedScene" uid="uid://btvomf1ayoypu" path="res://Models/HelenHouse-Stage.glb" id="4_e2vvs"] [sub_resource type="Environment" id="Environment_axk5g"] ambient_light_source = 1 [node name="HelenHouse" type="Node3D"] -[node name="3stHelen" parent="." instance=ExtResource("2_e7oou")] +[node name="Helen" parent="." instance=ExtResource("1_s1mol")] transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0.25, 0) -script = ExtResource("3_e2vvs") +script = ExtResource("2_odcb6") -[node name="Room" parent="." instance=ExtResource("4_pv43k")] +[node name="Room" parent="." instance=ExtResource("3_e7oou")] transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0) -[node name="Stage" parent="." instance=ExtResource("5_afett")] +[node name="Stage" parent="." instance=ExtResource("4_e2vvs")] transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0) -[node name="Camera 1" type="Camera3D" parent="."] +[node name="Angle 1" type="Camera3D" parent="."] transform = Transform3D(-1, 1.31602e-08, -1.50421e-07, 0, 0.996195, 0.0871557, 1.50996e-07, 0.0871557, -0.996195, 0, 1.5, -3) fov = 60.0 -[node name="Camera 2" type="Camera3D" parent="."] +[node name="Angle 2" type="Camera3D" parent="."] transform = Transform3D(-1, 1.31602e-08, -1.50421e-07, 0, 0.996195, 0.0871557, 1.50996e-07, 0.0871557, -0.996195, 0, 1.5, -1) fov = 60.0 diff --git a/Scripts/HelenController.gd b/Scripts/AnimatronicController.gd similarity index 75% rename from Scripts/HelenController.gd rename to Scripts/AnimatronicController.gd index 4caedd1..5dc202b 100644 --- a/Scripts/HelenController.gd +++ b/Scripts/AnimatronicController.gd @@ -4,27 +4,7 @@ var animation_player : AnimationPlayer var animation_tree : AnimationTree var blend_tree : AnimationNodeBlendTree -var movement_states = { - "Mouth": [false, 0.0, 0.0, 0.0], - "Left Ear": [false, 0.0, 0.0, 0.0], - "Right Ear": [false, 0.0, 0.0, 0.0], - "Left Eyelid": [false, 0.0, 0.0, 0.0], - "Right Eyelid": [false, 0.0, 0.0, 0.0], - "Eyes Left": [false, 0.0, 0.0, 0.0], - "Eyes Right": [false, 0.0, 0.0, 0.0], - "Head Left": [false, 0.0, 0.0, 0.0], - "Head Right": [false, 0.0, 0.0, 0.0], - "Head Up": [false, 0.0, 0.0, 0.0], - "Left Arm Up": [false, 0.0, 0.0, 0.0], - "Left Arm Twist": [false, 0.0, 0.0, 0.0], - "Left Elbow": [false, 0.0, 0.0, 0.0], - "Right Arm Up": [false, 0.0, 0.0, 0.0], - "Right Arm Twist": [false, 0.0, 0.0, 0.0], - "Right Elbow": [false, 0.0, 0.0, 0.0], - "Body Left": [false, 0.0, 0.0, 0.0], - "Body Right": [false, 0.0, 0.0, 0.0], - "Body Lean": [false, 0.0, 0.0, 0.0], -} +var movement_states : Dictionary func _ready(): animation_player = $AnimationPlayer @@ -37,10 +17,13 @@ func _ready(): animation_tree.active = true blend_tree = animation_tree.tree_root as AnimationNodeBlendTree - #animation_player.speed_scale = 0 + animation_player.speed_scale = 0 var animations = animation_player.get_animation_list() + for animation in animations: + movement_states[animation] = [false, 0.0, 0.0, 0.0] + var prev_name = "Anim_" + animations[0] var old_time_name = "Time_" + animations[0] var old_seek_name = "Seek_" + animations[0] @@ -78,8 +61,8 @@ func _ready(): var add_node := AnimationNodeAdd2.new() blend_tree.add_node(add_name, add_node) - blend_tree.connect_node(time_name,0,anim_name) - blend_tree.connect_node(seek_name,0,time_name) + blend_tree.connect_node(time_name, 0, anim_name) + blend_tree.connect_node(seek_name, 0, time_name) blend_tree.connect_node(add_name, 0, prev_name) blend_tree.connect_node(add_name, 1, seek_name) prev_name = add_name diff --git a/Scripts/HelenController.gd.uid b/Scripts/AnimatronicController.gd.uid similarity index 100% rename from Scripts/HelenController.gd.uid rename to Scripts/AnimatronicController.gd.uid diff --git a/Scripts/CameraButton.gd b/Scripts/CameraButton.gd new file mode 100644 index 0000000..ef99c04 --- /dev/null +++ b/Scripts/CameraButton.gd @@ -0,0 +1,10 @@ +extends Control + +@export var camera : String +@export var base_scene_path : String + +func _ready() -> void: + $Button.text = camera + +func _on_button_pressed() -> void: + get_node(base_scene_path + camera).current = true; diff --git a/Scripts/CameraButton.gd.uid b/Scripts/CameraButton.gd.uid new file mode 100644 index 0000000..18a4fd1 --- /dev/null +++ b/Scripts/CameraButton.gd.uid @@ -0,0 +1 @@ +uid://dfoog0y2bh7tk diff --git a/Scripts/EditorScreen.gd b/Scripts/EditorScreen.gd index efbc962..75ae821 100644 --- a/Scripts/EditorScreen.gd +++ b/Scripts/EditorScreen.gd @@ -6,15 +6,66 @@ var index : int = 0 var playback_rate : int = 1 var transport_enabled : bool = false var erase_validated : bool = false +var cam_index : int = 0 var showtape_loaded : bool = false var show_name : String -var current_stage : String = "Helen House" +var current_stage : String var stages_info = { - # stage name, custom (bool), bits, flyout path, movement row table path, base scene path, ust character flag, ust stage flag - "Helen House": [true, 32, "res://Scenes/Stages/Helen House/HelenHouseFlyout.tscn", "res://Scenes/Stages/Helen House/HelenHouseMovementRows.tscn", "res://Scenes/Stages/Helen House/HelenHouse.tscn", "Mitzi/Helen", "Rockafire Explosion/3-Stage (Single Character)"] + "Helen House": + { + "bits": 32, + "scene": "res://Scenes/Stages/HelenHouse.tscn", + "scene_ref_base": "SubViewport/HelenHouse/", + "camera_count": 2, + + "ust_character": "Mitzi/Helen", + "ust_stage": "Rockafire Explosion/3-Stage (Single Character)", + + "bit_mapping": + { + "Helen": + { + "Mouth": [3.0, 2.0], + "Left Ear": [3.5, 1.5], + "Right Ear": [3.5, 1.5], + "Left Eyelid": [1.5, 2.0], + "Right Eyelid": [1.5, 2.0], + "Eyes Left": [3.5, 1.5], + "Eyes Right": [3.5, 1.5], + "Head Left": [1.5, 1.5], + "Head Right": [1.5, 1.5], + "Head Up": [1.0, 1.0], + "Left Arm Up": [0.8, 0.6], + "Left Arm Twist": [0.8, 0.8], + "Left Elbow": [1.0, 1.0], + "Right Arm Up": [0.8, 0.6], + "Right Arm Twist": [0.8, 0.8], + "Right Elbow": [1.0, 1.0], + "Body Left": [0.7, 0.7], + "Body Right": [0.7, 0.7], + "Body Lean": [1.0, 0.8], + }, + "None": + { + "Unused 20": ["None"], + "Unused 21": ["None"], + "Unused 22": ["None"], + "Unused 23": ["None"], + "Unused 24": ["None"], + "Unused 25": ["None"], + "Unused 26": ["None"], + "Unused 27": ["None"], + "Unused 28": ["None"], + "Unused 29": ["None"], + "Unused 30": ["None"], + "Unused 31": ["None"], + "Unused 32": ["None"], + } + } + } } signal step(amount: int) @@ -23,13 +74,74 @@ signal end_recording() signal return_to_zero() signal erase_all() +func reload_stage(stage_previously_loaded: bool) -> void: + $SequencerPanel/TimelinePanel/VScrollBar.value = 0 + if (stage_previously_loaded): + $CameraPreview.visible = false + for row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children(): + row.queue_free() + for row in $FlyoutPanel/FlowControls/InvisibleMask.get_children(): + row.queue_free() + $SubViewport.get_child(0).queue_free() + var stage = load(stages_info[current_stage]["scene"]).instantiate() + $SubViewport.add_child(stage) + var cam_offset = 4 + for i in range(1, stages_info[current_stage]["camera_count"]+1): + var camera_button = load("res://Scenes/GUI/Controls/CameraButton.tscn").instantiate() + camera_button.camera = "Angle " + str(i) + camera_button.base_scene_path = "../../../" + stages_info[current_stage]["scene_ref_base"] + camera_button.position.y = cam_offset + cam_offset += 36 + $FlyoutPanel/Camera.add_child(camera_button) + $FlyoutPanel/Camera.size.y = cam_offset + var rows_offset = 0 + var flows_offset = 0 + var bit_idx = 1 + var flow_count = 0 + for bot in stages_info[current_stage]["bit_mapping"]: + for movement in stages_info[current_stage]["bit_mapping"][bot]: + + var movement_flows = stages_info[current_stage]["bit_mapping"][bot][movement] + if (movement_flows[0] is not String): + var flow_control = load("res://Scenes/GUI/Controls/FlowControl.tscn").instantiate() + flow_control.position.y = flows_offset + flow_control.name = bot + " " + movement + flow_control.in_value = movement_flows[0] + flow_control.out_value = movement_flows[1] + $FlyoutPanel/FlowControls/InvisibleMask/FlowHandle.add_child(flow_control) + flows_offset += 44 + flow_count += 1 + + var row = load("res://Scenes/GUI/Controls/MovementRow.tscn").instantiate() + row.position.y = rows_offset + row.base_scene_path = "../../../../../" + stages_info[current_stage]["scene_ref_base"] + row.animatronic = bot + if (movement_flows[0] is String): row.flow_path = "None" + row.movement_bit = bit_idx + row.movement_name = movement + $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.add_child(row) + + var movement_button = load("res://Scenes/GUI/Controls/MovementButton.tscn").instantiate() + movement_button.position.y = rows_offset + movement_button.base_scene_path = "../../../../../" + stages_info[current_stage]["scene_ref_base"] + movement_button.animatronic = bot + if (movement_flows[0] is String): movement_button.flow_path = "None" + movement_button.movement_name = movement + $FlyoutPanel/Movements/InvisibleMask/MovementHandle.add_child(movement_button) + + rows_offset += 44 + bit_idx += 1 + $SequencerPanel/TimelinePanel/VScrollBar.max_value = stages_info[current_stage]["bits"] - 1 + $FlyoutPanel/Movements/VScrollBar.max_value = stages_info[current_stage]["bits"] - 1 + $FlyoutPanel/FlowControls/VScrollBar.max_value = flow_count - 1 + $CameraPreview.visible = true + func update_time_label() -> void: var frames = index % 60 var seconds = floori(index/60) % 60 var minutes = floori(index/3600) % 60 var hours = floori(index/216000) $SequencerPanel/TransportControls/TimeLabel.text = "%d:%02d:%02d:%02d" % [hours, minutes, seconds, frames] - #$SequencerPanel/TransportControls/TimeLabel.text = str(index) func set_transport_enabled(enabled: bool): $SequencerPanel/TransportControls/Centered/StepBackwardsButton.disabled = !enabled @@ -48,6 +160,12 @@ func _ready() -> void: erase_all.connect(_erase_all) $MenuBar/MenuButton.get_popup().id_pressed.connect(_showtape_menu_button_pressed) OS.request_permissions() + current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) + reload_stage(false) + +func _on_stage_selector_item_selected(_index: int) -> void: + current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) + reload_stage(true) func _showtape_menu_button_pressed(id: int) -> void: match (id): @@ -110,7 +228,7 @@ func _on_showtape_load_open_button_pressed() -> void: var file = FileAccess.open($ShowtapeLoadScreen/DialogPanel/InFilePath.text.strip_edges(), FileAccess.READ) var content = file.get_as_text() var header = content.split(";")[0].split(",") - if ((int(header[3]) != stages_info[current_stage][1]) || (header[4] != stages_info[current_stage][6])|| (header[5] != stages_info[current_stage][5])): + if ((int(header[3]) != stages_info[current_stage]["bits"]) || (header[4] != stages_info[current_stage]["ust_stage"])|| (header[5] != stages_info[current_stage]["ust_character"])): $IncorrectShowtapeDialog.dialog_text = "This showtape is not compatible with the currently selected stage.\nShowtape stage type: %s\nShowtape character(s): %s" % [header[4], header[5]] $IncorrectShowtapeDialog.show() return @@ -151,6 +269,9 @@ func _input(event: InputEvent) -> void: if event.is_action_pressed("toggle_editor_screen"): $CameraPreview.visible = !$CameraPreview.visible; $CameraFullScreen.visible = !$CameraFullScreen.visible; + if (event.is_action_pressed("cycle_camera_angle")): + cam_index += 1 + get_node("SubViewport/HelenHouse/Angle " + str((cam_index % stages_info[current_stage]["camera_count"])+1)).current = true if (transport_enabled): if event.is_action_pressed("sequencer_play_pause"): if (playing): _on_pause_button_pressed() @@ -214,7 +335,13 @@ func _on_input_eater_pressed() -> void: $ShowtapeSaveScreen.visible = false func _on_v_scroll_bar_value_changed(value: float) -> void: - $SequencerPanel/TimelinePanel/InvisibleMask/RowsHandle.position.y = value * -44 + $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.position.y = value * -44 + +func _on_flow_v_scroll_bar_value_changed(value: float) -> void: + $FlyoutPanel/FlowControls/InvisibleMask/FlowHandle.position.y = value * -44 + +func _on_movement_v_scroll_bar_value_changed(value: float) -> void: + $FlyoutPanel/Movements/InvisibleMask/MovementHandle.position.y = value * -44 func _erase_all() -> void: playing = false @@ -229,6 +356,21 @@ func _erase_all() -> void: showtape_loaded = false $MenuBar/EditingLabel.text = "No showtape loaded." +func _on_movements_flyout_button_toggled(toggled_on: bool) -> void: + $FlyoutPanel/Movements.visible = toggled_on + +func _on_flows_flyout_button_toggled(toggled_on: bool) -> void: + $FlyoutPanel/FlowControls.visible = toggled_on + +func _on_camera_flyout_button_toggled(toggled_on: bool) -> void: + $FlyoutPanel/Camera.visible = toggled_on + +func _on_cosmetics_flyout_button_toggled(toggled_on: bool) -> void: + $FlyoutPanel/Cosmetics.visible = toggled_on + +func _on_stage_flyout_button_toggled(toggled_on: bool) -> void: + $FlyoutPanel/Stage.visible = toggled_on + func _on_play_button_pressed() -> void: playback_rate = 1 @@ -294,14 +436,14 @@ func save_data() -> String: var write_out : String = "" var temp_data = [] var longest_channel = 0 - for movement_row in $SequencerPanel/TimelinePanel/InvisibleMask/RowsHandle.get_child(0).get_children(): + for movement_row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children(): temp_data.append(movement_row.movements) if (movement_row.movements.size() > longest_channel): longest_channel = movement_row.movements.size() for i in range(longest_channel+1): var frame_byte = 0 - for j in range(stages_info[current_stage][1]): + for j in range(stages_info[current_stage]["bits"]): if (index_get_safe(i, temp_data[j])): frame_byte += 1 << j; - write_out += ("%0"+str(stages_info[current_stage][1]/4)+"X,") % frame_byte + write_out += ("%0"+str(stages_info[current_stage]["bits"]/4)+"X,") % frame_byte return write_out func plot_data(data: String): @@ -309,13 +451,13 @@ func plot_data(data: String): for frame_string in data.split(","): if (frame_string == ""): continue var frame_byte = frame_string.hex_to_int() - for i in range(stages_info[current_stage][1]): + for i in range(stages_info[current_stage]["bits"]): var er = false if ((frame_byte & int(pow(2, i))) >> i == 1): er = true - $SequencerPanel/TimelinePanel/InvisibleMask/RowsHandle.get_child(0).get_child(i).etching = er + $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_child(i).etching = er step.emit(1) - for movement_row in $SequencerPanel/TimelinePanel/InvisibleMask/RowsHandle.get_child(0).get_children(): + for movement_row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children(): movement_row.etching = false end_recording.emit() return_to_zero.emit() diff --git a/Scripts/FlowControl.gd b/Scripts/FlowControl.gd new file mode 100644 index 0000000..94aa4ce --- /dev/null +++ b/Scripts/FlowControl.gd @@ -0,0 +1,34 @@ +extends Control + +@export var in_value : float = 1.0 +@export var out_value : float = 1.0 + +signal in_value_updated(new_value: float) +signal out_value_updated(new_value: float) + +func _ready() -> void: + $Panel/Label.text = self.name + $Panel/InSlider.value = self.in_value + $Panel/InStepper.value = self.in_value + $Panel/OutSlider.value = self.out_value + $Panel/OutStepper.value = self.out_value + +func _on_in_slider_value_changed(value: float) -> void: + self.in_value = $Panel/InSlider.value + $Panel/InStepper.value = value + in_value_updated.emit(value) + +func _on_in_stepper_value_changed(value: float) -> void: + self.in_value = $Panel/InStepper.value + $Panel/InSlider.value = value + in_value_updated.emit(value) + +func _on_out_slider_value_changed(value: float) -> void: + self.out_value = $Panel/OutSlider.value + $Panel/OutStepper.value = value + out_value_updated.emit(value) + +func _on_out_stepper_value_changed(value: float) -> void: + self.out_value = $Panel/OutStepper.value + $Panel/OutSlider.value = value + out_value_updated.emit(value) diff --git a/Scripts/FlowSlider.gd.uid b/Scripts/FlowControl.gd.uid similarity index 100% rename from Scripts/FlowSlider.gd.uid rename to Scripts/FlowControl.gd.uid diff --git a/Scripts/FlowSlider.gd b/Scripts/FlowSlider.gd deleted file mode 100644 index 3bc2838..0000000 --- a/Scripts/FlowSlider.gd +++ /dev/null @@ -1,13 +0,0 @@ -extends Control - -@export var value : float = 1.0 - -signal value_updated(new_value: float) - -func _ready() -> void: - $Panel/Slider.value = self.value - -func _on_slider_value_changed(value: float) -> void: - self.value = $Panel/Slider.value - $Panel/ValueLabel.text = str(self.value) - value_updated.emit(value) diff --git a/Scripts/HelenHouseFlyout.gd b/Scripts/HelenHouseFlyout.gd index eab8222..7dbd69e 100644 --- a/Scripts/HelenHouseFlyout.gd +++ b/Scripts/HelenHouseFlyout.gd @@ -3,12 +3,12 @@ extends Control signal movement_in(movement, rate) signal movement_out(movement, rate) -var cam_index : int = 0 + func _ready() -> void: - var animatronic = get_node("../SubViewport/HelenHouse/3stHelen") - movement_in.connect(animatronic._movement_in) - movement_out.connect(animatronic._movement_out) + #var animatronic = get_node("../SubViewport/HelenHouse/Helen") + #movement_in.connect(animatronic._movement_in) + #movement_out.connect(animatronic._movement_out) movement_in.connect(self._movement_in) movement_out.connect(self._movement_out) @@ -23,156 +23,8 @@ func _movement_in(movement, _rate): func _movement_out(movement, _rate): get_node("Movements/IndicatorLights/" + movement).turn_off(); -func _on_movements_flyout_button_toggled(toggled_on: bool) -> void: - $Movements.visible = toggled_on - -func _on_flows_flyout_button_toggled(toggled_on: bool) -> void: - $FlowControls.visible = toggled_on - -func _on_camera_flyout_button_toggled(toggled_on: bool) -> void: - $Camera.visible = toggled_on - -func _on_cosmetics_flyout_button_toggled(toggled_on: bool) -> void: - $Cosmetics.visible = toggled_on - -func _on_stage_flyout_button_toggled(toggled_on: bool) -> void: - $Stage.visible = toggled_on - func _on_angle_1_button_pressed() -> void: get_node("../SubViewport/HelenHouse/Camera 1").current = true func _on_angle_2_button_pressed() -> void: get_node("../SubViewport/HelenHouse/Camera 2").current = true - - -func _on_mouth_button_down() -> void: - movement_in.emit("Mouth", $FlowControls/InFlows/MouthFlow.value) - -func _on_mouth_button_up() -> void: - movement_out.emit("Mouth", $FlowControls/OutFlows/MouthFlow.value) - - -func _on_left_ear_button_down() -> void: - movement_in.emit("Left Ear", $FlowControls/InFlows/LeftEarFlow.value) - -func _on_left_ear_button_up() -> void: - movement_out.emit("Left Ear", $FlowControls/OutFlows/LeftEarFlow.value) - - -func _on_right_ear_button_down() -> void: - movement_in.emit("Right Ear", $FlowControls/InFlows/RightEarFlow.value) - -func _on_right_ear_button_up() -> void: - movement_out.emit("Right Ear", $FlowControls/OutFlows/RightEarFlow.value) - - -func _on_left_eyelid_button_down() -> void: - movement_in.emit("Left Eyelid", $FlowControls/InFlows/LeftEyelidFlow.value) - -func _on_left_eyelid_button_up() -> void: - movement_out.emit("Left Eyelid", $FlowControls/OutFlows/LeftEyelidFlow.value) - - -func _on_right_eyelid_button_down() -> void: - movement_in.emit("Right Eyelid", $FlowControls/InFlows/RightEyelidFlow.value) - -func _on_right_eyelid_button_up() -> void: - movement_out.emit("Right Eyelid", $FlowControls/OutFlows/RightEyelidFlow.value) - - -func _on_eyes_left_button_down() -> void: - movement_in.emit("Eyes Left", $FlowControls/InFlows/EyesLeftFlow.value) - -func _on_eyes_left_button_up() -> void: - movement_out.emit("Eyes Left", $FlowControls/OutFlows/EyesLeftFlow.value) - - -func _on_eyes_right_button_down() -> void: - movement_in.emit("Eyes Right", $FlowControls/InFlows/EyesRightFlow.value) - -func _on_eyes_right_button_up() -> void: - movement_out.emit("Eyes Right", $FlowControls/OutFlows/EyesRightFlow.value) - - -func _on_head_left_button_down() -> void: - movement_in.emit("Head Left", $FlowControls/InFlows/HeadLeftFlow.value) - -func _on_head_left_button_up() -> void: - movement_out.emit("Head Left", $FlowControls/OutFlows/HeadLeftFlow.value) - - -func _on_head_right_button_down() -> void: - movement_in.emit("Head Right", $FlowControls/InFlows/HeadRightFlow.value) - -func _on_head_right_button_up() -> void: - movement_out.emit("Head Right", $FlowControls/OutFlows/HeadRightFlow.value) - - -func _on_head_up_button_down() -> void: - movement_in.emit("Head Up", $FlowControls/InFlows/HeadUpFlow.value) - -func _on_head_up_button_up() -> void: - movement_out.emit("Head Up", $FlowControls/OutFlows/HeadUpFlow.value) - - -func _on_left_arm_up_button_down() -> void: - movement_in.emit("Left Arm Up", $FlowControls/InFlows/LeftArmUpFlow.value) - -func _on_left_arm_up_button_up() -> void: - movement_out.emit("Left Arm Up", $FlowControls/OutFlows/LeftArmUpFlow.value) - - -func _on_left_arm_twist_button_down() -> void: - movement_in.emit("Left Arm Twist", $FlowControls/InFlows/LeftArmTwistFlow.value) - -func _on_left_arm_twist_button_up() -> void: - movement_out.emit("Left Arm Twist", $FlowControls/OutFlows/LeftArmTwistFlow.value) - - -func _on_left_elbow_button_down() -> void: - movement_in.emit("Left Elbow", $FlowControls/InFlows/LeftElbowFlow.value) - -func _on_left_elbow_button_up() -> void: - movement_out.emit("Left Elbow", $FlowControls/OutFlows/LeftElbowFlow.value) - - -func _on_right_arm_up_button_down() -> void: - movement_in.emit("Right Arm Up", $FlowControls/InFlows/RightArmUpFlow.value) - -func _on_right_arm_up_button_up() -> void: - movement_out.emit("Right Arm Up", $FlowControls/OutFlows/RightArmUpFlow.value) - - -func _on_right_arm_twist_button_down() -> void: - movement_in.emit("Right Arm Twist", $FlowControls/InFlows/RightArmTwistFlow.value) - -func _on_right_arm_twist_button_up() -> void: - movement_out.emit("Right Arm Twist", $FlowControls/OutFlows/RightArmTwistFlow.value) - - -func _on_right_elbow_button_down() -> void: - movement_in.emit("Right Elbow", $FlowControls/InFlows/RightElbowFlow.value) - -func _on_right_elbow_button_up() -> void: - movement_out.emit("Right Elbow", $FlowControls/OutFlows/RightElbowFlow.value) - - -func _on_body_left_button_down() -> void: - movement_in.emit("Body Left", $FlowControls/InFlows/BodyLeftFlow.value) - -func _on_body_left_button_up() -> void: - movement_out.emit("Body Left", $FlowControls/OutFlows/BodyLeftFlow.value) - - -func _on_body_right_button_down() -> void: - movement_in.emit("Body Right", $FlowControls/InFlows/BodyRightFlow.value) - -func _on_body_right_button_up() -> void: - movement_out.emit("Body Right", $FlowControls/OutFlows/BodyRightFlow.value) - - -func _on_body_lean_button_down() -> void: - movement_in.emit("Body Lean", $FlowControls/InFlows/BodyLeanFlow.value) - -func _on_body_lean_button_up() -> void: - movement_out.emit("Body Lean", $FlowControls/OutFlows/BodyLeanFlow.value) diff --git a/Scripts/IndicatorLight.gd b/Scripts/IndicatorLight.gd deleted file mode 100644 index bbf57ae..0000000 --- a/Scripts/IndicatorLight.gd +++ /dev/null @@ -1,22 +0,0 @@ -extends Control - -@export var on: bool = false - -func _ready() -> void: - $Green.visible = self.on - -func turn_on() -> void: - self.on = true - $Green.visible = self.on - -func turn_off() -> void: - self.on = false - $Green.visible = self.on - -func toggle() -> void: - self.on = !self.on - $Green.visible = self.on - -func set_state(value: bool) -> void: - self.on = value - $Green.visible = self.on diff --git a/Scripts/MovementButton.gd b/Scripts/MovementButton.gd new file mode 100644 index 0000000..31bd90b --- /dev/null +++ b/Scripts/MovementButton.gd @@ -0,0 +1,39 @@ +extends Control + +signal movement_in(movement, rate) +signal movement_out(movement, rate) + +@export var animatronic : String +@export var base_scene_path : String +@export var flow_path : String = "../../../../../FlyoutPanel/FlowControls/InvisibleMask/FlowHandle/" +@export var movement_name : String + +var in_flow : float = 1.0 +var out_flow : float = 1.0 + +func _ready() -> void: + $Panel/Button.text = animatronic + " " + movement_name + if (animatronic != "None"): + var animatronic_node = get_node(base_scene_path + animatronic) + movement_in.connect(animatronic_node._movement_in) + movement_out.connect(animatronic_node._movement_out) + if (flow_path != "None"): + var flow_control = get_node(flow_path + animatronic + " " + movement_name) + flow_control.in_value_updated.connect(self._update_in_flow) + flow_control.out_value_updated.connect(self._update_out_flow) + in_flow = flow_control.in_value + out_flow = flow_control.out_value + +func _update_in_flow(new_value: float) -> void: + in_flow = new_value + +func _update_out_flow(new_value: float) -> void: + out_flow = new_value + +func _on_button_button_down() -> void: + movement_in.emit(movement_name, in_flow) + $Panel/IndicatorPanel/Green.visible = true + +func _on_button_button_up() -> void: + movement_out.emit(movement_name, out_flow) + $Panel/IndicatorPanel/Green.visible = false diff --git a/Scripts/IndicatorLight.gd.uid b/Scripts/MovementButton.gd.uid similarity index 100% rename from Scripts/IndicatorLight.gd.uid rename to Scripts/MovementButton.gd.uid diff --git a/Scripts/MovementRow.gd b/Scripts/MovementRow.gd index 4c9716c..60851b0 100644 --- a/Scripts/MovementRow.gd +++ b/Scripts/MovementRow.gd @@ -2,8 +2,9 @@ extends Panel @export var movement_bit : int = 0 @export var movement_name : String = "Name" -@export var flow_path : String = "../../../../../../HelenHouseFlyout/FlowControls/" -@export var animatronic_path : String = "../../../../../../SubViewport/HelenHouse/3stHelen" +@export var flow_path : String = "../../../../../FlyoutPanel/FlowControls/InvisibleMask/FlowHandle/" +@export var base_scene_path : String +@export var animatronic : String @export var movements : Array[bool] @export var etching: bool = false @@ -54,7 +55,7 @@ func check_at_index(cindex: int) -> bool: return out func _step(amount: int): - if (recording): + if (recording && !$LockButton.button_pressed): if (etching): set_at_current() else: unset_at_current() if (playing): @@ -91,7 +92,8 @@ func _end_playback(): playing = false func update_text() -> void: - $Button.text = "%d - %s (%s)" % [movement_bit, movement_name, key_binding.as_text() if key_binding.keycode != 0 else "Unbound"] + if (animatronic == "None"): $Button.text = "%d - Unused (%s)" % [movement_bit, key_binding.as_text() if key_binding.keycode != 0 else "Unbound"] + else: $Button.text = "%d - %s %s (%s)" % [movement_bit, animatronic, movement_name, key_binding.as_text() if key_binding.keycode != 0 else "Unbound"] func _update_in_flow(new_value: float) -> void: in_flow = new_value @@ -101,19 +103,18 @@ func _update_out_flow(new_value: float) -> void: func _ready() -> void: if (flow_path != "None"): - var if_node = get_node(flow_path + "InFlows/" + movement_name.replace(" ", "") + "Flow") - var of_node = get_node(flow_path + "OutFlows/" + movement_name.replace(" ", "") + "Flow") - if_node.value_updated.connect(self._update_in_flow) - of_node.value_updated.connect(self._update_out_flow) - in_flow = if_node.value - out_flow = of_node.value - if (animatronic_path != "None"): - var animatronic = get_node(animatronic_path) - movement_in.connect(animatronic._movement_in) - movement_out.connect(animatronic._movement_out) + var flow_control = get_node(flow_path + animatronic + " " + movement_name) + flow_control.in_value_updated.connect(self._update_in_flow) + flow_control.out_value_updated.connect(self._update_out_flow) + in_flow = flow_control.in_value + out_flow = flow_control.out_value + if (animatronic != "None"): + var animatronic_node = get_node(base_scene_path + animatronic) + movement_in.connect(animatronic_node._movement_in) + movement_out.connect(animatronic_node._movement_out) movement_in.connect(self._movement_in) movement_out.connect(self._movement_out) - var editor = get_node("../../../../../../") + var editor = get_node("../../../../../") editor.step.connect(_step) editor.start_recording.connect(_start_recording) editor.end_recording.connect(_end_recording) diff --git a/UI/SmallLock.png b/UI/SmallLock.png new file mode 100644 index 0000000..b5bc9f0 Binary files /dev/null and b/UI/SmallLock.png differ diff --git a/UI/SmallLock.png.import b/UI/SmallLock.png.import new file mode 100644 index 0000000..ea363c7 --- /dev/null +++ b/UI/SmallLock.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d007317123e27" +path="res://.godot/imported/SmallLock.png-0c9e5ce04a7421f0922124b2fb1d8696.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://UI/SmallLock.png" +dest_files=["res://.godot/imported/SmallLock.png-0c9e5ce04a7421f0922124b2fb1d8696.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/project.godot b/project.godot index 08e5676..b7a4582 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Pneumatic Plaything" -config/version="v0.3" +config/version="v0.4" run/main_scene="uid://oiehbor0dlqx" config/features=PackedStringArray("4.4", "GL Compatibility") boot_splash/show_image=false @@ -392,6 +392,12 @@ sequencer_home={ , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } +fullscreen={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194342,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":true,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} [rendering]