Türen öffnen und schließen
1.
Erstellen wir zuerst wieder eine leere Liste für die alle Türen. Das geht mit dem Typ List
. Du musst zudem den Typ der Elemente angeben wie hier IMyDoor
.
List<IMyDoor> tueren = new List<IMyDoor>();
2.
Nun benötigen wir noch eine String-Variable für die auszuführende Aktion, welche später auf die Türen angewendet werden soll:
String aktion = "Open_Off";
3.
Nun füllen wir die leere Liste tueren mit alle Blöcken des Typs IMyDoor
aus dem aktuellen Grid:
GridTerminalSystem.GetBlocksOfType<IMyDoor>(tueren);
4.
Jetzt unterscheiden wir, ob das Argument das an den Programmierbaren Block übergeben wurde on oder off ist. Je nach dem soll später eine andere Aktion ausgeführt werden:
if (argument == "open")
{
aktion = "Open_On";
}
else if (argument == "close")
{
aktion = "Open_Off";
}
5.
Nun durchlaufen wir mit derfor-Schleife
die Liste aller Türen. Dabei holen wir uns bei jedem Durchlauf das aktuelle Element aus der Liste und führen die vorher festgelegte Aktion darauf durch:
// Durchlaufe die Liste aller Türen
for (int i = 0; i
// Leere Liste für alle Tueren anlegen
List<IMyDoor> tueren = new List<IMyDoor>();
// Variable für die Aktion die auf das Licht angewendet werden soll
String aktion = "Open_off";
// Die Hauptfunktion, diese wird vom Programmierbaren Block ausgeführt
public void Main(string argument)
{
// Weist der Liste lichter alle Blöcke des Typs I
GridTerminalSystem.GetBlocksOfType<IMyDoor>(tueren);
// Wenn dem Programmierbaren Block "open" als argument übergeben wird
if (argument == "open")
{
aktion = "Open_On";
}
else if (argument == "close")
{
aktion = "Open_Off";
}
// Durchlaufe die Liste aller Türen
for (int i = 0; i < tueren.Count; i++)
{
// Hole Element i aus der Liste
IMyDoor tuer = tueren[i] as IMyDoor;
// Wende Action Schließen/Öffnen auf das die Tür an
tuer.ApplyAction(aktion);
}
}