41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
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();
|
|
}
|
|
}
|
|
|
|
|
|
}
|