public OxygenControl(LCDClass lcd, Program par) { lcdHandler = lcd; parent = par; try { parent.GridTerminalSystem.GetBlocksOfType(ventsHangar, x => x.CustomName.Contains("Hangar")); parent.GridTerminalSystem.GetBlocksOfType(HangarOxyTanks, x => x.CustomName.Contains("Hangar")); parent.GridTerminalSystem.GetBlocksOfType(ShipGasTanks, x => !x.CustomName.Contains("Hangar")); IMyBlockGroup doors = parent.GridTerminalSystem.GetBlockGroupWithName("Hangar Doors"); parent.GridTerminalSystem.GetBlocksOfType(oxygenGenerators); doors.GetBlocksOfType(hangarDoors); if (ventsHangar.Count != 0) { hangarState = ventsHangar[0].GetOxygenLevel() == 1 ? AIR_STATE.Full : AIR_STATE.Empty; } else { throw new NullReferenceException(); } EnableGasGenerator(false); EnableGasTank(true, ShipGasTanks); EnableGasTank(false, HangarOxyTanks); lcdHandler.logMessage("Oxygen Control operational", Tags.OXY, Labels.BOOT); } catch (NullReferenceException) { lcd.logMessage("Oxygen Control not operational, something is missing", Tags.OXY, Labels.cERR); hangarState = AIR_STATE.Error; } }
public StateMaschine(LCDClass log, Program par) { parent = par; lcdHandler = log; stateMaschine = CreateStateMaschine(); //Start the main code if (currentState != State.Error) { running = true; } }
//----------------------------------------------------- public Program() { //Initialize logic for state maschine ------------------------------------ lcdHandler = new LCDClass(this); stateHandler = new StateMaschine(lcdHandler, this); oxygenHandler = new OxygenControl(lcdHandler, this); gravityHandler = new GravityControl(lcdHandler, this); //--------------------------------------------------------------------------- StateMaschienOperational = stateHandler.isOperational(); OxygenControlOperational = oxygenHandler.isOperational(); GravityControlOperational = gravityHandler.isOperational(); //Getting all GG at once to check if they are there-------------------------- }
public GravityControl(LCDClass lcd, Program par) { lcdHandler = lcd; parent = par; setup(); }