// 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;
if strength >= MAGNETIC_THRESHOLD: activate_magnet(ore) deactivate_magnet() INVENTORY.append(ore) print(f"📦 Inventory: INVENTORY") else: print("❌ Below threshold, skipping.") move_to_next() time.sleep(SCAN_INTERVAL)
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. magnet miner script
def move(self): print("Moving to next position")
def deactivate_magnet(): print("⛏️ Magnet deactivated. Ore collected.") // Place this in a Programmable Block, run
def read_magnetic_sensor(): # Simulate sensor reading based on random ore type ore_type = random.choice(list(ORE_VALUES.keys())) strength = ORE_VALUES[ore_type] + random.uniform(-0.1, 0.1) return ore_type, min(max(strength, 0), 1.0)
def extract_ore(self): print("Magnet ON") time.sleep(self.extract_time) print("Magnet OFF") self.inventory.append(1) | | Industrial automation (PLC / Python) |
| Context | Meaning | |---------|---------| | | Automates magnetic field detection, ore scanning, and extraction. | | Industrial automation (PLC / Python) | Controls an electromagnetic separator on a conveyor belt. | | Crypto mining analogy | A script that “magnetically” prioritizes high-value transactions. | | Educational simulation | Demonstrates magnetic separation of ferrous minerals. |
Here you'll find all collections you've created before.