using System.Xml.Linq; namespace Barotrauma.Items.Components { class MemoryComponent : ItemComponent { [InGameEditable, Serialize("", true)] public string Value { get; set; } protected bool writeable = true; public MemoryComponent(Item item, XElement element) : base(item, element) { IsActive = true; } public override void Update(float deltaTime, Camera cam) { item.SendSignal(0, Value, "signal_out", null); } public override void ReceiveSignal(int stepsTaken, string signal, Connection connection, Item source, Character sender, float power = 0.0f, float signalStrength = 1.0f) { switch (connection.Name) { case "signal_in": if (writeable) { Value = signal; } break; case "signal_store": writeable = (signal == "1"); break; } } } }