General UI Work

This commit is contained in:
2025-12-03 23:21:29 -08:00
parent 34742d568e
commit 6f90a0985a
58 changed files with 1999 additions and 1621 deletions

View File

@@ -12,7 +12,7 @@ using Zennysoft.Game.Implementation;
namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))]
public partial class InputMapper : PanelContainer
public partial class InputMapper : Control
{
public override void _Notification(int what) => this.Notify(what);
@@ -147,6 +147,8 @@ public partial class InputMapper : PanelContainer
VisibilityChanged += InputMapper_VisibilityChanged;
FocusEntered += InputMapper_FocusEntered;
InputHelper.JoypadInputChanged += (string action, InputEvent input) =>
{
if (!_remappingController)
@@ -191,6 +193,11 @@ public partial class InputMapper : PanelContainer
joyPadButton.Disabled = true;
}
private void InputMapper_FocusEntered()
{
MoveForwardKeyboard.GrabFocus();
}
private void CancelRemap()
{
var allButtons = _actionKeyMap.Concat<InputMapButton>(_actionJoyMap);

View File

@@ -1,25 +1,24 @@
[gd_scene load_steps=4 format=3 uid="uid://dk5esf6mm6kte"]
[gd_scene load_steps=5 format=3 uid="uid://dk5esf6mm6kte"]
[ext_resource type="Script" uid="uid://c6lw5yp8p0wb5" path="res://src/options/InputMapper.cs" id="1_rwvs3"]
[ext_resource type="Script" uid="uid://b70br20xue678" path="res://src/options/KeyboardRemapButton.cs" id="2_fmxfy"]
[ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="2_yis0i"]
[ext_resource type="Script" uid="uid://bo7vk56h1lr07" path="res://src/options/JoypadRemapButton.cs" id="3_yis0i"]
[node name="InputMapper" type="PanelContainer"]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -451.0
offset_top = -451.0
offset_right = 449.0
offset_bottom = 449.0
grow_horizontal = 2
grow_vertical = 2
[node name="InputMapper" type="Control"]
layout_mode = 3
anchors_preset = 0
offset_right = 1280.0
offset_bottom = 720.0
script = ExtResource("1_rwvs3")
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 2
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 0
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
@@ -27,8 +26,10 @@ theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
custom_minimum_size = Vector2(50, 50)
layout_mode = 2
theme_override_constants/separation = 20
alignment = 1
[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
@@ -48,6 +49,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Actions"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Header"]
@@ -58,6 +60,7 @@ size_flags_horizontal = 3
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Keyboard"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 1
[node name="Control2" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Header"]
@@ -68,6 +71,7 @@ size_flags_horizontal = 3
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Controller"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 1
[node name="Move Forward" type="HBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
@@ -77,6 +81,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Move Forward"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Forward"]
@@ -106,6 +111,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Move Left"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Left"]
@@ -135,6 +141,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Move Right"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Right"]
@@ -164,6 +171,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Move Backward"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Backward"]
@@ -193,6 +201,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Strafe Left"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Left"]
@@ -222,6 +231,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Strafe Right"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Right"]
@@ -251,6 +261,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Attack"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Attack"]
@@ -280,6 +291,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Interact"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Interact"]
@@ -309,6 +321,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Open Inventory"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Open Inventory"]
@@ -338,6 +351,7 @@ layout_mode = 2
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Sort Inventory"
label_settings = ExtResource("2_yis0i")
horizontal_alignment = 2
[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/ScrollContainer/ActionList/Sort Inventory"]

View File

@@ -16,6 +16,9 @@ public partial class OptionsData : Node
[Save("SFXVolume")]
public required double SFXVolumeLevel { get; set; }
[Save("AudioDevice")]
public required string AudioDeviceName { get; set; }
[Save("ScreenResolution")]
public required int ScreenResolution { get; set; }

View File

@@ -1,7 +1,6 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using NathanHoad;
using System;
using System.Linq;
@@ -13,29 +12,42 @@ public partial class OptionsMenu : Control
public override void _Notification(int what) => this.Notify(what);
[Node] public OptionButton ResolutionOptions { get; set; }
[Node] public OptionButton SoundDeviceOptions { get; set; }
[Node] public HSlider MasterVolumeSlider { get; set; }
[Node] public HSlider MusicVolumeSlider { get; set; }
[Node] public HSlider SFXVolumeSlider { get; set; }
[Node] public Button SELabel { get; set; }
[Node] public Button MusicLabel { get; set; }
[Node] public Button MasterLabel { get; set; }
[Node] public InputMapper Controller { get; set; }
[Node] public TabContainer TabContainer { get; set; }
[Node] public CheckBox SkipOpeningCSCheck { get; set; }
[Node] public Button DeleteSaveButton { get; set; }
[Node] public CanvasLayer CanvasLayer { get; set; }
[Node] public Control ConfirmDeletePopup { get; set; }
[Node] public Button YesDeleteButton { get; set; }
[Node] public Button NoDeleteButton { get; set; }
[Node] public Control Game { get; set; }
[Node] public Control Audio { get; set; }
[Node] public Button GameTab { get; set; }
[Node] public Button AudioTab { get; set; }
[Node] public Button ControllerTab { get; set; }
private TabOption _currentTab = TabOption.Game;
public OptionsData OptionsData;
private int _masterBusIndex;
private int _musicBusIndex;
private int _sfxBusIndex;
private Control _currentFocus;
private readonly DisplayServer.WindowMode[] _windowModes = [DisplayServer.WindowMode.Windowed, DisplayServer.WindowMode.Maximized, DisplayServer.WindowMode.Fullscreen, DisplayServer.WindowMode.ExclusiveFullscreen];
[Signal] public delegate void OptionsMenuExitedEventHandler();
@@ -49,11 +61,22 @@ public partial class OptionsMenu : Control
ResolutionOptions.AddItem("Exclusive Fullscreen");
ResolutionOptions.Select(0);
var devices = AudioServer.GetOutputDeviceList();
foreach (var device in devices)
SoundDeviceOptions.AddItem(device);
SoundDeviceOptions.Select(0);
SoundDeviceOptions.AllowReselect = true;
SoundDeviceOptions.Pressed += SoundDeviceOptions_Pressed;
SoundDeviceOptions.ItemSelected += ChangeAudioDevice;
OptionsData = new OptionsData()
{
MasterVolumeLevel = MasterVolumeSlider.Value,
MusicVolumeLevel = MusicVolumeSlider.Value,
SFXVolumeLevel = SFXVolumeSlider.Value,
AudioDeviceName = "Default",
ScreenResolution = ResolutionOptions.GetSelectedId(),
SkipCutscene = SkipOpeningCSCheck.ButtonPressed
};
@@ -70,14 +93,127 @@ public partial class OptionsMenu : Control
ResolutionOptions.ItemSelected += ResolutionOptions_ItemSelected;
TabContainer.TabChanged += TabContainer_TabChanged;
TabContainer.TabSelected += TabContainer_TabChanged;
_masterBusIndex = AudioServer.GetBusIndex("Master");
_musicBusIndex = AudioServer.GetBusIndex("MUSIC");
_sfxBusIndex = AudioServer.GetBusIndex("SFX");
VisibilityChanged += OptionsMenu_VisibilityChanged;
GameTab.FocusEntered += Game_FocusEntered;
AudioTab.FocusEntered += Audio_FocusEntered;
ControllerTab.FocusEntered += Controller_FocusEntered;
SELabel.Pressed += SELabel_Pressed;
MusicLabel.Pressed += MusicLabel_Pressed;
MasterLabel.Pressed += MasterLabel_Pressed;
GetViewport().GuiFocusChanged += OptionsMenu_GuiFocusChanged;
}
public override void _Input(InputEvent @event)
{
if (!Visible)
return;
if (Input.IsActionJustPressed(GameInputs.Interact) || Input.IsActionJustPressed(GameInputs.Attack))
{
if (SFXVolumeSlider.HasFocus())
{
SELabel.GrabFocus();
AcceptEvent();
return;
}
if (MusicVolumeSlider.HasFocus())
{
MusicLabel.GrabFocus();
AcceptEvent();
return;
}
if (MasterVolumeSlider.HasFocus())
{
MasterLabel.GrabFocus();
AcceptEvent();
return;
}
}
if (Input.IsActionJustPressed(GameInputs.Interact) || Input.IsActionJustPressed(GameInputs.Pause))
{
if (GameTab.HasFocus() || AudioTab.HasFocus() || ControllerTab.HasFocus())
{
AcceptEvent();
SaveAndExitMenu();
}
else
{
var path = GetPathTo(_currentFocus).ToString();
if (path.Contains("Game"))
GameTab.GrabFocus();
else if (path.Contains("Audio"))
AudioTab.GrabFocus();
else if (path.Contains("Controller"))
ControllerTab.GrabFocus();
}
}
}
private void ResolutionOptions_ItemSelected(long index)
{
var resolutionIndex = ResolutionOptions.GetSelectedId();
OptionsData.ScreenResolution = resolutionIndex;
DisplayServer.WindowSetMode(_windowModes[resolutionIndex]);
}
private void ChangeAudioDevice(long index)
{
var i = SoundDeviceOptions.GetSelectedId();
var deviceName = SoundDeviceOptions.GetItemText(i);
AudioServer.SetOutputDevice(deviceName);
OptionsData.AudioDeviceName = deviceName;
}
public void Load(OptionsData optionsData)
{
MasterVolumeSlider.Value = optionsData.MasterVolumeLevel;
MusicVolumeSlider.Value = optionsData.MusicVolumeLevel;
SFXVolumeSlider.Value = optionsData.SFXVolumeLevel;
ResolutionOptions.Select(optionsData.ScreenResolution);
var audioDevices = AudioServer.GetOutputDeviceList();
if (!audioDevices.Contains(optionsData.AudioDeviceName))
SoundDeviceOptions.Select(0);
else
{
var selectedDeviceIndex = AudioServer.GetOutputDeviceList().ToList().IndexOf(optionsData.AudioDeviceName);
SoundDeviceOptions.Select(selectedDeviceIndex);
}
SkipOpeningCSCheck.ButtonPressed = optionsData.SkipCutscene;
DisplayServer.WindowSetMode(_windowModes[optionsData.ScreenResolution]);
}
private void OptionsMenu_GuiFocusChanged(Control node) => _currentFocus = node;
private void MasterLabel_Pressed()
{
MasterVolumeSlider.GrabFocus();
}
private void MusicLabel_Pressed()
{
MusicVolumeSlider.GrabFocus();
}
private void SELabel_Pressed()
{
SFXVolumeSlider.GrabFocus();
}
private void SoundDeviceOptions_Pressed()
{
var selectedItem = SoundDeviceOptions.Selected;
SoundDeviceOptions.Clear();
var devices = AudioServer.GetOutputDeviceList();
foreach (var device in devices)
SoundDeviceOptions.AddItem(device);
SoundDeviceOptions.Select(selectedItem);
}
private void SkipOpeningCS_Pressed() => OptionsData.SkipCutscene = SkipOpeningCSCheck.ButtonPressed;
@@ -103,64 +239,6 @@ public partial class OptionsMenu : Control
ConfirmDeletePopup.Show();
}
private void TabContainer_TabChanged(long tab)
{
if (tab == (int)TabOption.Game)
SkipOpeningCSCheck.CallDeferred(MethodName.GrabFocus);
if (tab == (int)TabOption.Audio)
MasterVolumeSlider.CallDeferred(MethodName.GrabFocus);
if (tab == (int)TabOption.Controls)
Controller.MoveForwardKeyboard.CallDeferred(MethodName.GrabFocus);
}
private void OptionsMenu_VisibilityChanged()
{
CanvasLayer.Visible = !CanvasLayer.Visible;
if (CanvasLayer.Visible)
TabContainer_TabChanged(TabContainer.CurrentTab);
}
public override void _Input(InputEvent @event)
{
if (!Visible)
return;
if (Input.IsActionJustPressed(GameInputs.Interact) || Input.IsActionJustPressed(GameInputs.Pause))
{
AcceptEvent();
SaveAndExitMenu();
}
if (Input.IsActionJustPressed(GameInputs.StrafeLeft))
{
AcceptEvent();
TabContainer.CurrentTab = Mathf.Max(0, TabContainer.CurrentTab - 1);
}
if (Input.IsActionJustPressed(GameInputs.StrafeRight))
{
AcceptEvent();
TabContainer.CurrentTab = Mathf.Min(TabContainer.GetTabCount() - 1, TabContainer.CurrentTab + 1);
}
}
private void ResolutionOptions_ItemSelected(long index)
{
var resolutionIndex = ResolutionOptions.GetSelectedId();
OptionsData.ScreenResolution = resolutionIndex;
DisplayServer.WindowSetMode(_windowModes[resolutionIndex]);
}
public void Load(OptionsData optionsData)
{
MasterVolumeSlider.Value = optionsData.MasterVolumeLevel;
MusicVolumeSlider.Value = optionsData.MusicVolumeLevel;
SFXVolumeSlider.Value = optionsData.SFXVolumeLevel;
ResolutionOptions.Select(optionsData.ScreenResolution);
SkipOpeningCSCheck.ButtonPressed = optionsData.SkipCutscene;
DisplayServer.WindowSetMode(_windowModes[optionsData.ScreenResolution]);
}
private void SaveAndExitMenu() => EmitSignal(SignalName.OptionsMenuExited);
private void MasterVolumeSlider_Changed(double valueChanged)
@@ -180,6 +258,27 @@ public partial class OptionsMenu : Control
OptionsData.SFXVolumeLevel = valueChanged;
AudioServer.SetBusVolumeDb(_sfxBusIndex, Mathf.LinearToDb((float)valueChanged));
}
private void Controller_FocusEntered()
{
Audio.Hide();
Controller.Show();
Game.Hide();
}
private void Game_FocusEntered()
{
Audio.Hide();
Controller.Hide();
Game.Show();
}
private void Audio_FocusEntered()
{
Audio.Show();
Controller.Hide();
Game.Hide();
}
}
public enum TabOption

View File

@@ -1,10 +1,25 @@
[gd_scene load_steps=11 format=3 uid="uid://drkl3btdy6uxj"]
[gd_scene load_steps=21 format=3 uid="uid://drkl3btdy6uxj"]
[ext_resource type="Script" uid="uid://cjxmdvhixcj6e" path="res://src/options/OptionsMenu.cs" id="1_jli36"]
[ext_resource type="Shortcut" uid="uid://dumkrjur22k2a" path="res://src/ui/ButtonShortcut.tres" id="2_1egkf"]
[ext_resource type="Texture2D" uid="uid://b8ftp11t0q58p" path="res://src/ui/rendered_assets/SCREEN_RENDERS_Options_720_16_9.png" id="2_1mx8s"]
[ext_resource type="FontFile" uid="uid://beh6d5lo5ihq0" path="res://src/ui/fonts/georgiai.ttf" id="2_n0yw3"]
[ext_resource type="LabelSettings" uid="uid://cuuo43x72xcsc" path="res://src/ui/label_settings/MainTextBold.tres" id="2_o7aaw"]
[ext_resource type="PackedScene" uid="uid://dk5esf6mm6kte" path="res://src/options/InputMapper.tscn" id="2_utd4g"]
[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="3_ohii5"]
[ext_resource type="FontFile" uid="uid://cke424xtk2s0o" path="res://src/ui/fonts/ebrima.ttf" id="2_ohii5"]
[ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="5_1mx8s"]
[ext_resource type="Texture2D" uid="uid://u255bg4nytuf" path="res://src/ui/gallery/checkbox.png" id="5_wn77p"]
[ext_resource type="Texture2D" uid="uid://2fwkphkxib7p" path="res://src/ui/gallery/Unchecked.png" id="6_ko1q6"]
[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="9_lx8gn"]
[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="10_qvpxc"]
[ext_resource type="Script" uid="uid://c6lw5yp8p0wb5" path="res://src/options/InputMapper.cs" id="12_776se"]
[ext_resource type="Script" uid="uid://b70br20xue678" path="res://src/options/KeyboardRemapButton.cs" id="13_rjjwr"]
[ext_resource type="Script" uid="uid://bo7vk56h1lr07" path="res://src/options/JoypadRemapButton.cs" id="14_wsiwg"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ko1q6"]
corner_radius_top_left = 50
corner_radius_top_right = 50
corner_radius_bottom_right = 50
corner_radius_bottom_left = 50
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ohii5"]
bg_color = Color(0.215902, 0.215902, 0.215902, 1)
@@ -26,78 +41,124 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_jli36")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
unique_name_in_owner = true
visible = false
[node name="CenterContainer" type="AspectRatioContainer" parent="CanvasLayer"]
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 0
texture = ExtResource("2_1mx8s")
expand_mode = 1
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/CenterContainer"]
layout_mode = 2
[node name="TabContainer" type="TabContainer" parent="CanvasLayer/CenterContainer/VBoxContainer"]
[node name="Game" type="VBoxContainer" parent="."]
unique_name_in_owner = true
custom_minimum_size = Vector2(1280, 960)
layout_mode = 2
mouse_filter = 0
current_tab = 0
tab_focus_mode = 0
[node name="Game" type="PanelContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer"]
visible = false
layout_mode = 2
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 487.0
offset_top = 270.0
offset_right = -161.0
offset_bottom = -97.0
size_flags_vertical = 3
focus_next = NodePath("../Audio")
focus_previous = NodePath(".")
metadata/_tab_index = 0
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game"]
[node name="MarginContainer" type="MarginContainer" parent="Game"]
layout_mode = 2
theme_override_constants/margin_left = 100
theme_override_constants/margin_left = 50
theme_override_constants/margin_top = 100
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = 0
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/MarginContainer"]
[node name="VBoxContainer" type="VBoxContainer" parent="Game/MarginContainer"]
layout_mode = 2
theme_override_constants/separation = 20
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/MarginContainer/VBoxContainer"]
[node name="HBoxContainer" type="HBoxContainer" parent="Game/MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="SkipOpeningCSCheck" type="CheckBox" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/MarginContainer/VBoxContainer/HBoxContainer"]
[node name="SkipOpeningCSCheck" type="CheckBox" parent="Game/MarginContainer/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../VBoxContainer/GameTab")
focus_neighbor_top = NodePath(".")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath("../../HBoxContainer2/DeleteSaveButton")
theme_override_constants/h_separation = 20
theme_override_fonts/font = ExtResource("2_n0yw3")
theme_override_font_sizes/font_size = 25
theme_override_styles/focus = ExtResource("9_lx8gn")
theme_override_styles/disabled_mirrored = ExtResource("10_qvpxc")
theme_override_styles/disabled = ExtResource("10_qvpxc")
theme_override_styles/hover_pressed_mirrored = ExtResource("9_lx8gn")
theme_override_styles/hover_pressed = ExtResource("9_lx8gn")
theme_override_styles/hover_mirrored = ExtResource("9_lx8gn")
theme_override_styles/hover = ExtResource("9_lx8gn")
theme_override_styles/pressed_mirrored = ExtResource("10_qvpxc")
theme_override_styles/pressed = ExtResource("10_qvpxc")
theme_override_styles/normal_mirrored = ExtResource("10_qvpxc")
theme_override_styles/normal = ExtResource("10_qvpxc")
theme_override_icons/checked = ExtResource("5_wn77p")
theme_override_icons/unchecked = ExtResource("6_ko1q6")
button_mask = 0
text = "Skip opening cutscene"
[node name="HBoxContainer2" type="HBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/MarginContainer/VBoxContainer"]
[node name="HBoxContainer2" type="HBoxContainer" parent="Game/MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="DeleteSaveButton" type="Button" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/MarginContainer/VBoxContainer/HBoxContainer2"]
[node name="DeleteSaveButton" type="Button" parent="Game/MarginContainer/VBoxContainer/HBoxContainer2"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../VBoxContainer/GameTab")
focus_neighbor_top = NodePath("../../HBoxContainer/SkipOpeningCSCheck")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath("../../Resolution/ResolutionOptions")
theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1)
theme_override_fonts/font = ExtResource("2_n0yw3")
text = "Delete Save Data"
[node name="CenterContainer" type="CenterContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game"]
[node name="Resolution" type="HBoxContainer" parent="Game/MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="ConfirmDeletePopup" type="ColorRect" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/CenterContainer"]
[node name="ResolutionLabel" type="Label" parent="Game/MarginContainer/VBoxContainer/Resolution"]
custom_minimum_size = Vector2(125, 0)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../VBoxContainer/GameTab")
text = "Resolution: "
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="ResolutionOptions" type="OptionButton" parent="Game/MarginContainer/VBoxContainer/Resolution"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../VBoxContainer/GameTab")
focus_neighbor_top = NodePath("../../HBoxContainer2/DeleteSaveButton")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath(".")
theme_override_fonts/font = ExtResource("2_n0yw3")
theme_override_styles/normal = SubResource("StyleBoxFlat_ko1q6")
shortcut = ExtResource("2_1egkf")
flat = true
alignment = 1
[node name="CenterContainer" type="CenterContainer" parent="Game"]
layout_mode = 2
[node name="ConfirmDeletePopup" type="ColorRect" parent="Game/CenterContainer"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(750, 250)
layout_mode = 2
color = Color(0.137255, 0.121569, 0.12549, 1)
[node name="PanelContainer" type="PanelContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/CenterContainer/ConfirmDeletePopup"]
[node name="PanelContainer" type="PanelContainer" parent="Game/CenterContainer/ConfirmDeletePopup"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -105,14 +166,14 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/CenterContainer/ConfirmDeletePopup/PanelContainer"]
[node name="Label" type="Label" parent="Game/CenterContainer/ConfirmDeletePopup/PanelContainer"]
layout_mode = 2
text = "Deleting save data will permanently reset progress.
Continue?"
label_settings = ExtResource("2_o7aaw")
horizontal_alignment = 1
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/CenterContainer/ConfirmDeletePopup"]
[node name="MarginContainer" type="MarginContainer" parent="Game/CenterContainer/ConfirmDeletePopup"]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
@@ -128,134 +189,629 @@ theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 15
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/CenterContainer/ConfirmDeletePopup/MarginContainer"]
[node name="HBoxContainer" type="HBoxContainer" parent="Game/CenterContainer/ConfirmDeletePopup/MarginContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme_override_constants/separation = 20
[node name="NoDeleteButton" type="Button" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/CenterContainer/ConfirmDeletePopup/MarginContainer/HBoxContainer"]
[node name="NoDeleteButton" type="Button" parent="Game/CenterContainer/ConfirmDeletePopup/MarginContainer/HBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(150, 35)
layout_mode = 2
theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1)
theme_override_fonts/font = ExtResource("3_ohii5")
theme_override_fonts/font = ExtResource("2_ohii5")
theme_override_styles/normal = SubResource("StyleBoxFlat_ohii5")
text = "Cancel"
[node name="YesDeleteButton" type="Button" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Game/CenterContainer/ConfirmDeletePopup/MarginContainer/HBoxContainer"]
[node name="YesDeleteButton" type="Button" parent="Game/CenterContainer/ConfirmDeletePopup/MarginContainer/HBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(150, 35)
layout_mode = 2
theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1)
theme_override_fonts/font = ExtResource("3_ohii5")
theme_override_fonts/font = ExtResource("2_ohii5")
theme_override_styles/normal = SubResource("StyleBoxFlat_o7aaw")
text = "Confirm"
[node name="Audio" type="MarginContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer"]
[node name="Audio" type="MarginContainer" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 2
focus_next = NodePath("../Controller")
focus_previous = NodePath("../Game")
theme_override_constants/margin_left = 100
theme_override_constants/margin_top = 100
offset_top = 49.0
offset_right = 1920.0
offset_bottom = 1129.0
size_flags_vertical = 3
theme_override_constants/margin_left = 550
theme_override_constants/margin_top = 300
theme_override_constants/margin_right = 100
theme_override_constants/margin_bottom = 100
metadata/_tab_index = 1
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio"]
[node name="VBoxContainer" type="VBoxContainer" parent="Audio"]
layout_mode = 2
size_flags_horizontal = 0
mouse_filter = 0
theme_override_constants/separation = 20
[node name="MasterVolume" type="HBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer"]
[node name="SFXVolume" type="HBoxContainer" parent="Audio/VBoxContainer"]
layout_mode = 2
[node name="VolumeLabel" type="Label" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer/MasterVolume"]
custom_minimum_size = Vector2(125, 0)
[node name="SELabel" type="Button" parent="Audio/VBoxContainer/SFXVolume"]
unique_name_in_owner = true
layout_mode = 2
text = "Master Volume"
horizontal_alignment = 2
size_flags_stretch_ratio = 1.34
focus_neighbor_left = NodePath("../../../../VBoxContainer/AudioTab")
focus_neighbor_top = NodePath(".")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath("../../MusicVolume/MusicLabel")
theme_override_styles/focus = ExtResource("9_lx8gn")
theme_override_styles/hover = ExtResource("10_qvpxc")
theme_override_styles/pressed = ExtResource("10_qvpxc")
theme_override_styles/normal = ExtResource("10_qvpxc")
text = "S.E Volume"
alignment = 2
[node name="MasterVolumeSlider" type="HSlider" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer/MasterVolume"]
[node name="ReferenceRect" type="ReferenceRect" parent="Audio/VBoxContainer/SFXVolume"]
custom_minimum_size = Vector2(33, 0)
layout_mode = 2
border_color = Color(1, 0, 0, 0)
[node name="SFXVolumeSlider" type="HSlider" parent="Audio/VBoxContainer/SFXVolume"]
unique_name_in_owner = true
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
size_flags_vertical = 1
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath(".")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath(".")
theme_override_styles/slider = SubResource("StyleBoxLine_jli36")
theme_override_styles/grabber_area = SubResource("StyleBoxFlat_utd4g")
theme_override_styles/grabber_area_highlight = SubResource("StyleBoxFlat_1egkf")
max_value = 1.0
step = 0.1
value = 1.0
scrollable = false
[node name="MusicVolume" type="HBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer"]
[node name="MusicVolume" type="HBoxContainer" parent="Audio/VBoxContainer"]
layout_mode = 2
[node name="VolumeLabel" type="Label" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer/MusicVolume"]
custom_minimum_size = Vector2(125, 0)
[node name="MusicLabel" type="Button" parent="Audio/VBoxContainer/MusicVolume"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 8
focus_neighbor_left = NodePath("../../../../VBoxContainer/AudioTab")
focus_neighbor_top = NodePath("../../SFXVolume/SELabel")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath("../../MasterVolume/MasterLabel")
theme_override_styles/focus = ExtResource("9_lx8gn")
theme_override_styles/hover = ExtResource("10_qvpxc")
theme_override_styles/pressed = ExtResource("10_qvpxc")
theme_override_styles/normal = ExtResource("10_qvpxc")
text = "Music Volume"
horizontal_alignment = 2
[node name="MusicVolumeSlider" type="HSlider" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer/MusicVolume"]
[node name="ReferenceRect" type="ReferenceRect" parent="Audio/VBoxContainer/MusicVolume"]
custom_minimum_size = Vector2(10, 0)
layout_mode = 2
border_color = Color(1, 0, 0, 0)
[node name="MusicVolumeSlider" type="HSlider" parent="Audio/VBoxContainer/MusicVolume"]
unique_name_in_owner = true
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
size_flags_vertical = 1
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath(".")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath(".")
theme_override_styles/slider = SubResource("StyleBoxLine_jli36")
theme_override_styles/grabber_area = SubResource("StyleBoxFlat_utd4g")
theme_override_styles/grabber_area_highlight = SubResource("StyleBoxFlat_1egkf")
max_value = 1.0
step = 0.1
value = 1.0
scrollable = false
[node name="SFXVolume" type="HBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer"]
[node name="MasterVolume" type="HBoxContainer" parent="Audio/VBoxContainer"]
layout_mode = 2
[node name="VolumeLabel" type="Label" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer/SFXVolume"]
custom_minimum_size = Vector2(125, 0)
[node name="MasterLabel" type="Button" parent="Audio/VBoxContainer/MasterVolume"]
unique_name_in_owner = true
layout_mode = 2
text = "SFX Volume"
horizontal_alignment = 2
theme_override_styles/focus = ExtResource("9_lx8gn")
theme_override_styles/hover = ExtResource("10_qvpxc")
theme_override_styles/pressed = ExtResource("10_qvpxc")
theme_override_styles/normal = ExtResource("10_qvpxc")
text = "Master Volume"
[node name="SFXVolumeSlider" type="HSlider" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer/SFXVolume"]
[node name="ReferenceRect" type="ReferenceRect" parent="Audio/VBoxContainer/MasterVolume"]
custom_minimum_size = Vector2(1, 0)
layout_mode = 2
border_color = Color(1, 0, 0, 0)
[node name="MasterVolumeSlider" type="HSlider" parent="Audio/VBoxContainer/MasterVolume"]
unique_name_in_owner = true
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
size_flags_vertical = 1
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath(".")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath(".")
theme_override_styles/slider = SubResource("StyleBoxLine_jli36")
theme_override_styles/grabber_area = SubResource("StyleBoxFlat_utd4g")
theme_override_styles/grabber_area_highlight = SubResource("StyleBoxFlat_1egkf")
max_value = 1.0
step = 0.1
value = 1.0
scrollable = false
[node name="Resolution" type="HBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer"]
[node name="ModeSelect" type="HBoxContainer" parent="Audio/VBoxContainer"]
layout_mode = 2
[node name="ResolutionLabel" type="Label" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer/Resolution"]
custom_minimum_size = Vector2(125, 0)
layout_mode = 2
text = "Resolution: "
horizontal_alignment = 2
[node name="ResolutionOptions" type="OptionButton" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer/Resolution"]
unique_name_in_owner = true
[node name="ModeSelectLabel" type="Label" parent="Audio/VBoxContainer/ModeSelect"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Output Device: "
label_settings = ExtResource("5_1mx8s")
[node name="SoundDeviceOptions" type="OptionButton" parent="Audio/VBoxContainer/ModeSelect"]
unique_name_in_owner = true
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../VBoxContainer/AudioTab")
focus_neighbor_top = NodePath("../../MasterVolume/MasterLabel")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath(".")
theme_override_fonts/font = ExtResource("2_n0yw3")
shortcut = ExtResource("2_1egkf")
flat = true
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer/Audio/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 10
[node name="Controller" parent="CanvasLayer/CenterContainer/VBoxContainer/TabContainer" instance=ExtResource("2_utd4g")]
[node name="Controller" type="Control" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 2
focus_next = NodePath(".")
focus_previous = NodePath("../Audio")
metadata/_tab_index = 2
anchors_preset = 0
offset_left = 487.0
offset_top = 271.0
offset_right = 1760.0
offset_bottom = 983.0
focus_neighbor_left = NodePath("../VBoxContainer/ControllerTab")
script = ExtResource("12_776se")
[node name="MarginContainer" type="MarginContainer" parent="Controller"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 0
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="VBoxContainer" type="VBoxContainer" parent="Controller/MarginContainer"]
custom_minimum_size = Vector2(50, 50)
layout_mode = 2
theme_override_constants/separation = 20
alignment = 1
[node name="ScrollContainer" type="ScrollContainer" parent="Controller/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="ActionList" type="VBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/separation = 20
[node name="Header" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Header"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Actions"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Header"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Label2" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Header"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Keyboard"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 1
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Header"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Label3" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Header"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Controller"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 1
[node name="Move Forward" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Forward"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Move Forward"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Forward"]
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveForwardKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Forward"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Forward"]
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveForwardController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Forward"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="Move Left" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Left"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Move Left"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Left"]
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveLeftKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Left"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Left"]
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveLeftController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Left"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="Move Right" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Right"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Move Right"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Right"]
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveRightKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Right"]
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveRightController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="Move Backward" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Backward"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Move Backward"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Backward"]
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveBackwardKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Backward"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Backward"]
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveBackwardController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Backward"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="Strafe Left" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Left"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Strafe Left"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Left"]
layout_mode = 2
size_flags_horizontal = 3
[node name="StrafeLeftKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Left"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Left"]
layout_mode = 2
size_flags_horizontal = 3
[node name="StrafeLeftController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Left"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="Strafe Right" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Right"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Strafe Right"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Right"]
layout_mode = 2
size_flags_horizontal = 3
[node name="StrafeRightKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Right"]
layout_mode = 2
size_flags_horizontal = 3
[node name="StrafeRightController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Strafe Right"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="Attack" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Attack"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Attack"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Attack"]
layout_mode = 2
size_flags_horizontal = 3
[node name="AttackKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Attack"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Attack"]
layout_mode = 2
size_flags_horizontal = 3
[node name="AttackController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Attack"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="Interact" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Interact"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Interact"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Interact"]
layout_mode = 2
size_flags_horizontal = 3
[node name="InteractKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Interact"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Interact"]
layout_mode = 2
size_flags_horizontal = 3
[node name="InteractController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Interact"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="Open Inventory" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Open Inventory"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Open Inventory"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Open Inventory"]
layout_mode = 2
size_flags_horizontal = 3
[node name="InventoryKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Open Inventory"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Open Inventory"]
layout_mode = 2
size_flags_horizontal = 3
[node name="InventoryController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Open Inventory"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="Sort Inventory" type="HBoxContainer" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList"]
layout_mode = 2
[node name="Label" type="Label" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Sort Inventory"]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
text = "Sort Inventory"
label_settings = ExtResource("5_1mx8s")
horizontal_alignment = 2
[node name="Control" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Sort Inventory"]
layout_mode = 2
size_flags_horizontal = 3
[node name="SortKeyboard" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Sort Inventory"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 35)
layout_mode = 2
focus_neighbor_left = NodePath("../../../../../../../VBoxContainer/ControllerTab")
script = ExtResource("13_rjjwr")
[node name="Control2" type="Control" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Sort Inventory"]
layout_mode = 2
size_flags_horizontal = 3
[node name="SortController" type="Button" parent="Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Sort Inventory"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
script = ExtResource("14_wsiwg")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 0
offset_left = 164.0
offset_top = 327.0
offset_right = 414.0
offset_bottom = 560.0
theme_override_constants/separation = 40
[node name="GameTab" type="Button" parent="VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath(".")
focus_neighbor_right = NodePath("../../Game/MarginContainer/VBoxContainer/HBoxContainer/SkipOpeningCSCheck")
focus_neighbor_bottom = NodePath("../AudioTab")
theme_override_constants/outline_size = 3
theme_override_fonts/font = ExtResource("2_n0yw3")
theme_override_font_sizes/font_size = 25
theme_override_styles/focus = ExtResource("9_lx8gn")
theme_override_styles/hover_pressed = ExtResource("10_qvpxc")
theme_override_styles/hover = ExtResource("10_qvpxc")
theme_override_styles/pressed = ExtResource("10_qvpxc")
theme_override_styles/normal = ExtResource("10_qvpxc")
text = "Game"
[node name="AudioTab" type="Button" parent="VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath("../GameTab")
focus_neighbor_right = NodePath("../../Audio/VBoxContainer/SFXVolume/SELabel")
theme_override_constants/outline_size = 3
theme_override_fonts/font = ExtResource("2_n0yw3")
theme_override_font_sizes/font_size = 25
theme_override_styles/focus = ExtResource("9_lx8gn")
theme_override_styles/hover_pressed = ExtResource("10_qvpxc")
theme_override_styles/hover = ExtResource("10_qvpxc")
theme_override_styles/pressed = ExtResource("10_qvpxc")
theme_override_styles/normal = ExtResource("10_qvpxc")
text = "Audio"
flat = true
[node name="ControllerTab" type="Button" parent="VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath("../AudioTab")
focus_neighbor_right = NodePath("../../Controller/MarginContainer/VBoxContainer/ScrollContainer/ActionList/Move Forward/MoveForwardKeyboard")
focus_neighbor_bottom = NodePath(".")
theme_override_constants/outline_size = 3
theme_override_fonts/font = ExtResource("2_n0yw3")
theme_override_font_sizes/font_size = 25
theme_override_styles/focus = ExtResource("9_lx8gn")
theme_override_styles/hover_pressed = ExtResource("10_qvpxc")
theme_override_styles/hover = ExtResource("10_qvpxc")
theme_override_styles/pressed = ExtResource("10_qvpxc")
theme_override_styles/normal = ExtResource("10_qvpxc")
text = "Controller"
flat = true

View File

@@ -0,0 +1,8 @@
[gd_resource type="StyleBoxTexture" load_steps=2 format=3 uid="uid://bxuy4tnftibfq"]
[ext_resource type="Texture2D" uid="uid://b7nxeq5qft3xa" path="res://src/ui/gallery/Line 1.png" id="1_hnfdc"]
[resource]
texture = ExtResource("1_hnfdc")
texture_margin_bottom = 2.0
draw_center = false

View File

@@ -0,0 +1,10 @@
[gd_resource type="StyleBoxTexture" load_steps=2 format=3 uid="uid://bl15q835s4ene"]
[ext_resource type="Texture2D" uid="uid://b7nxeq5qft3xa" path="res://src/ui/gallery/Line 1.png" id="1_vbwaw"]
[resource]
content_margin_top = 0.0
texture = ExtResource("1_vbwaw")
texture_margin_bottom = 2.0
modulate_color = Color(1, 1, 1, 0)
draw_center = false