Files
Enigmos/Boards/PrimaryModuleBoard.cs
2024-07-03 12:20:08 +08:00

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);
}
}