Der Baumeister
Der Baumeister setzt ein Schema Block für Block, zahlt ein Material pro Block aus den verknüpften Kisten und benennt genau, was fehlt.
Wie ein Bau beginnt
Der Baumeister ist einer der Dorf-NPCs. Das Anwerben kostet Münzen und 12 Rift-Erzsplitter, dazu kommt wie bei jedem Arbeiter ein stündlicher Unterhalt von deinem Guthaben. Wer den Beruf Werkzeugschmied ausübt, bekommt den Münzanteil des Anwerbepreises günstiger. Befehle geben dürfen nur der Besitzer, ein Fraktionsmoderator oder höher sowie Admins, und das gilt auch für das Öffnen des Menüs per Rechtsklick: alle anderen sehen nur eine Statuszeile.
Ein Bau wird in drei Schritten eingerichtet. Verknüpfe mindestens einen Behälter, nenne ein Schema, während du an der gewünschten Ecke stehst, und bestätige. Bis zur Bestätigung wird nichts gesetzt und nichts abgerechnet.
| Befehl | Wirkung |
|---|---|
/npc assign <id> chest | Verknüpft den Behälter, den du ansiehst. Ein NPC hält bis zu 64 verknüpfte Behälter; eine Doppelkiste zählt als ein Eintrag, der Satz fasst also rund 3.456 Slots. |
/npc assign <id> table | Verknüpft eine Werkbank. Optional: ohne Verknüpfung sucht der Baumeister selbst die nächste erreichbare Werkbank. |
/npc assign <id> build <name> | Legt das Schema fest und nimmt deine Standposition als Ursprung. Der Bau geht in den Zustand PREVIEW. |
/npc assign <id> rotate | Schaltet die Ausrichtung durch 0, 90, 180, 270. Nur im Zustand PREVIEW erlaubt. |
/npc assign <id> confirm | Startet den Bau verbindlich. Ab hier ist eine verknüpfte Kiste Pflicht. |
/npc assign <id> build cancel | Verwirft einen ausstehenden Bau: nichts gesetzt, nichts bezahlt, Vorschau weg. |
Nach der Bestätigung arbeitet der Baumeister alle 40 Ticks einen Schub, und nur solange ein Spieler nah genug ist, dass die Baustelle beobachtet wird. Ein Schub setzt standardmäßig bis zu 8 Blöcke, multipliziert mit der Stufe des NPCs und mit dem Overseer-Buff der Fraktion. Die Blockliste ist von unten nach oben vorsortiert (y, dann x, dann z), das Bauwerk wächst also in Schichten und nicht in der Reihenfolge, in der die Datei die Blöcke ablegt. Das Durchlaufen dieser Liste ist auf 256 Schritte pro Schub begrenzt; das begrenzt den erneuten Durchlauf über einen fast fertigen Bau und nicht die Zahl der gesetzten Blöcke.
Wer einen bestätigten Bau abbricht, hält ihn an und behält jeden bereits gesetzten Block. Für das bereits Ausgegebene gibt es keine Erstattung.
Ein Material pro Block, gezählt
Jeder Block, den der Baumeister setzt, wird aus den verknüpften Kisten bezahlt, und zwar gezählt statt geschätzt: ein Setz-Item pro gesetztem Block. Verrechnet wird das Item, mit dem man diesen Block setzen würde, eine Feldfrucht kostet also ihr Saatgut und nicht die gewachsene Pflanze. Der Abzug verändert das laufende Inventar, eine offene Kiste aktualisiert sich also vor deinen Augen.
| Fall | Was passiert |
|---|---|
| Gewöhnlicher Block | Ein Setz-Item wird verbraucht. |
| Obere Türhälfte, Bettkopf, obere Hälfte hoher Pflanzen | Werden kostenlos gesetzt, ein zweiteiliges Möbelstück kostet also genau einmal. |
| Der Block hat bereits das richtige Material | Der Fortschritt zählt weiter, verbraucht wird nichts. Ein falscher Blockzustand wird kostenlos korrigiert. |
| Technische Blöcke (Jigsaw, Konstruktionsblöcke und Ähnliches) | Werden kostenlos gebaut, damit ein gespeichertes Bauwerk originalgetreu entsteht, und tauchen in der Rechnung nicht auf. |
| Die Sperrliste: Spawner, Prüfungsspawner, Tresore, Befehlsblöcke, Barrieren, Grundgestein, knospender Amethyst, verstärkter Tiefenschiefer, Portale, befallene Blöcke | Werden nie gesetzt, in keiner Tiefe. Das ist die Untergrenze, die verhindert, dass eine selbstgebaute Datei sie erzeugt. |
| Luft-Einträge | Werden standardmäßig übersprungen, vorhandenes Gelände bleibt also stehen. Konstruktionsleere lässt den Weltblock immer unangetastet. |
| Flüssigkeiten, Feuer, Portalblöcke | Fallen schon beim Einlesen der Datei weg, kommen also nie in die Rechnung und legen keinen Bau lahm. |
| Ein Blacklight-markierter Stapel in der Kiste | Wird übersprungen. Ein Schema, das Amethyst verlangt, frisst niemals deine Rift-Splitter. |
Übersprungene Einträge landen weder in der Blockliste noch in der Materialrechnung, der Fehlmengenanzeige oder dem Nenner des Fortschritts. Die Zahlen auf dem Bildschirm sind damit dieselben Zahlen, nach denen der Baumeister handelt.
Geht etwas aus, bleibt der Baumeister nicht stumm stehen. Er wechselt in den Zustand MISSING und schickt dem Besitzer eine Meldung mit Material und Fehlmenge, gedrosselt auf eine Nachricht pro Minute, damit ein langer Bau dich nicht zuspammt. Beim Bestätigen bekommst du die vollständige Fehlliste auf einmal, statt sie Material für Material zu erfahren. Der Verwaltungsbildschirm zeigt den laufenden Fortschritt als gesetzt zu gesamt sowie die größten Fehlmengen und unterscheidet dabei "fehlen N, der Baumeister kann das herstellen" von "fehlen N, kein Herstellungsweg".
Rechte werden zur Arbeitszeit erneut geprüft
Ein NPC hat nie mehr Reichweite als die Person, die ihn angeworben hat. Jede Blockänderung durchläuft dieselbe zusammengesetzte Prüfung, in dieser Reihenfolge: Admin-Umgehung, dann ein Veto durch Dungeons, dann ein Veto für jede nicht-globale WorldGuard-Region, dann Claim-Mitgliedschaft. Die Zusammensetzung schlägt im Zweifel ablehnend aus, eine nicht entscheidbare Frage ist also eine Absage.
Entscheidend ist der Zeitpunkt der Prüfung. Sie läuft nicht nur beim Zuweisen. Jede einzelne Platzierung und jeder Zugriff auf die verknüpfte Kiste durchlaufen die Prüfung zur Arbeitszeit erneut. Rechte, die beim Tippen von confirm gültig waren, tragen den Bau also nicht von allein weiter.
Verliert der Besitzer diese Rechte mitten im Bau, hört der Bau weder stillschweigend auf noch macht er heimlich weiter. Er wechselt in den Zustand PAUSED und meldet das, und zwar auf beiden Wegen: dem, der die Setzrechte verloren hat, und dem, der den Zugriff auf die Kiste verloren hat. Die Eckprüfung der Grundfläche beim ersten Nennen eines Schemas ist nur eine schnelle Vorabprüfung der Außenecken; verbindlich ist die Prüfung pro Block, weshalb auch eine Claim-Grenze mitten durch ein Bauwerk sauber erkannt wird.
Eine Kiste, deren Chunk nicht geladen ist, wird für diesen Schub übersprungen statt nachgeladen, und der Bildschirm schreibt dazu, dass der Chunk nicht geladen ist. Das ist eine Begründung, keine Störung.
Der Rezeptplaner
Fehlt der nächste Block in der Kiste, gibt der Baumeister ihn nicht sofort auf. Er arbeitet eine feste Reihenfolge ab: was er ohnehin trägt, dann ein Holen aus dem verknüpften Satz oder einer erreichbaren Claim-Kiste, dann das Herstellen des Blocks selbst, dann der kostenlose technische Fall, und erst danach MISSING.
Der Herstellungsschritt ist eine begrenzte Suche. Sie beginnt beim benötigten Block und läuft über Rezepte rückwärts zu Rohstoffen, wobei nur Zweige verfolgt werden, die zum gewünschten Ergebnis führen. Ein Material, das schon auf dem aktuellen Pfad liegt, wird nie erneut aufgelöst. Genau das verhindert, dass ein Block zu neun Items und wieder zurück zum Block wird, endlos.
| Grenze | Wert | Was sie begrenzt |
|---|---|---|
| Suchtiefe | 10 Schritte | Wie weit eine Kette vom gesuchten Block zurück zum Rohstoff laufen darf. Stämme zu Brettern zu Treppen sind drei dieser Schritte. |
| Planungsbudget | 256 Rezeptauflösungen | Der gesamte Aufwand eines Plans. Bei einem tiefen Baum ist das die eigentliche Grenze: mehr Tiefe allein sorgt nur dafür, dass einer Kette die Auflösungen ausgehen und sie MISSING meldet. |
| Stapelgröße | Bis 64, meist weniger | Wie viele Exemplare eines Blocks ein einzelner Werkbankgang herstellt. Die Größe stammt aus einem begrenzten Vorausblick auf die noch anstehenden Blöcke und wird durch den freien Platz in der Traglast gedeckelt. |
| Suchband für die Werkbank | 8 Blöcke nach oben und unten | Wo der Baumeister nach einer nicht verknüpften Werkbank sucht. Eine Werkbank steht auf Arbeitshöhe, die Suche braucht also nicht die ganze Säule. |
| Erfolglose Werkbanksuche | 30 Sekunden gemerkt | Ein Claim ohne Werkbank wird nicht in jedem Schub neu durchsucht. |
Das Stapeln ist der Unterschied zwischen einem Baumeister, der arbeitet, und einem, der läuft. Vorher bedeutete eine Treppenwand: einmal herstellen, einmal setzen, Inventar leer, noch ein Hin und Her. Jetzt deckt ein Gang zur Werkbank viele Blöcke ab. Stellt sich heraus, dass die Kiste weniger hergibt als geplant, wird der Gang auf das Vorhandene heruntergestuft statt verworfen, und passt die gewünschte Größe nicht in die Traglast, versucht er es mit der halben Größe erneut, statt einen Block zu melden, den er einzeln hätte herstellen können.
Auf Entfernung passiert nichts. Die beiden Teile eines Herstellungsgangs sind getrennte Aufträge mit striktem Ankommen: Der Baumeister geht zur Kiste und steht an ihr, um die Zutaten zu nehmen, dann geht er zur Werkbank und steht an ihr, um den Block herzustellen. Für keinen der beiden Teile gilt ein großzügiges "nah genug", und aus einem Behälter, an dem er nicht steht, wird nie etwas entnommen. Eine verknüpfte Werkbank hat Vorrang, solange sie erreichbar ist; sonst wird die nächste erreichbare gesucht und auf genau demselben Weg aufgesucht.
Scheitert eine Herstellung an fehlenden Zutaten, eskaliert der Baumeister, bevor er MISSING meldet: Er durchsucht die geladenen Chunks der Claims seiner Fraktion mit verlängerter Leine nach dem fertigen Block oder nach dessen Zutaten und läuft zu dem, was er findet. Beanspruchte Chunks, die niemand geladen hält, kommen nicht infrage, und ein wirklich fehlendes Material endet weiterhin bei MISSING.
Der Weg an die Wand
Eine Wand wird höher als der Baumeister. Die ehrliche Antwort darauf ist eine Rampe, denn der vanilla Navigator kennt keinen kletterbaren Block: Die Luft über einer Gerüstsäule ist für ihn kein Knoten, den er ansteuern oder auf dem er stehen könnte. Eine Treppe aus Gerüst hätte dasselbe Problem, deshalb besteht die Rampe aus festen Blöcken.
Die Form ergibt sich daraus, was der Navigator tatsächlich gehen kann. Eine Kreatur schafft genau einen Block Anstieg pro waagerechtem Schritt und braucht echte Kopffreiheit. Die Rampe steigt daher einen Block pro einem Block Länge, mit zwei Blöcken Kopffreiheit je Stufe, und jede Stufe ist bis zum Boden untermauert, damit das Ganze tragendes Gelände ist und kein schwebender Keil.
- Nur außen. Die Rampe läuft von einer Außenseite der Grundfläche weg und fällt dabei ab. Sie wird nie im Inneren des Bauwerks verankert.
- Innerhalb eines festen Bandes. Kein Hilfsblock darf weiter als 5 Blöcke von der nächsten Kante der Grundfläche entfernt stehen, nicht von deren Mitte. So schmiegt sich die Rampe an das Bauwerk, statt sich durch die Landschaft zu ziehen. Das Band wird beim Planen geprüft, beim Wiederverwenden einer stehenden Rampe und noch einmal unmittelbar vor jedem einzelnen Setzen.
- Verweigert, nie abgeschnitten. Sperren das Band, eine Chunkgrenze, ein Hindernis, fehlendes Fundament oder der Platz die Rampe, wird sie ganz abgelehnt. Eine halbe Rampe ist keine kleinere Rampe, sondern ein Keil mit einem unbegehbaren Absatz am unteren Ende.
- Rückfall auf das Setzen vom Boden. Wo keine Rampe möglich ist, setzt der Baumeister vom Boden aus. Ein Bau bleibt nie stecken, nur weil der Weg nach oben fehlt.
Jeder Hilfsblock wird ab dem Setzen mitgeführt, und diese Liste ist der einzige Nachweis der Zugehörigkeit. Alles davon verschwindet, wenn der Bau fertig ist, wenn er abgebrochen wird und wenn der NPC entlassen wird oder stirbt. Die Zugehörigkeit hängt an dem Material, mit dem die Struktur begonnen wurde, und wird nicht aus den Einstellungen neu abgeleitet: Eine mitten im Bau geänderte Einstellung würde sonst alles Stehende auf einen Schlag herrenlos machen und dauerhaft stehen lassen.
Die Geistervorschau
Zwischen dem Nennen eines Schemas und dem Bestätigen wird das Bauwerk dort gezeichnet, wo es stehen würde. Es sind Blöcke auf Client-Seite: Sie gehen nur an den Client des Betrachters, in der Welt ändert sich kein Block. Es gibt also keine Entität, die zurückbleiben könnte, und nichts aufzuräumen, wenn der Server mitten in der Vorschau stoppt.
- Nur berechtigte Betrachter sehen sie, also der Besitzer, Fraktionsmoderatoren und höher sowie Admins, und auch nur im Umkreis von 48 Blöcken um den Bauursprung. Alle anderen sehen nichts.
- Große Bauwerke werden ausgedünnt auf höchstens 2.048 gezeigte Blöcke, indem die sortierte Blockliste in gleichmäßigen Schritten abgegriffen wird. Die Entfernung entscheidet, wer die Vorschau sieht; der Schrittabstand entscheidet, welche Blöcke darin vorkommen.
- Luft wird nie vorgetäuscht, denn ein vorgetäuschter Luftblock würde echtes Gelände verdecken.
rotate dreht das Ganze in 90-Grad-Schritten und zeichnet es neu. Gerichtete Blöcke drehen sich mit: Treppen, Türen, Stämme, Schilder, Zäune, Mauern, Schienen und Kisten stehen danach richtig und bleiben nicht in ihrer gespeicherten Richtung hängen. Die Materialrechnung ist in allen vier Ausrichtungen identisch, denn Drehen ändert, wo Blöcke liegen und wohin sie zeigen, nie was sie sind. Gedreht werden darf nur, solange der Bau eine Vorschau ist, also genau in dem Zustand, in dem der Fortschritt garantiert null ist. So gibt es nie ein halbfertiges Bauwerk, das zu einer neuen Ausrichtung passen müsste.
Eine Vorschau abzubrechen kostet nichts: keine Blöcke, keine Münzen, kein Material. Du kannst den Bau an einem anderen Ursprung oder in einer anderen Drehung neu ansetzen und sauber erneut anzeigen lassen.
Die Vorschau wird zurückgenommen, indem der echte Block erneut gesendet wird, und das geschieht bei jedem Ausstieg: Bestätigen, Abbrechen, ein Neuansetzen mit anderem Schema, anderer Drehung oder anderem Ursprung, Weggehen aus der Reichweite, Entladen des Chunks, Entlassen des NPCs, Ausloggen und ein Neustart des Servers. Ein langsamer Durchlauf hält das auch dann aufrecht, wenn der Bauursprung weit vom NPC entfernt liegt und der NPC selbst gerade nicht getickt wird.
Schemata und Verbundbauten
Schemata liegen im Schematics-Ordner des Servers und heißen wie die Datei ohne Endung. Unterordner gehören zum Namen: Eine Datei unter schematics/houses/small_hut.nbt wird mit build houses/small_hut gebaut, und genau diesen Namen zeigen auch die Tab-Vervollständigung und der Auswahlbildschirm. Jeder Zugriff ist gegen Pfadausbrüche abgesichert, und die aufgelöste Datei wird darauf geprüft, dass sie im Schematics-Ordner liegt. Ein Name kann also nicht aus ihm herausklettern.
| Endung | Format | Hinweise |
|---|---|---|
.nbt | Speicherungen des Konstruktionsblocks | Wird bewusst zuerst versucht. Ein Server, der bereits house.nbt baut, baut weiterhin genau diese Datei, auch wenn später jemand house.schem daneben legt. Ein laufender Bau darf nie die Form ändern, nur weil ein neues Format dazugekommen ist. |
.schem | Sponge v2 und v3 | Beide Aufbauten werden an der Datei selbst erkannt. Bei abgeschnittenen Daten gibt es eine Warnung und das, was gelesen werden konnte, statt eines Totalverlusts. |
.litematic | Litematica | Dateien mit mehreren Regionen werden vor dem Dekodieren auf einen gemeinsamen Ursprung normalisiert. |
.blbuild | Verbund-Manifest | Wird zuletzt aufgelöst, aus demselben Grund, aus dem .nbt zuerst kommt. |
Verbundbauten. Eine .blbuild-Datei ist ein kurzes Manifest mit Teilen, von denen jedes ein weiteres Schema mit Versatz und optionaler Drehung benennt. Es wird zu einem gewöhnlichen Bauwerk im eigenen Koordinatenraum zusammengesetzt, bevor irgendetwas dahinter es zu sehen bekommt. Fortschritt, Vorschau, Fehlmengen, Materialkauf und das Drehen des gesamten Baus brauchen deshalb keine Sonderbehandlung. Ein Manifest darf kein weiteres Manifest enthalten: Die Verschachtelung endet nach einer Ebene, und dieser Tiefenzähler ist zugleich die Zyklussperre, weshalb ein Manifest, das sich selbst nennt, abgelehnt wird. Überlappen sich Teile, gewinnt das letzte, und die Überlappungen werden gezählt und beim Zuweisen gemeldet, in der Form "3 Teile, 41.208 Blöcke, 96 Überlappungen". Eine stille Überlappung ist der Weg, auf dem ein Verbundbau unbemerkt das Falsche baut. Die Materialrechnung wird aus dem zusammengeführten Ergebnis neu berechnet und nicht aus den Teilen addiert, ein überschriebener Block wird also nicht trotzdem berechnet, und die Volumengrenze wird nach jedem Teil neu geprüft statt einmal am Ende.
Volumen. Ein Schema darf höchstens 262.144 Blöcke groß sein. Diese Obergrenze ist eine Speicherentscheidung und nicht willkürlich: Eine Datei mit 256 mal 256 mal 256 Blöcken belegt auf der Festplatte rund 20 KB und beim Einlesen etwa 600 MB an Datensätzen. Die Abhilfe wäre ein strömendes Einlesen, und das ist nicht umgesetzt.
Absagen nennen ihren Grund. Ein Schema, das nicht gebaut werden kann, kam früher unabhängig von der Ursache als "unbekanntes Schema" zurück, die echte Diagnose stand nur in der Konsole. Jetzt wird gesagt, welche der sieben Ursachen zutraf, zum Beispiel dass ein Volumen von 300.000 die Grenze von 262.144 überschreitet. Eine Datei aus einer sehr anderen Minecraft-Version wird ebenfalls abgelehnt: Lassen sich mehr als die Hälfte ihrer Blockzustände nicht auflösen, wird der ganze Bau verweigert, statt die wenigen lesbaren Zustände zu setzen und dir Schutt zum Abtragen zu hinterlassen.
Eine Waldvilla ist kein Schema. Vanilla setzt sie bei der Weltgenerierung aus rund zwanzig Jigsaw-Teilen zusammen, und einen Jigsaw-Zusammenbau gibt es hier nicht. Kein build-Befehl kann sie also erzeugen, bei keiner Volumengrenze. Wer den Baumeister auf ein einzelnes Teil ansetzt, bekommt dieses einzelne Teil.
Das Material bezahlen
Der Materialbildschirm listet jedes noch fehlende Material auf, die größte Fehlmenge zuerst, und trägt eine einzelne Schaltfläche, die die gesamte offene Fehlmenge auf einmal kauft. Einen Kauf je Material oder einen Mengenregler gibt es nicht: alles oder nichts.
Wer zahlt, entscheidet eine einzige Regel, und dieselbe Regel schreibt die Beschriftung und nimmt das Geld, beide können also nicht auseinanderlaufen. Wer in der Fraktion das Recht WITHDRAW hat, also dieselbe Hürde wie bei /f withdraw, zahlt aus der Fraktionskasse zum unversteuerten Grundpreis. Alle anderen, auch einfache Mitglieder und Spieler ohne Fraktion, zahlen aus der eigenen Geldbörse zum Preis inklusive Steuer. Die Schaltfläche sagt vor dem Klick, welcher der beiden Fälle gilt, und der angezeigte Betrag ist der Betrag, der tatsächlich abgebucht wird.
Gekauftes wird in die verknüpfte Kiste des Baumeisters geliefert, Überschuss fällt an der Kiste zu Boden und geht nicht verloren. Aus Kassenmünzen wird Baumaterial an einem bekannten Ort, nie Bargeld in einer Geldbörse. Materialien ohne Marktpreis sind vom Kauf ausgenommen und werden gemeldet, nicht stillschweigend verschenkt.
Baumaterial zählt standardmäßig nicht gegen dein tägliches Abhebelimit in der Fraktion, ein gekaufter Wandbedarf blockiert also nicht später am selben Tag ein unabhängiges /f withdraw. Diese Ausnahme stützt sich auf drei Eigenschaften: Der Betrag ist immer die berechnete Fehlmenge eines echten zugewiesenen Schemas und nie eine von dir eingegebene Zahl, die Rangprüfung bleibt unverändert, und die Lieferung geht in die Kiste. Jeder so getätigte Kauf wird mit Fraktion, handelnder Person, NPC, Schema und Betrag im Prüfprotokoll festgehalten.
Woher die Preise kommen. Material wird aus derselben Wertetabelle mit 1.219 Einträgen bepreist, aus der auch der Rest der Wirtschaft liest, mit Diamant als gemeinsamem Anker bei 100. Aufgelöst wird referenzzuerst: Ein Material, das schon auf der dreistufigen Referenztafel einen Preis hatte, behält ihn, alles andere kommt von der durchgehenden Kurve. Das bewahrt die alten Preise des Baumeisters und hat eine sichtbare Folge, denn eine Fehlmengensumme mischt damit eine grobe Tafel mit einer feinen Kurve:
| Material | Tafelpreis | Tabellenpreis | Verhältnis |
|---|---|---|---|
| Stein gegen Steinziegel | 10,00 | 0,88 | 11,4x |
| Eichenstamm gegen Eichenbretter | 10,00 | 0,55 | 18,2x |
| Sand gegen Glasscheiben | 10,00 | 0,23 | 43,5x |
| Erde gegen grobe Erde | 10,00 | 0,50 | 20,0x |
Ein Rohstoff kann also mehr kosten als das, was daraus hergestellt wird. Das ist ein bekannter Preis dafür, alte Preise stabil zu halten, und einer der Gründe, warum es meist günstiger ist, die Kiste selbst zu füllen, als die Fehlmenge zu kaufen.
Die Zahlen hier sind die aktuellen Vorgaben, und ein Server kann davon abweichend eingestellt werden. Am ehesten überrascht dich das Verhalten unter ungewöhnlichen Bedingungen; prüfe im Spiel nach, wo es darauf ankommt.