38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using Enigmos.Modules.ControllingModules;
|
|
using Enigmos.Ports.DataPorts;
|
|
using Godot;
|
|
using Nocturnis.Enigmos.Modules;
|
|
using Nocturnis.Enigmos.Ports;
|
|
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
|
|
using Nocturnis.GlobalManagement.Constants;
|
|
|
|
namespace Enigmos.Modules.TerminalModules.TestingModules;
|
|
|
|
public abstract partial class LightEmittingDiodeModule : TerminalModule
|
|
{
|
|
private Sprite2D? LightEmittingDiode { get; set; }
|
|
private IDataInPort? Input { get; set; }
|
|
|
|
private static readonly Texture2D TrueTexture =
|
|
ResourceLoader.Load<Texture2D>("res://Resources/Circuits/Modules/Terminal/Testing/LEDBubble-T.png");
|
|
private static readonly Texture2D FalseTexture =
|
|
ResourceLoader.Load<Texture2D>("res://Resources/Circuits/Modules/Terminal/Testing/LEDBubble-F.png");
|
|
public override void Init()
|
|
{
|
|
base.Init();
|
|
Finished = true;
|
|
LightEmittingDiode = GetNode<Sprite2D>("LightEmittingDiode");
|
|
Input = this.GetPort<DataInPort>("Input");
|
|
Input.SetDataType(EnigmosConstant.DataPortTypes.Bit);
|
|
PostInit();
|
|
}
|
|
|
|
public override void Drain()
|
|
{
|
|
if (Input!.GetData.Get!.Bit)
|
|
LightEmittingDiode!.Texture = TrueTexture;
|
|
else
|
|
LightEmittingDiode!.Texture = FalseTexture;
|
|
Finished = true;
|
|
}
|
|
} |