Files
Enigmos/Ports/SignalPorts/SignalPort.cs
2024-07-29 17:24:31 +01:00

46 lines
1.4 KiB
C#

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<AnimatedSprite2D>("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<BaseCable>();
res.Init();
return res;
}
public new ISignalPort? ConnectedPort
{
get => (base.ConnectedPort as ISignalPort)!;
set => base.ConnectedPort = value;
}
}