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("res://Resources/Circuits/Modules/Terminal/Testing/LEDBubble-T.png"); private static readonly Texture2D FalseTexture = ResourceLoader.Load("res://Resources/Circuits/Modules/Terminal/Testing/LEDBubble-F.png"); public override void Init() { base.Init(); Finished = true; LightEmittingDiode = GetNode("LightEmittingDiode"); Input = this.GetPort("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; } }