-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHeadMaster.cs
84 lines (82 loc) · 2.94 KB
/
HeadMaster.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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using Database;
using Overlay;
using Simulation;
namespace KerbalWeatherSystems
{
[KSPAddon(KSPAddon.Startup.MainMenu,true)]
public class HeadMaster:MonoBehaviour
{
private static WeatherSimulator sim;
private static bool prepToNew = true;
private static bool prepToDestroy = false;
public void Awake()
{
//this is a comment
Logger("Awoke!");
DontDestroyOnLoad(this);
Logger("Checking basic files");
WeatherDatabase.BasicSanityCheck();
WeatherSettings.SettingsFileIntegrityCheck();
if(WeatherDatabase.BasicFileIntegrityCheck())
{
Logger("Integrity check passed, continuing");
}
else
{
Logger("Integrity check failed, quitting.");
return;
}
//init planet
WeatherDatabase.LoadInitPlanetaryData();
WeatherSettings.LoadSettings();
GameEvents.onGameSceneSwitchRequested.Add(scene =>
{
if(scene.from == GameScenes.MAINMENU && scene.to == GameScenes.SPACECENTER)
{
prepToNew = true;
}
else if(scene.from == GameScenes.SPACECENTER && scene.to == GameScenes.MAINMENU)
{
prepToDestroy = true;
sim = null;
Destroy(this.gameObject.GetComponent<WeatherSimulator>());
Destroy(this.gameObject.GetComponent<MapOverlay>());
Destroy(this.gameObject.GetComponent<WeatherGUI.WeatherGUI>());
prepToDestroy = false;
}
});
GameEvents.onGameStateLoad.Add(node =>
{
if(HighLogic.LoadedScene == GameScenes.SPACECENTER && prepToNew)
{
//new up simulator
sim = this.gameObject.AddComponent<WeatherSimulator>();
this.gameObject.AddComponent<MapOverlay>();
this.gameObject.AddComponent<WeatherGUI.WeatherGUI>();
prepToNew = false;
}
if(HighLogic.LoadedScene == GameScenes.MAINMENU && prepToDestroy)
{
sim = null;
Destroy(this.gameObject.GetComponent<WeatherSimulator>());
Destroy(this.gameObject.GetComponent<MapOverlay>());
Destroy(this.gameObject.GetComponent<WeatherGUI.WeatherGUI>());
prepToDestroy = false;
}
});
}
public void FixedUpdate()
{
WeatherLogger.Update();
}
public void Logger(String s)
{
WeatherLogger.Log("[HM]" + s);
}
}
}