46 lines
1.4 KiB
C#
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;
|
|
}
|
|
} |