public Door(IMyAirtightSlideDoor megDoor) { this.megDoor = megDoor; }
private void ControlDoors() { IMyAirtightSlideDoor insideDoor = GridTerminalSystem.GetBlockWithName("AirLock SlidingDoor In") as IMyAirtightSlideDoor; IMyAirtightSlideDoor outsideDoor = GridTerminalSystem.GetBlockWithName("AirLock SlidingDoor Out") as IMyAirtightSlideDoor; IMyAirVent airVent = GridTerminalSystem.GetBlockWithName("AirLock Vent") as IMyAirVent; if (insideDoor == null || outsideDoor == null || airVent == null) { return; } _PanelTextSurface.WriteText(String.Format( "Inside door ticks: {0}\nOutside door ticks: {1}\nPressure: {2}", _InsideDoorTicks, _OutsideDoorTicks, airVent.GetOxygenLevel() )); if (_InsideDoorTicks != -1) { --_InsideDoorTicks; } if (_OutsideDoorTicks != -1) { --_OutsideDoorTicks; } if (_InsideDoorTicks == 0) { insideDoor.CloseDoor(); _InsideDoorTicks = -1; _DoorNeedsClosing = false; } if (_OutsideDoorTicks == 0) { outsideDoor.CloseDoor(); _OutsideDoorTicks = -1; _DoorNeedsClosing = false; } if (insideDoor.Status == DoorStatus.Closed && outsideDoor.Status == DoorStatus.Closed && airVent.GetOxygenLevel() == 0.0f) { insideDoor.Enabled = true; outsideDoor.Enabled = true; _InsideDoorTicks = -1; _OutsideDoorTicks = -1; _DoorNeedsClosing = false; } if (outsideDoor.Status == DoorStatus.Open || outsideDoor.Status == DoorStatus.Opening) { insideDoor.CloseDoor(); insideDoor.Enabled = false; if (!_DoorNeedsClosing) { _OutsideDoorTicks = DOOR_DELAY; _DoorNeedsClosing = true; } } if (insideDoor.Status == DoorStatus.Open || insideDoor.Status == DoorStatus.Opening) { outsideDoor.CloseDoor(); outsideDoor.Enabled = false; if (!_DoorNeedsClosing) { _InsideDoorTicks = DOOR_DELAY; _DoorNeedsClosing = true; } } }