Lichter aus- und anschalten
1.
Erstellen wir zuerst eine leere Liste für die Innenbleuchtung. Das geht mit dem Typ List
. Du musst zudem den Typ der Elemente angeben wie hier IMyInteriorLight
.
Allgemein würde aber auch IMyTerminalBLock
gehen, da das die Elternklasse aller Blockarten ist.
List<IMyInteriorLight> lichter = new List<IMyInteriorLight>();
2.
Nun benötigen wir noch eine String-Variable für die auszuführende Aktionn Text, welche später auf die Lichter angewendet werden soll:
String aktion = "OnOff_Off";
3.
Nun füllen wir die leere Liste lichter mit alle Blöcken des Typs IMyInteriorLight
aus dem aktuellen Grid:
GridTerminalSystem.GetBlocksOfType<IMyInteriorLight>(lichter);
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 == "on")
{
aktion = "OnOff_On";
}
else if (argument == "off")
{
aktion = "OnOff_Off";
}
5.
Nun durchlaufen wir mit einer for-Schleife
die Liste aller Lichter. Dabei holen wir uns bei jdem Durchlauf das aktuelle Element aus der Liste und führen die vorher festgelegte Aktion darauf durch:
// Durchlaufe die Liste aller Lichter
for (int i = 0; i
// Leere Liste für alle Innenbeleuchtungen anlegen
List<IMyInteriorLight> lichter = new List<IMyInteriorLight>();
// Variable für die Aktion die auf das Licht angewendet werden soll
String aktion = "OnOff_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<IMyInteriorLight>(lichter);
// Wenn dem Programmierbaren Block "on" als argument übergeben wird
if (argument == "on")
{
aktion = "OnOff_On";
}
// Wenn dem Programmierbaren Block "off" als argument übergeben wird
else if (argument == "off")
{
aktion = "OnOff_Off";
}
// Durchlaufe die Liste aller Lichter
for (int i = 0; i