public static StationMonitorCore GetInstance(MyGridProgram program) { if (_instance == null) { _instance = new StationMonitorCore(program); } return(_instance); }
public static void Load(StationMonitorCore sm) { MonitorBlockBuilder mbb = sm.MBBuilder; mbb["AirVent"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyAirVent>(parser) { InfoMaker = (IMyAirVent block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "Factory" } }, { "vent", new VentInfo(block) } }; } }); }; mbb["Door"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyDoor>(parser) { InfoMaker = (IMyDoor block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "Factory" } }, { "door", new DoorInfo(block) } }; } }); }; mbb["Connector"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyShipConnector>(parser) { InfoMaker = (IMyShipConnector block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "Factory" } }, { "connector", new ConnectorInfo(block) } }; } }); }; }
public static void Load(StationMonitorCore sm) { MonitorBlockBuilder mbb = sm.MBBuilder; mbb["Reactor"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyReactor>(parser) { InfoMaker = (IMyReactor block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "PowerGen" } }, { "out", new Output(block, "Output") }, { "eff", new Efficiency(block, "Efficiency") }, { "sto", new Store(block, MyItemType.MakeIngot("Uranium"), "Stored Uranium") } }; } }); }; mbb["SolarPanel"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMySolarPanel>(parser) { InfoMaker = (IMySolarPanel block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "PowerGen" } }, { "out", new Output(block, "Output") }, { "eff", new Efficiency(block, "Efficiency") } }; } }); }; mbb["Battery"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyBatteryBlock>(parser) { InfoMaker = (IMyBatteryBlock block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "PowerGen" } }, { "out", new Output(block, "Output") }, { "eff", new Efficiency(block, "Efficiency") }, { "in", new Input(block, "Input") }, { "cha", new Charge(block, "Charge") } }; } }); }; mbb["HydrogenEngine"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyPowerProducer>(parser) { SubFilter = (IMyTerminalBlock block) => { if (!block.BlockDefinition.SubtypeId.Contains("HydrogenEngine")) { return false; } return true; }, InfoMaker = (IMyPowerProducer block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "PowerGen" } }, { "out", new Output(block, "Output") }, { "eff", new Efficiency(block, "Efficiency") }, { "sto", new Store(block, "Stored Hydrogen") } }; } }); }; mbb["WindTurbine"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyPowerProducer>(parser) { SubFilter = (IMyTerminalBlock block) => { if (!block.BlockDefinition.SubtypeId.Contains("WindTurbine")) { return false; } return true; }, InfoMaker = (IMyPowerProducer block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "PowerGen" } }, { "out", new Output(block, "Output") }, { "eff", new Efficiency(block, "Efficiency") } }; } }); }; mbb["PowerProducer"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyPowerProducer>(parser) { InfoMaker = (IMyPowerProducer block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "PowerGen" } }, { "out", new Output(block, "Output") } }; } }); }; mbb["PowerGenerator"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyPowerProducer>(parser) { SubFilter = (IMyTerminalBlock block) => { if (block.BlockDefinition.SubtypeId.Contains("Battery")) { return false; } return true; }, InfoMaker = (IMyPowerProducer block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "PowerGen" } }, { "out", new Output(block, "Output") } }; } }); }; }
public static void Load(StationMonitorCore sm) { MonitorBlockBuilder mbb = sm.MBBuilder; mbb["Container"] = (MonitorBlockParser parser) => { MonitorOption option; string targetIngot = null; string targetOre = null; string desc = ""; string name; if (parser.Options.TryGetValue("ore", out option)) { targetOre = option.StrValue; if (OreNameTable.TryGetValue(targetOre, out name)) { desc = $"Stored {name}"; } } if (parser.Options.TryGetValue("ingot", out option)) { targetIngot = option.StrValue; if (IngotNameTable.TryGetValue(targetIngot, out name)) { desc = $"Stored {name}"; } } return(new MonitorBlock <IMyCargoContainer>(parser) { InfoMaker = (IMyCargoContainer block, int index) => { Store store = new Store(); if ((targetOre == null) && (targetIngot == null)) { store = new Store(block, desc); } else if (targetOre != null) { store = new Store(block, MyItemType.MakeOre(targetOre), desc); } else if (targetIngot != null) { store = new Store(block, MyItemType.MakeIngot(targetIngot), desc); } return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "Container" } }, { "sto", store } }; } }); }; mbb["Inventory"] = (MonitorBlockParser parser) => { MonitorOption option; string targetIngot = null; string targetOre = null; string desc = ""; string name; if (parser.Options.TryGetValue("ore", out option)) { targetOre = option.StrValue; if (OreNameTable.TryGetValue(targetOre, out name)) { desc = $"Stored {name}"; } } if (parser.Options.TryGetValue("ingot", out option)) { targetIngot = option.StrValue; if (IngotNameTable.TryGetValue(targetIngot, out name)) { desc = $"Stored {name}"; } } return(new MonitorBlock <IMyTerminalBlock>(parser) { SubFilter = (IMyTerminalBlock block) => { if (block.InventoryCount == 0) { return false; } return true; }, InfoMaker = (IMyTerminalBlock block, int index) => { Store store = new Store(); if ((targetOre == null) && (targetIngot == null)) { store = new Store(block, desc); } else if (targetOre != null) { store = new Store(block, MyItemType.MakeOre(targetOre), desc); } else if (targetIngot != null) { store = new Store(block, MyItemType.MakeIngot(targetIngot), desc); } return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "Container" } }, { "sto", store } }; } }); }; mbb["Refinery"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyRefinery>(parser) { InfoMaker = (IMyRefinery block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "Factory" } }, { "instore", new Store(block.InputInventory) }, { "outstore", new Store(block.OutputInventory) }, { "product", new Production(block) } }; } }); }; mbb["Assembler"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyAssembler>(parser) { InfoMaker = (IMyAssembler block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "Factory" } }, { "instore", new Store(block.InputInventory) }, { "outstore", new Store(block.OutputInventory) }, { "product", new Production(block) }, { "assemble", new Assembler(block) } }; } }); }; }
public static void Load(StationMonitorCore sm) { MonitorBlockBuilder mbb = sm.MBBuilder; mbb["GasGenerator"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyGasGenerator>(parser) { InfoMaker = (IMyGasGenerator block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "GasTank" } }, { "sto", new Store(block, MyItemType.MakeOre("Ice"), "Stored Ice") } }; } }); }; mbb["OxygenFarm"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyOxygenFarm>(parser) { InfoMaker = (IMyOxygenFarm block, int index) => { var store = new Store("Oxygen Output"); // CubeBlocks.sbc <SubtypeId>LargeBlockOxygenFarm</SubtypeId> <MaxOutputPerSecond>0.03</MaxOutputPerSecond> store.Max = 0.03f; // unit is "L" store.Current = store.Max * block.GetOutput(); return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "GasTank" } }, { "sto", store } }; } }); }; mbb["OxygenTank"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyGasTank>(parser) { SubFilter = (IMyTerminalBlock block) => { if (block.BlockDefinition.SubtypeId.Contains("Hydrogen")) { return false; } return true; }, InfoMaker = (IMyGasTank block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "O2Tank" } }, { "sto", new Store(block, "Stored Oxygen") } }; } }); }; mbb["HydrogenTank"] = (MonitorBlockParser parser) => { return(new MonitorBlock <IMyGasTank>(parser) { SubFilter = (IMyTerminalBlock block) => { if (!block.BlockDefinition.SubtypeId.Contains("Hydrogen")) { return false; } return true; }, InfoMaker = (IMyGasTank block, int index) => { return new MonitorInfo { { "block", new CommonInfo(block, index) { Icon = "H2Tank" } }, { "sto", new Store(block, "Stored Hydrogen") } }; } }); }; }