stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 72

Tag 72 von 365 · Einsteiger · Monat 3: Erste Systeme

Lager zählen

Quantity und MaxQuantity verraten, wie voll ein Fach ist. Mit lbs und Sum zählst du ein ganzes Lager und rechnest freie Fächer aus.

Lektion 12 Min. Woche 11

Das lernst du heute

  • Quantity und MaxQuantity
  • Summe über viele Schränke
  • Freie Plätze berechnen

Im Erzlager stehen sechs Spinde voller Eisenerz. Wie viel ist noch da? Und wann musst du einen neuen Spind bauen? Statt jeden Spind aufzumachen, lässt du den Chip zählen.

Quantity und MaxQuantity

Jedes Fach meldet zwei Mengen:

LogicSlotTypeBedeutung
Quantitywie viele Stück im Fach liegen
MaxQuantitywie viele höchstens auf diesen Stapel passen

Ein Stapel Eisenerz mit 37 von 50 Stück liefert Quantity 37 und MaxQuantity 50. Was sich nicht stapeln lässt, etwa ein Werkzeug, zählt als 1 von 1.

ls menge spind 0 Quantity       # Stueck in Fach 0
ls platz spind 0 MaxQuantity    # passt hoechstens auf den Stapel
sub frei platz menge            # noch frei auf diesem Stapel
Achtung

Ein leeres Fach meldet Quantity 0 und auch MaxQuantity 0. Freien Platz auf einem Stapel kannst du also nur dort ausrechnen, wo schon etwas liegt. Leere Fächer zählst du stattdessen über Occupied.

Über viele Spinde: lbs mit Sum

lbs liest ein Fach von allen Geräten eines Typs. Mengen addieren sich wirklich, deshalb ist hier Sum richtig und nicht Average:

lbs summe SPIND 0 Quantity Sum   # Fach 0 aller Spinde zusammen

Ein Spind hat aber mehr als ein Fach. Die Fachnummer darf in einem Register stehen, damit läuft eine Schleife über alle Fächer:

move summe 0
move i 0
fach:
lbs wert SPIND i Quantity Sum
add summe summe wert
add i i 1
blt i FAECHER fach

Der kleine Spind (StructureLockerSmall) hat 4 Fächer, der normale Spind (StructureStorageLocker) 30. Eine Schleife über 30 Fächer kostet gut 120 Befehle, also fast einen ganzen Takt. Im Lager kommt es auf eine halbe Sekunde nicht an.

Freie Fächer

Occupied ist 1 für ein belegtes Fach. Summiert über alle Spinde ergibt das die Zahl der belegten Fächer. Die Zahl der Spinde liefert Count:

lb spinde SPIND PrefabHash Count
mul frei spinde FAECHER
sub frei frei belegt

Count braucht einen LogicType, den das Gerät lesen kann, sonst meldet der Chip IncorrectLogicType. PrefabHash kann jedes Gerät lesen, damit liegst du immer richtig.

Tipp

Zähl mit Count nur, wenn alle Spinde dieses Typs zum Lager gehören. Count achtet nicht auf Namen. In Woche 14 schauen wir uns das genauer an.

Schaubild

Ein Schrank mit nummerierten Slots Schrank (d0) Slot 0 Eisenerz Occ 1 Qty 5 Slot 1 Kupfererz Occ 1 Qty 12 Slot 2 leer Occ 0 Qty 0 Slot 3 leer Occ 0 Qty 0 ls r0 d0 0 Occupied r0 = 1 ls r1 d0 1 Quantity r1 = 12 Slots zählen ab 0. Werte im Slot heißen LogicSlotTypes.
Jedes Fach meldet seine Stückzahl. lbs mit Sum fasst dasselbe Fach aller Spinde zusammen, eine Schleife geht über alle Fächer.

Übung

Aufgabe

Im Lager stehen kleine Spinde (StructureLockerSmall, je 4 Fächer) im Datennetz. Zähle über alle Spinde:

  • die Gesamtzahl der Stücke in allen Fächern → LED-Anzeige „Bestand“
  • die Zahl der freien Fächer → LED-Anzeige „Frei“

Baut jemand einen Spind ab, werden beide Zahlen einfach kleiner – ohne Fehler.

Hinweise

Hinweis 1

Setz summe, belegt und i am Anfang jedes Durchlaufs auf 0.

Hinweis 2

In der Schleife zweimal lbs … Sum: einmal Quantity, einmal Occupied.

Hinweis 3

Freie Fächer = Spinde × FAECHER − belegte Fächer. Die Spinde zählt lb spinde SPIND PrefabHash Count.

Quiz

4 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Übung im Simulator bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall