void collectObjectsForAirvent(String blockName, AirlockObjects airlock) { string airVentName = blockName.Substring(0, 8); List<IMyTerminalBlock> tmpObjects = new List<IMyTerminalBlock>(); Echo(airVentName); for (int j = 0; j < airventObjects.Count; j++) { IMyTerminalBlock tmp = GridTerminalSystem.GetBlockWithName(airVentName + airventObjects[j]) as IMyTerminalBlock; if (tmp != null) { Echo(airVentName + airventObjects[j]); } tmpObjects.Add(tmp); } airlock.outsideDoorBlock = (IMyDoor)tmpObjects[0]; airlock.insideDoorBlock = (IMyDoor)tmpObjects[1]; airlock.outsideLight = (IMyInteriorLight)tmpObjects[2]; airlock.insideLight = (IMyInteriorLight)tmpObjects[3]; airlock.middleLight = (IMyInteriorLight)tmpObjects[4]; airlock.airvent = (IMyAirVent)tmpObjects[5]; }
/* collect all inside doorblocks that start with airvent, these should be unique*/ void initAirlocks() { List<IMyTerminalBlock> allBlocks = new List<IMyTerminalBlock>(); GridTerminalSystem.GetBlocks(allBlocks); List<IMyTerminalBlock> doorBlocks = new List<IMyTerminalBlock>(); GridTerminalSystem.GetBlocksOfType<IMyDoor>(doorBlocks); airlockCount = 0; for (int i = 0; i < doorBlocks.Count; i++) { string tmpBlockName = doorBlocks[i].CustomName; if (tmpBlockName.StartsWith("Airlock") && tmpBlockName.Substring(8) == "insideDoor") { AirlockObjects airlockObj = new AirlockObjects(); collectObjectsForAirvent(tmpBlockName, airlockObj); Airlock airlock = new Airlock(); airlock.AirlockInitObject(tmpBlockName, airlockObj); airlock.name = tmpBlockName; allAirlocks[airlockCount++] = airlock; } } }
public void AirlockInitObject(string _airlockName, AirlockObjects _airlock) { this.name = _airlockName; this.airlock = _airlock; }