using Godot; public partial class SettingsSerializer : Node { const string CFG_PATH = "user://config.cfg"; public override void _EnterTree() { GetTree().AutoAcceptQuit = false; if (FileAccess.FileExists(CFG_PATH) == false) return; var access = FileAccess.Open(CFG_PATH, FileAccess.ModeFlags.Read); Settings.SFX = float.Parse(access.GetLine().Split(" ")[1]); Settings.Music = float.Parse(access.GetLine().Split(" ")[1]); Settings.Splash = bool.Parse(access.GetLine().Split(" ")[1]); AudioServer.SetBusVolumeDb(0, Mathf.LinearToDb((float)Settings.SFX)); AudioServer.SetBusVolumeDb(1, Mathf.LinearToDb((float)Settings.Music)); access.Close(); } public override void _ExitTree() { var access = FileAccess.Open(CFG_PATH, FileAccess.ModeFlags.Write); access.Resize(0); access.StoreString(string.Format("SFX {0}\nMusic {1}\nSplash {2}\n", Settings.SFX,Settings.Music,Settings.Splash)); access.Close(); } public override void _Notification(int what) { if (what == NotificationWMCloseRequest) { _ExitTree(); GetTree().Quit(); } } }