diff --git a/ActionSequencer/Program.cs b/ActionSequencer/Program.cs index 7467643..8801ef9 100644 --- a/ActionSequencer/Program.cs +++ b/ActionSequencer/Program.cs @@ -20,7 +20,7 @@ namespace IngameScript // initialize all the sequencers List blocks = new List(); - GridTerminalSystem.GetBlocksOfType(blocks, block => MyIni.HasSection(block.CustomData, "sequencer")); + GridTerminalSystem.GetBlocksOfType(blocks, blockFilter); foreach (IMyTerminalBlock block in blocks) { @@ -173,5 +173,10 @@ namespace IngameScript Console.Print($"Can't add unsupported block '{block.CustomName}'"); return null; } + + public bool blockFilter(IMyTerminalBlock block) + { + return block.IsSameConstructAs(this.Me) && MyIni.HasSection(block.CustomData, "sequencer"); + } } } diff --git a/AirMonitor/Program.cs b/AirMonitor/Program.cs index 9175d31..77a0904 100644 --- a/AirMonitor/Program.cs +++ b/AirMonitor/Program.cs @@ -32,7 +32,7 @@ namespace IngameScript // Find all tagged objects and build out zones List blocks = new List(); - GridTerminalSystem.GetBlocksOfType(blocks, block => MyIni.HasSection(block.CustomData, "airMonitor")); + GridTerminalSystem.GetBlocksOfType(blocks, blockFilter); foreach (IMyTerminalBlock block in blocks) { Ini.TryParse(block.CustomData); @@ -149,36 +149,9 @@ namespace IngameScript } } - // write diagnostics to any configured display screens - // private void updateDisplays() - // { - // if (_displays.Count == 0) return; - - // _displayBuffer.Clear(); - // _displayBuffer.Append("AIR PRESSURE REPORT\n\n"); - // foreach (AirZone zone in _zones.Values) - // { - // _displayBuffer.Append(zone.Name); - // _displayBuffer.Append(": "); - // _displayBuffer.Append(zone.Triggered ? "ALARM TRIPPED " : "nominal "); - // foreach (IMyAirVent vent in zone.Vents) - // { - // _displayBuffer.Append((int)(vent.GetOxygenLevel() * 100F)); - // _displayBuffer.Append("% "); - // } - - // _displayBuffer.Append("\n"); - // } - - // _displayBuffer.Append("\n"); - // _displayBuffer.Append("OXYGEN TANK LEVELS\n"); - // foreach (IMyGasTank tank in _oxygenTanks) - // { - // _displayBuffer.Append((int)(tank.FilledRatio * 100)); - // _displayBuffer.Append("% "); - // } - - // foreach (IMyTextSurface display in _displays) display.WriteText(_displayBuffer.ToString()); - // } + private bool blockFilter(IMyTerminalBlock block) + { + return block.IsSameConstructAs(this.Me) && MyIni.HasSection(block.CustomData, "airMonitor"); + } } } diff --git a/Airlock/Program.cs b/Airlock/Program.cs index 832d0c5..d1d482d 100644 --- a/Airlock/Program.cs +++ b/Airlock/Program.cs @@ -19,7 +19,7 @@ namespace IngameScript Console = new MainConsole(this, "Airlock Controller"); List airlockBlocks = new List(); - GridTerminalSystem.GetBlocksOfType(airlockBlocks, block => MyIni.HasSection(block.CustomData, "airlock")); + GridTerminalSystem.GetBlocksOfType(airlockBlocks, blockFilter); IMyAirVent referenceVent = null; foreach (IMyTerminalBlock block in airlockBlocks) { @@ -87,5 +87,10 @@ namespace IngameScript if (_jobs.Count == 0) Runtime.UpdateFrequency = UpdateFrequency.None; } + + private bool blockFilter(IMyTerminalBlock block) + { + return block.IsSameConstructAs(this.Me) && MyIni.HasSection(block.CustomData, "airlock"); + } } } diff --git a/DockingController/Program.cs b/DockingController/Program.cs index 3734a42..289d0cc 100644 --- a/DockingController/Program.cs +++ b/DockingController/Program.cs @@ -22,7 +22,6 @@ namespace IngameScript // We store a list of the dockingPorts because we will only dock if one is ready to lock. GridTerminalSystem.GetBlocksOfType(_dockingPorts, blockFilter); - foreach (IMyShipConnector dockingPort in _dockingPorts) { _actionGroup.AddActionBlock("dock", 0, new BlockActionConnector(dockingPort, ConnectorAction.Connect)); @@ -45,6 +44,10 @@ namespace IngameScript _actionGroup.AddActionBlock("undock", 0, new BlockActionGasTank(gasTank, GasTankAction.Dispense)); } + Console.Print($"Found {_dockingPorts.Count} docking ports."); + Console.Print($"Found {thrusters.Count} thrusters."); + Console.Print($"Found {gasTanks.Count} gas tanks."); + Console.UpdateTickCount(); } @@ -89,6 +92,7 @@ namespace IngameScript private bool blockFilter(IMyTerminalBlock block) { + if (!block.IsSameConstructAs(this.Me)) return false; if (MyIni.HasSection(block.CustomData, "docking")) { Ini.TryParse(block.CustomData);