using System.Diagnostics; using Enigmos.Ports; using Enigmos.Ports.SignalPorts; using Nocturnis.Creatures; using Nocturnis.Enigmos.Modules; namespace Enigmos.Modules.ControllingModules; public partial class RootModule : ControllingModule, IRootModule { public bool ActionFinished { get; set; } public IBaseCreature? ManagedBy { get; set; } protected override bool Draggable => false; private SignalOutPort? SignalOut1 { get; set; } public override IEnumerable Ports => new[] { SignalOut1 }!; public Stopwatch? Timer { get; set; } public override void Init() { base.Init(); ActionFinished = true; SignalOut1 = GetPort("SignalOut1"); PostInit(); } protected override void Route(IRootModule r) { if(!SignalOut1!.Connected) { ActionFinished = true; return; } Visited = true; SignalOut1.ConnectedPort!.Module.RouteWithTimeoutHandle(this); } }