-
Notifications
You must be signed in to change notification settings - Fork 1
/
DangerAlertSettings.cs
86 lines (65 loc) · 2.51 KB
/
DangerAlertSettings.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// DangerAlerts v1.1: A KSP mod. Public domain, do whatever you want, man.
// Author: SpaceIsBig42/Norpo (same person)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using KSP;
namespace DangerAlerts
{
class DangerAlertSettings
{
private static DangerAlertSettings instance = null;
public static DangerAlertSettings Instance //Singleton interface
{
get
{
if (instance == null)
{
instance = new DangerAlertSettings();
}
return instance;
}
}
private string optionFilePath = KSPUtil.ApplicationRootPath + "GameData/DangerAlerts/options.cfg"; //File path
public bool MasterToggle = true; //Master toggle shouldn't be persistent, wouldn't want people turning it off, then filing
//a bug report :)
[Persistent] public bool SoundToggle = true;
[Persistent] public float MasterVolume = 0.5f;
[Persistent] public GUIWindow Window = GUIWindow.OPTIONS;
[Persistent] private string cfgVersionLoaded = DangerAlertUtils.Version;
public Rect GUIPosition = new Rect();
public void UpdateFromGui(DangerAlertGUI gui)
//Updates all the setting classes variables from a DangerAlertGUI's textbox values.
{
MasterToggle = gui.masterToggle;
MasterVolume = gui.VolumeSlider;
SoundToggle = gui.soundToggle;
Window = gui.Window;
GUIPosition = gui.GetPosition();
}
public void UpdateFromCfg()
//Loads in values from filePath's file.
{
if (System.IO.File.Exists(optionFilePath))
{
ConfigNode cnToLoad = ConfigNode.Load(optionFilePath);
ConfigNode.LoadObjectFromConfig(this, cnToLoad);
}
else
{
DangerAlertUtils.Log("Options file does not exist; using defaults instead");
}
}
public void SaveCfg()
//Saves all [Persistent] variables to the cfg, in filePath
{
string tempVersionLoaded = cfgVersionLoaded;
cfgVersionLoaded = DangerAlertUtils.Version;
ConfigNode cnTemp = ConfigNode.CreateConfigFromObject(this, new ConfigNode());
cnTemp.Save(optionFilePath);
cfgVersionLoaded = tempVersionLoaded;
}
}
}