允许全屏设置

master
lightyears 2 years ago
parent 35e45556fa
commit 7cfe069804
Signed by: lightyears
GPG Key ID: 98D80DDF26D4F2F9

@ -8,7 +8,9 @@ namespace CMSGame
{ } { }
public record class VideoSettings : GameSettings public record class VideoSettings : GameSettings
{ } {
public bool UseFullScreen = false;
}
public record class AudioSettings : GameSettings public record class AudioSettings : GameSettings
{ {

@ -1,6 +1,6 @@
namespace CMSGame namespace CMSGame
{ {
public partial class AudioSettingsMenu : VBoxContainer public partial class AudioSettingsMenu : Control
{ {
public GameSettingsNode? Settings; public GameSettingsNode? Settings;

@ -1,10 +1,9 @@
namespace CMSGame namespace CMSGame
{ {
public partial class BattleSettingsMenu : VBoxContainer public partial class BattleSettingsMenu : Control
{ {
public override void _Ready() public override void _Ready()
{ {
} }
} }
} }

@ -1,6 +1,6 @@
namespace CMSGame namespace CMSGame
{ {
public partial class DeveloperOptionsMenu : VBoxContainer public partial class DeveloperOptionsMenu : Control
{ {
public override void _Ready() public override void _Ready()
{ {

@ -2,11 +2,28 @@ namespace CMSGame
{ {
public partial class SettingsMenu : TabContainer public partial class SettingsMenu : TabContainer
{ {
private bool _inDevelopment => OS.HasFeature("debug") || OS.HasFeature("editor");
public GameSettingsNode? Settings; public GameSettingsNode? Settings;
public Control? BattleSettingsMenu;
public Control? VideoSettingsMenu;
public Control? AudioSettingsMenu;
public Control? DeveloperOptionsMenu;
public override void _Ready() public override void _Ready()
{ {
this.GetAutoloadNode(ref Settings, nameof(GameSettingsNode)); this.GetAutoloadNode(ref Settings, nameof(GameSettingsNode));
this.GetUniqueNode(ref BattleSettingsMenu, nameof(BattleSettingsMenu));
this.GetUniqueNode(ref VideoSettingsMenu, nameof(VideoSettingsMenu));
this.GetUniqueNode(ref AudioSettingsMenu, nameof(AudioSettingsMenu));
this.GetUniqueNode(ref DeveloperOptionsMenu, nameof(DeveloperOptionsMenu));
DeveloperOptionsMenu!.Visible = _inDevelopment;
} }
} }
} }

@ -14,18 +14,46 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_av57b") script = ExtResource("1_av57b")
[node name="BattleSettingsMenu" type="VBoxContainer" parent="."] [node name="BattleSettingsMenu" type="Control" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
visible = false
layout_mode = 2 layout_mode = 2
script = ExtResource("2_xtjo5") script = ExtResource("2_xtjo5")
[node name="VideoSettingsMenu" type="VBoxContainer" parent="."] [node name="GridContainer" type="GridContainer" parent="BattleSettingsMenu"]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
columns = 2
[node name="Label" type="Label" parent="BattleSettingsMenu/GridContainer"]
layout_mode = 2
text = "跳过非玩家回合"
[node name="SkipNonPlayerTurnCheckButton" type="CheckButton" parent="BattleSettingsMenu/GridContainer"]
unique_name_in_owner = true
layout_mode = 2
[node name="VideoSettingsMenu" type="Control" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
visible = false
layout_mode = 2 layout_mode = 2
script = ExtResource("3_68iki") script = ExtResource("3_68iki")
[node name="AudioSettingsMenu" type="VBoxContainer" parent="."] [node name="GridContainer" type="GridContainer" parent="VideoSettingsMenu"]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
columns = 2
[node name="Label" type="Label" parent="VideoSettingsMenu/GridContainer"]
layout_mode = 2
text = "全屏"
[node name="FullScreenCheckButton" type="CheckButton" parent="VideoSettingsMenu/GridContainer"]
unique_name_in_owner = true
layout_mode = 2
[node name="AudioSettingsMenu" type="Control" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
layout_mode = 2 layout_mode = 2
@ -69,13 +97,25 @@ max_value = 1.0
step = 0.01 step = 0.01
value = 0.8 value = 0.8
[node name="DeveloperOptionsMenu" type="VBoxContainer" parent="."] [node name="DeveloperOptionsMenu" type="Control" parent="."]
unique_name_in_owner = true
visible = false visible = false
layout_mode = 2 layout_mode = 2
script = ExtResource("2_dgytf") script = ExtResource("2_dgytf")
[node name="OpenUserDataDirButton" type="Button" parent="DeveloperOptionsMenu"] [node name="VBoxContainer" type="VBoxContainer" parent="DeveloperOptionsMenu"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -68.0
offset_right = 68.0
offset_bottom = 31.0
grow_horizontal = 2
size_flags_horizontal = 4
[node name="OpenUserDataDirButton" type="Button" parent="DeveloperOptionsMenu/VBoxContainer"]
layout_mode = 2 layout_mode = 2
text = "打开用户数据目录" text = "打开用户数据目录"
[connection signal="pressed" from="DeveloperOptionsMenu/OpenUserDataDirButton" to="DeveloperOptionsMenu" method="On_OpenUserDataDirButton_Pressed"] [connection signal="pressed" from="DeveloperOptionsMenu/VBoxContainer/OpenUserDataDirButton" to="DeveloperOptionsMenu" method="On_OpenUserDataDirButton_Pressed"]

@ -1,10 +1,33 @@
namespace CMSGame namespace CMSGame
{ {
public partial class VideoSettingsMenu : VBoxContainer public partial class VideoSettingsMenu : Control
{ {
public override void _Ready() public VideoSettings? Settings;
{
} public CheckButton? FullScreenCheckButton;
}
} public override void _Ready()
{
Settings = this.GetAutoloadNode<GameSettingsNode>(nameof(GameSettingsNode)).VideoSettings;
this.GetUniqueNode(ref FullScreenCheckButton, nameof(FullScreenCheckButton));
FullScreenCheckButton!.SetPressedNoSignal(Settings.UseFullScreen);
FullScreenCheckButton.Toggled += FullScreenCheckButton_Toggled; ;
}
private void FullScreenCheckButton_Toggled(bool buttonPressed)
{
Settings!.UseFullScreen = buttonPressed;
if (buttonPressed)
{
DisplayServer.WindowSetMode(DisplayServer.WindowMode.Fullscreen);
}
else
{
DisplayServer.WindowSetMode(DisplayServer.WindowMode.Windowed);
}
}
}
}

Loading…
Cancel
Save