using Enigmos.Cables; using Godot; using Nocturnis.Enigmos.Ports; using Nocturnis.Enigmos.Ports.SignalPorts; using Nocturnis.GlobalManagement.Providers; namespace Enigmos.Ports.SignalPorts; public abstract partial class SignalPort : BasePort, ISignalPort { protected AnimatedSprite2D? SignalDirection { get; set; } public override void Init() { base.Init(); SignalDirection = GetNode("SignalDirection"); SignalDirection.Visible = false; } private void MouseEnteredHandler() => SignalDirection!.Visible = true; private void MouseExitedHandler() => SignalDirection!.Visible = false; public override void SetStatusConnected() { base.SetStatusConnected(); TextureNormal = GlobalProvider.EnigmosProvider!.SignalPortStatusConnected; } public override void SetStatusNormal() => TextureNormal = GlobalProvider.EnigmosProvider!.SignalPortStatusNormal; public override void SetStatusPending() => TextureNormal = GlobalProvider.EnigmosProvider!.SignalPortStatusPending; public override BaseCable MakeCable(IBasePort other) { BaseCable res = GlobalProvider.EnigmosProvider!.SignalCableScene.Instantiate(); res.Init(); return res; } public new ISignalPort? ConnectedPort { get => (base.ConnectedPort as ISignalPort)!; set => base.ConnectedPort = value; } }