Files
Enigmos/Ports/SignalPorts/SignalPort.cs
2024-06-30 01:52:44 +08:00

42 lines
1.3 KiB
C#

using Enigmos.Cables;
using Godot;
using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports;
using TabulaSmaragdina;
namespace Enigmos.Ports.SignalPorts;
public abstract partial class SignalPort : BasePort, ISignalInPort
{
public new IControllingModule Module
{
get => (base.Module as IControllingModule)!;
set => base.Module = value;
}
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() =>
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;
}
}