/** CUSTOMIZE HERE * Set the thresholds here */ const int upperThreshold = 25000000; const int lowerThreshold = 1000000; /** * DO NOT CHANGE ANYTHING BELOW THIS LINE */ string collectorState = ""; List oreContainers = new List(); List Items = new List(); IMyBlockGroup collectorGroup; List collectors = new List(); public Program() { Runtime.UpdateFrequency = UpdateFrequency.Update100; } public void Main(string args) { collectorGroup = GridTerminalSystem.GetBlockGroupWithName("Collectors"); collectorGroup.GetBlocksOfType(collectors); int iceamount = getCurrentIceAmount(); collectorState = collectors[0].Enabled ? "Active" : "Inactive"; Echo($"Current Ice Amount: {iceamount}"); Echo($"Collectors are {collectorState}"); if(iceamount > upperThreshold) { toggleCollectors(false); Echo($"Collectors are OFF"); } else if (iceamount < lowerThreshold) { toggleCollectors(true); Echo($"Collectors are ON"); } } public int getCurrentIceAmount() { int totalAmount = 0; GridTerminalSystem.GetBlocksOfType(oreContainers); foreach (var osc in oreContainers) { var inventory = osc.GetInventory(0); Items.Clear(); inventory.GetItems(Items); foreach (var item in Items) { string key = item.Type.ToString(); if (key == "MyObjectBuilder_Ore/Ice") { totalAmount = totalAmount + item.Amount.ToIntSafe(); } } } return totalAmount; } public void toggleCollectors(bool targetState) { if (collectors == null) { Echo("Group collectors not found"); return; } foreach (var collector in collectors) { collector.Enabled = targetState; } }