46 lines
1.0 KiB
C#
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();
|
|
|
|
}
|
|
|
|
} |