HQ/HqDeciding.cs
namespace PlanetMeat;
[Group( "Planet Meat - HQ" ), Title( "HQ Deciding" ), Icon( "save" )]
public sealed class HqDeciding : Component
{
public static bool ShowIntro { get; private set; }
public static bool IsFreshStart { get; private set; }
[Property] private float SaveInterval { get; set; } = 5.0f;
private TimeUntil UntilNextSave { get; set; }
protected override void OnStart()
{
base.OnStart();
ShowIntro = Agenda.Current.Phase == Agenda.Phases.Startup;
UntilNextSave = SaveInterval;
if ( Career.Current.NeedsLoad )
{
Career.Current.LoadSave();
IsFreshStart = Career.Current.IsFreshSave;
}
else
{
IsFreshStart = false;
Research.Current.BakeCatalogue();
Save();
}
HqNavigator.View = IsFreshStart ? HqNavigator.Views.Mission : HqNavigator.Views.None;
}
private static void Save() => Career.Current.SaveProgress();
protected override void OnUpdate()
{
base.OnUpdate();
if ( !IsFreshStart )
{
if ( ShowIntro && (Input.Keyboard.Pressed( "space" ) || Input.Pressed( "SkipIntro" )) )
ShowIntro = false;
if ( !IsFreshStart && UntilNextSave )
{
Save();
UntilNextSave = SaveInterval;
}
}
}
}