gallery and options rendered images set to linear filterling

This commit is contained in:
Pal
2025-12-04 01:18:03 -08:00
parent 95227946d1
commit 76f4adc5be
7 changed files with 204 additions and 202 deletions

View File

@@ -55,229 +55,229 @@ public partial class OptionsMenu : Control
public void OnReady()
{
ResolutionOptions.AddItem("Windowed");
ResolutionOptions.AddItem("Maximized");
ResolutionOptions.AddItem("Fullscreen");
ResolutionOptions.AddItem("Exclusive Fullscreen");
ResolutionOptions.Select(0);
ResolutionOptions.AddItem("Windowed");
ResolutionOptions.AddItem("Maximized");
ResolutionOptions.AddItem("Fullscreen");
ResolutionOptions.AddItem("Exclusive Fullscreen");
ResolutionOptions.Select(0);
var devices = AudioServer.GetOutputDeviceList();
foreach (var device in devices)
SoundDeviceOptions.AddItem(device);
var devices = AudioServer.GetOutputDeviceList();
foreach (var device in devices)
SoundDeviceOptions.AddItem(device);
SoundDeviceOptions.Select(0);
SoundDeviceOptions.Select(0);
SoundDeviceOptions.AllowReselect = true;
SoundDeviceOptions.Pressed += SoundDeviceOptions_Pressed;
SoundDeviceOptions.ItemSelected += ChangeAudioDevice;
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
};
OptionsData = new OptionsData()
{
MasterVolumeLevel = MasterVolumeSlider.Value,
MusicVolumeLevel = MusicVolumeSlider.Value,
SFXVolumeLevel = SFXVolumeSlider.Value,
AudioDeviceName = "Default",
ScreenResolution = ResolutionOptions.GetSelectedId(),
SkipCutscene = SkipOpeningCSCheck.ButtonPressed
};
SkipOpeningCSCheck.Pressed += SkipOpeningCS_Pressed;
SkipOpeningCSCheck.Pressed += SkipOpeningCS_Pressed;
DeleteSaveButton.Pressed += DeleteSaveButton_Pressed;
YesDeleteButton.Pressed += YesDeleteButton_Pressed;
NoDeleteButton.Pressed += NoDeleteButton_Pressed;
DeleteSaveButton.Pressed += DeleteSaveButton_Pressed;
YesDeleteButton.Pressed += YesDeleteButton_Pressed;
NoDeleteButton.Pressed += NoDeleteButton_Pressed;
MasterVolumeSlider.ValueChanged += MasterVolumeSlider_Changed;
MusicVolumeSlider.ValueChanged += MusicVolumeSlider_Changed;
SFXVolumeSlider.ValueChanged += SFXVolumeSlider_Changed;
MasterVolumeSlider.ValueChanged += MasterVolumeSlider_Changed;
MusicVolumeSlider.ValueChanged += MusicVolumeSlider_Changed;
SFXVolumeSlider.ValueChanged += SFXVolumeSlider_Changed;
ResolutionOptions.ItemSelected += ResolutionOptions_ItemSelected;
ResolutionOptions.ItemSelected += ResolutionOptions_ItemSelected;
_masterBusIndex = AudioServer.GetBusIndex("Master");
_musicBusIndex = AudioServer.GetBusIndex("MUSIC");
_sfxBusIndex = AudioServer.GetBusIndex("SFX");
_masterBusIndex = AudioServer.GetBusIndex("Master");
_musicBusIndex = AudioServer.GetBusIndex("MUSIC");
_sfxBusIndex = AudioServer.GetBusIndex("SFX");
GameTab.FocusEntered += Game_FocusEntered;
AudioTab.FocusEntered += Audio_FocusEntered;
ControllerTab.FocusEntered += Controller_FocusEntered;
GameTab.FocusEntered += Game_FocusEntered;
AudioTab.FocusEntered += Audio_FocusEntered;
ControllerTab.FocusEntered += Controller_FocusEntered;
SELabel.Pressed += SELabel_Pressed;
MusicLabel.Pressed += MusicLabel_Pressed;
MasterLabel.Pressed += MasterLabel_Pressed;
SELabel.Pressed += SELabel_Pressed;
MusicLabel.Pressed += MusicLabel_Pressed;
MasterLabel.Pressed += MasterLabel_Pressed;
GetViewport().GuiFocusChanged += OptionsMenu_GuiFocusChanged;
GetViewport().GuiFocusChanged += OptionsMenu_GuiFocusChanged;
}
public override void _Input(InputEvent @event)
{
if (!Visible)
return;
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.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();
}
}
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]);
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;
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]);
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();
MasterVolumeSlider.GrabFocus();
}
private void MusicLabel_Pressed()
{
MusicVolumeSlider.GrabFocus();
MusicVolumeSlider.GrabFocus();
}
private void SELabel_Pressed()
{
SFXVolumeSlider.GrabFocus();
SFXVolumeSlider.GrabFocus();
}
private void SoundDeviceOptions_Pressed()
{
var selectedItem = SoundDeviceOptions.Selected;
SoundDeviceOptions.Clear();
var selectedItem = SoundDeviceOptions.Selected;
SoundDeviceOptions.Clear();
var devices = AudioServer.GetOutputDeviceList();
foreach (var device in devices)
SoundDeviceOptions.AddItem(device);
SoundDeviceOptions.Select(selectedItem);
var devices = AudioServer.GetOutputDeviceList();
foreach (var device in devices)
SoundDeviceOptions.AddItem(device);
SoundDeviceOptions.Select(selectedItem);
}
private void SkipOpeningCS_Pressed() => OptionsData.SkipCutscene = SkipOpeningCSCheck.ButtonPressed;
private void NoDeleteButton_Pressed()
{
ReleaseFocus();
ConfirmDeletePopup.Hide();
DeleteSaveButton.GrabFocus();
ReleaseFocus();
ConfirmDeletePopup.Hide();
DeleteSaveButton.GrabFocus();
}
private void YesDeleteButton_Pressed()
{
EmitSignal(SignalName.DeleteSaveData);
ReleaseFocus();
ConfirmDeletePopup.Hide();
DeleteSaveButton.GrabFocus();
EmitSignal(SignalName.DeleteSaveData);
ReleaseFocus();
ConfirmDeletePopup.Hide();
DeleteSaveButton.GrabFocus();
}
private void DeleteSaveButton_Pressed()
{
NoDeleteButton.GrabFocus();
ConfirmDeletePopup.Show();
NoDeleteButton.GrabFocus();
ConfirmDeletePopup.Show();
}
private void SaveAndExitMenu() => EmitSignal(SignalName.OptionsMenuExited);
private void MasterVolumeSlider_Changed(double valueChanged)
{
OptionsData.MasterVolumeLevel = valueChanged;
AudioServer.SetBusVolumeDb(_masterBusIndex, Mathf.LinearToDb((float)valueChanged));
OptionsData.MasterVolumeLevel = valueChanged;
AudioServer.SetBusVolumeDb(_masterBusIndex, Mathf.LinearToDb((float)valueChanged));
}
private void MusicVolumeSlider_Changed(double valueChanged)
{
OptionsData.MusicVolumeLevel = valueChanged;
AudioServer.SetBusVolumeDb(_musicBusIndex, Mathf.LinearToDb((float)valueChanged));
OptionsData.MusicVolumeLevel = valueChanged;
AudioServer.SetBusVolumeDb(_musicBusIndex, Mathf.LinearToDb((float)valueChanged));
}
private void SFXVolumeSlider_Changed(double valueChanged)
{
OptionsData.SFXVolumeLevel = valueChanged;
AudioServer.SetBusVolumeDb(_sfxBusIndex, Mathf.LinearToDb((float)valueChanged));
OptionsData.SFXVolumeLevel = valueChanged;
AudioServer.SetBusVolumeDb(_sfxBusIndex, Mathf.LinearToDb((float)valueChanged));
}
private void Controller_FocusEntered()
{
Audio.Hide();
Controller.Show();
Game.Hide();
Audio.Hide();
Controller.Show();
Game.Hide();
}
private void Game_FocusEntered()
{
Audio.Hide();
Controller.Hide();
Game.Show();
Audio.Hide();
Controller.Hide();
Game.Show();
}
private void Audio_FocusEntered()
{
Audio.Show();
Controller.Hide();
Game.Hide();
Audio.Show();
Controller.Hide();
Game.Hide();
}
}
@@ -286,4 +286,4 @@ public enum TabOption
Game,
Audio,
Controls
}
}

View File

@@ -6,11 +6,11 @@
[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="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="LabelSettings" 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="StyleBox" path="res://src/options/SelectedOptionsBox.tres" id="9_lx8gn"]
[ext_resource type="StyleBox" 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"]
@@ -46,6 +46,7 @@ size_flags_vertical = 3
script = ExtResource("1_jli36")
[node name="TextureRect" type="TextureRect" parent="."]
texture_filter = 2
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0