Files
Enigmos/Modules/TerminalModules/TestingModules/LightEmittingDiodeModule.cs
2024-07-11 11:21:29 +01:00

36 lines
1.1 KiB
C#

using Enigmos.Ports.DataPorts;
using Godot;
using Nocturnis.Enigmos.Modules;
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(DataTypeConstant.BaseDataTypes.Bit);
PostInit();
}
public override void Drain()
{
if (Input!.GetData.Get!.Bit)
LightEmittingDiode!.Texture = TrueTexture;
else
LightEmittingDiode!.Texture = FalseTexture;
Finished = true;
}
}