From f8294dff94840b797240db06a454d97b81b9b4b1 Mon Sep 17 00:00:00 2001 From: lightyears Date: Sat, 3 Jun 2023 16:13:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=91=BD=E5=90=8D=E7=A9=BA?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Autoloads/GameSettingsNode.cs | 16 ++-------------- Components/Settings/SettingsMenu.cs | 6 ++++-- Components/Settings/VideoSettingsMenu.cs | 2 ++ Helpers/DisplayServerHelper.cs | 17 +++++++++++++++++ Models/Changelog.cs | 2 +- {Autoloads => Models}/GameSettings.cs | 2 +- Scenes/LandingScene/ChangelogContainer.cs | 2 +- 7 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 Helpers/DisplayServerHelper.cs rename {Autoloads => Models}/GameSettings.cs (95%) diff --git a/Autoloads/GameSettingsNode.cs b/Autoloads/GameSettingsNode.cs index 08e074d..88f024b 100644 --- a/Autoloads/GameSettingsNode.cs +++ b/Autoloads/GameSettingsNode.cs @@ -1,6 +1,7 @@ +using CMSGame.Models; using Newtonsoft.Json; -namespace CMSGame +namespace CMSGame.Autoloads { /// /// 游戏设置持久化节点 @@ -26,7 +27,6 @@ namespace CMSGame RegisterAllSettings(); MakeDirectories(); LoadAllSettings(); - ApplyVideoSettings(); } protected void RegisterAllSettings() @@ -99,17 +99,5 @@ namespace CMSGame using var file = FileAccess.Open(SettingsPaths[settingsType], FileAccess.ModeFlags.Write); file.StoreString(settingsText); } - - public void ApplyVideoSettings() - { - if (VideoSettings.UseFullScreen) - { - DisplayServer.WindowSetMode(DisplayServer.WindowMode.Fullscreen); - } - else - { - DisplayServer.WindowSetMode(DisplayServer.WindowMode.Windowed); - } - } } } diff --git a/Components/Settings/SettingsMenu.cs b/Components/Settings/SettingsMenu.cs index 1e03f50..24ee483 100644 --- a/Components/Settings/SettingsMenu.cs +++ b/Components/Settings/SettingsMenu.cs @@ -1,8 +1,10 @@ +using CMSGame.Autoloads; + namespace CMSGame { public partial class SettingsMenu : TabContainer { - private bool _inDevelopment => OS.HasFeature("debug") || OS.HasFeature("editor"); + private static bool s_inDevelopment => OS.HasFeature("debug") || OS.HasFeature("editor"); public GameSettingsNode? Settings; @@ -23,7 +25,7 @@ namespace CMSGame this.GetUniqueNode(ref AudioSettingsMenu, nameof(AudioSettingsMenu)); this.GetUniqueNode(ref DeveloperOptionsMenu, nameof(DeveloperOptionsMenu)); - DeveloperOptionsMenu!.Visible = _inDevelopment; + DeveloperOptionsMenu!.Visible = s_inDevelopment; } } } diff --git a/Components/Settings/VideoSettingsMenu.cs b/Components/Settings/VideoSettingsMenu.cs index 1ab3569..64e8590 100644 --- a/Components/Settings/VideoSettingsMenu.cs +++ b/Components/Settings/VideoSettingsMenu.cs @@ -1,3 +1,5 @@ +using CMSGame.Models; + namespace CMSGame { public partial class VideoSettingsMenu : Control diff --git a/Helpers/DisplayServerHelper.cs b/Helpers/DisplayServerHelper.cs new file mode 100644 index 0000000..57bf58f --- /dev/null +++ b/Helpers/DisplayServerHelper.cs @@ -0,0 +1,17 @@ +namespace CMSGame.Helpers +{ + internal static class DisplayServerHelper + { + public static void ApplyAndPersistResolutionSettings(bool useFullScreen) + { + if (useFullScreen) + { + DisplayServer.WindowSetMode(DisplayServer.WindowMode.Fullscreen); + } + else + { + DisplayServer.WindowSetMode(DisplayServer.WindowMode.Windowed); + } + } + } +} diff --git a/Models/Changelog.cs b/Models/Changelog.cs index 965cf57..a5edc05 100644 --- a/Models/Changelog.cs +++ b/Models/Changelog.cs @@ -40,7 +40,7 @@ namespace CMSGame.Models if (fileContent == null) return; Changelog? changelog = null; - StringBuilder contentBuilder = new StringBuilder(); + StringBuilder contentBuilder = new(); var commitChangelog = () => { diff --git a/Autoloads/GameSettings.cs b/Models/GameSettings.cs similarity index 95% rename from Autoloads/GameSettings.cs rename to Models/GameSettings.cs index 09fced2..7eb3bf0 100644 --- a/Autoloads/GameSettings.cs +++ b/Models/GameSettings.cs @@ -1,4 +1,4 @@ -namespace CMSGame +namespace CMSGame.Models { public record class GameSettings { diff --git a/Scenes/LandingScene/ChangelogContainer.cs b/Scenes/LandingScene/ChangelogContainer.cs index b360ad2..bcb60cd 100644 --- a/Scenes/LandingScene/ChangelogContainer.cs +++ b/Scenes/LandingScene/ChangelogContainer.cs @@ -20,7 +20,7 @@ namespace CMSGame { var changelogText = _changelogList.Select(log => { - StringBuilder textBuilder = new StringBuilder(); + StringBuilder textBuilder = new(); textBuilder.Append($"[b]{log.Title}[/b]"); if (log.Date != null)