Esempio n. 1
0
            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;
                }
            }
Esempio n. 2
0
 public StateMaschine(LCDClass log, Program par)
 {
     parent        = par;
     lcdHandler    = log;
     stateMaschine = CreateStateMaschine();
     //Start the main code
     if (currentState != State.Error)
     {
         running = true;
     }
 }
Esempio n. 3
0
        //-----------------------------------------------------

        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--------------------------
        }
Esempio n. 4
0
 public GravityControl(LCDClass lcd, Program par)
 {
     lcdHandler = lcd;
     parent     = par;
     setup();
 }