Files

92 lines
2.5 KiB
C#

using Godot;
using System;
using System.IO;
public partial class Setting : Control {
private GlobalManager global = GlobalManager.Instance;
private readonly IConfigManager config = GlobalManager.Instance.ConfigManager;
private int font_size;
private LineEdit fontOut = null!;
// Called when the node enters the scene tree for the first time.
public override void _Ready() {
fontOut = GetNode<LineEdit>("%FontSize");
font_size = config.GetValue<int>("font_size");
GetNode<HSlider>("%FontSizeBar")
.Value = font_size;
fontOut.Text = font_size.ToString();
GetNode<LineEdit>("%LineEdit_ServerIP")
.Text = config.GetValue<string>("server_addr");
GetNode<LineEdit>("%LineEdit_UserName")
.Text = config.GetValue<string>("user_name");
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta) {
}
private void OnBack() {
global.GotoScene("res://Main.tscn", null);
}
private void OnSave() {
global.SaveConfig();
}
void OnNameChanged(string Value) {
config.SetValue("user_name", Value);
}
private void OnServerUrlChanged(string Value) {
config.SetValue("server_url", Value);
}
private void OnFontSizeChanged(float Value) {
font_size = (int)Value;
config.SetValue("font_size", font_size);
global.GlobalThemeConfigFlush();
fontOut.Text = font_size.ToString();
}
private static void OnClearData() {
// ProjectSettings.GlobalizePath("user://");
// DirAccess.CopyAbsolute("res://userdata", "user://");
}
private static void OnClearUserData() {
string path = ProjectSettings.GlobalizePath("user://");
// DirAccess dirAccess = DirAccess.Open(path);
// dirAccess.Remove(path);
if (DirAccess.RemoveAbsolute(path) != Error.Ok) {
FormattableString msg = $"Failed to delete user data at {path}";
OS.Alert(msg.ToString(), "Error");
}
}
private static void OnGetSettingsFile() {
string path = ProjectSettings.GlobalizePath(GlobalManager.ConfigPath);
OS.ShellOpen(Path.GetDirectoryName(path));
}
private static void OnGetCacheDir() {
OS.Alert(OS.GetCacheDir(), "Cache Dir");
}
private static void OnGetConfigDir() {
OS.Alert(OS.GetConfigDir(), "Config Dir");
}
private static void OnGetDataDir() {
OS.Alert(OS.GetDataDir(), "Data Dir");
}
private static void OnGetUserDataDir() {
OS.Alert(OS.GetUserDataDir(), "User Data Dir");
}
private static void ChangeLangZHCN(bool _) => TranslationServer.SetLocale("zh_CN");
private static void ChangeLangEN(bool _) => TranslationServer.SetLocale("en");
}