Seite dem Major Update auf Version 1.185 gibt es die Möglichkeit einen internen Timer für Programmierbare Blöcke zu verwenden.

Das ist mit der Klasse RuntimeInfo.UpdateFrequency möglich, die über die Eigenschaft Runtime der Klasse MyGridProgram (Klasse des Skripts im Programmierbaren Block) angesprochen werden kann.

Dazu muss man im Konstruktor Program() folgende Anweisung eintragen:

public Program()
{
 Runtime.UpdateFrequency = UpdateFrequency.Update1;
}

Dieser Aufruf bewirkt das sich der Programmierbare Block bei jedem Tick (=Zeiteinheit bei Skripten) selbst wieder aufruft. Damit entfällt das lästige Einstellen von Timer Blöcken um ein Skript immer wieder auszuführen.

Folgende Werten kann man mit UpdateFrequency zuweisen:

// Führt den Programmierbaren Block alle 1 Tick aus
Runtime.UpdateFrequency = UpdateFrequency.Update1;

// Führt den Programmierbaren Block alle 10 Ticks aus
Runtime.UpdateFrequency = UpdateFrequency.Update10;

// Führt den Programmierbaren Block alle 100 Ticks aus
Runtime.UpdateFrequency = UpdateFrequency.Update100;

Die Funktion Main() wurde im gleichen Zug um ein zweites Übergabeargument erweitert:

Nun erhält er die Information, wer ihn ausgeführt hat. Das können Terminals, Antennen, Timer, Mods oder halt eine der obengenannten Einstellungen sein (Siehe dazu den Changelog ).

public void Main(string argument, UpdateType updateSource) { ... }

Damit lässt sich jetzt eine einfaches kleines Skript schreiben. Die UpdatFrequency wird auf Update1 gestellt und wir geben am Programmierbaren Block die aktuelle Zeit aus.

Außerdem wird noch der aktuelle UpdateType ausgegeben.

public Program()
{ 
 Runtime.UpdateFrequency = UpdateFrequency.Update1;
}

public void Main(string argument, UpdateType updateSource)
{
 Echo(argument);
 Echo(updateSource.ToString());
 Echo(DateTime.Now.ToString()); 
}

Die Ausgabe sieht dann folgendermaßen aus:

© 2019 SpaceEngineering.de
Dies ist keine offizielle Seite von Keen Software House oder Steam