52 lines
1.2 KiB
C#
52 lines
1.2 KiB
C#
using Enigmos.Modules.ControllingModules;
|
|
using Enigmos.Modules.TerminalModules;
|
|
using Nocturnis.Creatures;
|
|
using Nocturnis.Enigmos.Modules;
|
|
using Nocturnis.GlobalManagement.Constants;
|
|
using Nocturnis.GlobalManagement.Controls;
|
|
|
|
namespace Enigmos.Boards;
|
|
|
|
public partial class PrimaryModuleBoard : BaseBoard
|
|
{
|
|
private IBaseCreature? ManagedBy { get; set; }
|
|
public IRootModule? Root { get; set; }
|
|
public EngineModule? 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!.Drain();
|
|
if (EnigmosControl.Instance.Energy < EnigmosConstant.IdlePower)
|
|
{
|
|
Root!.ActionFinished = true;
|
|
EnigmosControl.Instance.ShutDownEngine();
|
|
return;
|
|
}
|
|
Root.Start();
|
|
foreach (ITerminalModule tm in TerminalModules)
|
|
{
|
|
tm.Consume();
|
|
}
|
|
|
|
|
|
//Root.RouteWithTimeoutHandle(Root);
|
|
//Root.Timer.Reset();
|
|
//foreach (TerminalModule module in TerminalModules())
|
|
// module.ConsumeWithTimeoutHandle(Root);
|
|
}
|
|
|
|
} |