Files
Enigmos/Modules/TerminalModules/TestingModules/LightEmittingDiodeModule.cs
2024-07-10 15:27:36 +01:00

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;
}
}