IC10

  • Diskussionen : 15
  • Beiträge : 54
  • Likes : 9
18. Oktober 2025 um 17:31 Uhr

Code von OwnerOfThePlace

define CENT HASH("StructureCentrifuge") # So heißt das Gerät in Stationeers laut Stationpedia (F1 Hilfe).
define CENT1 HASH("dm_cent1") # So lautet der von mir gegebene Name von Zentrifuge 1.
define CENT2 HASH("dm_cent2") # Name der zweiten Zentrifuge.

start:
yield # Der Simulation 0.5s zur Verfügung stellen statt 100% auszulasten.
# Stationeers zwingt aber automatisch so eine Pause nach 128 Zeilen (Nach Zeilen, nicht nur nach Befehlen.)
# aber 1. muss die Simulation erst mal zum nächsten Schritt kommen, bevor irgendwelche Geräte
# Steuerungsbefehle einen Effekt hatten. Und 2. ist es vernünftig zu steuern, WANN denn diese Pause kommt.

move r0 CENT1
jal DealWithCentrifuge # Unterprogramm mit Zentrifuge 1 aufrufen.
move r0 CENT2
jal DealWithCentrifuge # Unterprogramm mit Zentrifuge 1 aufrufen.

j start # Hauptschleife geht bis hier.


DealWithCentrifuge:
lbn r1 CENT r0 Open Sum # Rausfinden, ob die r0 Zentrifuge offen ist.
bgtz r1 CentIsOpen # Falls ja, Ausführung weiter unten fortsetzen.
lbn r1 CENT r0 Error Sum # Rausfinden, ob die r0 Zentrifuge einen Fehler zeigt.
beqz r1 ra # Falls nein, zurückkehren zum Aufrufer (also zur Hauptschleife).
sbn CENT r0 Open 1 # Falls ja, Zentrifuge öffnen,
j ra # und dann zurück zur Hauptschleife.

CentIsOpen:
lbn r1 CENT r0 Reagents Sum # Zentrifugeninhalt auslesen.
bgtz r1 ra # Falls noch nicht leer: Zurück zur Hauptschleife.
sbn CENT r0 Open 0 # Falls leer: Zentrifuge schließen, damit Normalbetrieb weiter geht.
j ra # Zurück zur Hauptschleife.
https://stationeers.de
Loading...