while mining_active: field = read_magnetic_sensor() if field > MAGNETIC_THRESHOLD: activate_magnet() wait(extract_time) deactivate_magnet() update_inventory() else: move_to_next_position() wait(scan_interval) This script simulates a magnetic miner moving along a 1D ore track.
def extract_ore(self): print("Magnet ON") time.sleep(self.extract_time) print("Magnet OFF") self.inventory.append(1) magnet miner script
// Place this in a Programmable Block, run once per tick List<IMyTerminalBlock> oreDetectors = new List<IMyTerminalBlock>(); GridTerminalSystem.GetBlocksOfType<IMyOreDetector>(oreDetectors); float threshold = 0.7f; IMyShipConnector magnet = GridTerminalSystem.GetBlockWithName("Magnet Collector") as IMyShipConnector; run once per tick List<