From 5862ef483cddab0c1e9e5fc1c322459216188246 Mon Sep 17 00:00:00 2001 From: Aristeas <94058548+ari-steas@users.noreply.github.com> Date: Sun, 26 Jan 2025 21:36:45 -0600 Subject: [PATCH 1/2] Force radiator panels to be visible every tick. --- .../HeatParts/ExtendableRadiators/ExtendableRadiator.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Utility Mods/MoA Fusion Systems/Data/Scripts/ModularAssemblies/HeatParts/ExtendableRadiators/ExtendableRadiator.cs b/Utility Mods/MoA Fusion Systems/Data/Scripts/ModularAssemblies/HeatParts/ExtendableRadiators/ExtendableRadiator.cs index 8e8c80e10..45ac4e223 100644 --- a/Utility Mods/MoA Fusion Systems/Data/Scripts/ModularAssemblies/HeatParts/ExtendableRadiators/ExtendableRadiator.cs +++ b/Utility Mods/MoA Fusion Systems/Data/Scripts/ModularAssemblies/HeatParts/ExtendableRadiators/ExtendableRadiator.cs @@ -90,6 +90,8 @@ public override void UpdateAfterSimulation() // This is stupid, but prevents the mod profiler cost from being incurred every tick per block when inactive if (Animation.IsActive) Animation.UpdateTick(); + else + MakePanelsVisible(); } public override bool IsSerialized() @@ -214,6 +216,8 @@ public void MakePanelsVisible() while (GetNextPanel(idx, out nextBlock)) { + if (nextBlock.Visible) + return; nextBlock.Visible = true; idx++; } From 71969641db1d55479435c3d8714ed2dade3982a3 Mon Sep 17 00:00:00 2001 From: Aristeas <94058548+ari-steas@users.noreply.github.com> Date: Sun, 26 Jan 2025 21:40:26 -0600 Subject: [PATCH 2/2] Update RadiatorControls.cs --- .../ExtendableRadiators/RadiatorControls.cs | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/Utility Mods/MoA Fusion Systems/Data/Scripts/ModularAssemblies/HeatParts/ExtendableRadiators/RadiatorControls.cs b/Utility Mods/MoA Fusion Systems/Data/Scripts/ModularAssemblies/HeatParts/ExtendableRadiators/RadiatorControls.cs index ea8e7739e..d39b63d98 100644 --- a/Utility Mods/MoA Fusion Systems/Data/Scripts/ModularAssemblies/HeatParts/ExtendableRadiators/RadiatorControls.cs +++ b/Utility Mods/MoA Fusion Systems/Data/Scripts/ModularAssemblies/HeatParts/ExtendableRadiators/RadiatorControls.cs @@ -75,6 +75,58 @@ private static void CreateControls() MyAPIGateway.TerminalControls.AddAction(a); } + + { + var a = MyAPIGateway.TerminalControls.CreateAction("Radiator_SetExtendedTrue"); + a.Name = new StringBuilder("Extend Radiator"); + a.ValidForGroups = true; + + a.Enabled = CustomVisibleCondition; + + a.Writer = (block, builder) => + { + builder.Clear(); + if (block?.GameLogic?.GetAs()?.IsExtended ?? false) + builder.Append("Extended"); + else + builder.Append("Retracted"); + }; + + a.Action = (block) => + { + var logic = block?.GameLogic?.GetAs(); + if (logic != null && !logic.IsExtended) + logic.IsExtended = true; + }; + + MyAPIGateway.TerminalControls.AddAction(a); + } + + { + var a = MyAPIGateway.TerminalControls.CreateAction("Radiator_SetExtendedFalse"); + a.Name = new StringBuilder("Retract Radiator"); + a.ValidForGroups = true; + + a.Enabled = CustomVisibleCondition; + + a.Writer = (block, builder) => + { + builder.Clear(); + if (block?.GameLogic?.GetAs()?.IsExtended ?? false) + builder.Append("Extended"); + else + builder.Append("Retracted"); + }; + + a.Action = (block) => + { + var logic = block?.GameLogic?.GetAs(); + if (logic != null && logic.IsExtended) + logic.IsExtended = false; + }; + + MyAPIGateway.TerminalControls.AddAction(a); + } } } }