using Enigmos.Cables; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.SignalPorts.Directions; using Nocturnis.GlobalManagement.Controls; namespace Enigmos.Ports.SignalPorts; public partial class SignalOutPort : SignalPort, ISignalOutPort { public new IRoutingModule Module { get => (base.Module as IRoutingModule)!; set => base.Module = value; } public new ISignalInPort? ConnectedPort { get => base.ConnectedPort as ISignalInPort; set => base.ConnectedPort = value; } public override bool IsMatch(IBasePort other) => other is SignalInPort; public override BaseCable MakeCable(IBasePort other) { BaseCable res = base.MakeCable(other); res.PortFrom = other; res.PortTo = this; return res; } public void Route() { if (!Connected) { CreatureControl.Instance.CurrentCharacter!.MotherBoard.Root.ActionFinished = true; return; } ConnectedPort!.Module.Visit(); } }