using Enigmos.Modules.ControllingModules; using Enigmos.Ports; using Enigmos.Ports.DataPorts; using Godot; using Nocturnis.Enigmos.Ports; using TabulaSmaragdina.Constants; namespace Enigmos.Modules.TerminalModules.TestingModules; public partial class LightEmittingDiodeModule : TerminalModule { private Sprite2D LightEmittingDiode { get; set; } private DataInPort Input { get; set; } public override IEnumerable Ports => new[] { Input }; 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 = GetPort("Input"); Input.SetDataType(EnigmosConstant.DataPortTypes.Bit); PostInit(); } protected override void Consume(RootModule root) { if (Input.GetData(root).Bit) LightEmittingDiode.Texture = TrueTexture; else LightEmittingDiode.Texture = FalseTexture; Finished = true; } }