Files
Enigmos/Boards/PrimaryModuleBoard.cs
2024-07-13 09:29:45 +01:00

46 lines
1.0 KiB
C#

using Enigmos.Modules.ControllingModules;
using Enigmos.Modules.TerminalModules;
using Nocturnis.Creatures;
using Nocturnis.Enigmos.Boards;
using Nocturnis.Enigmos.Modules;
using Nocturnis.GlobalManagement.Constants;
using Nocturnis.GlobalManagement.Controls;
namespace Enigmos.Boards;
public partial class PrimaryModuleBoard : BaseBoard, IPrimaryBoard
{
private IBaseCreature ManagedBy { get; set; }
public IRootModule Root { get; set; }
public IEngineModule Engine { get; set; }
public void Init(IBaseCreature manager)
{
Init();
Root = GetModule<RootModule>("Root");
Engine = GetModule<EngineModule>("Engine");
Root.ManagedBy = manager;
ManagedBy = manager;
}
public void Start()
{
if (!Root!.ActionFinished)
return;
//Root.Timer = Stopwatch.StartNew();
Engine!.Consume();
if (EnigmosControl.Instance.Energy < EnigmosConstant.IdlePower)
{
Root!.ActionFinished = true;
EnigmosControl.Instance.ShutDownEngine();
return;
}
Root.Start();
foreach (ITerminalModule tm in TerminalModules)
tm.Consume();
}
}