Zum Hauptinhalt springen

Generatoren erstellen

Generatoren

Generatoren sind der leistungsstärkste Teil des Konfigurationssystems für BetterStructures. Standardmäßig gibt es 29 Generatoren, die gemeinsam die derzeit von BetterStructures verteilten Bauwerke verwalten, und obwohl du eigene Generatoren erstellen kannst, kannst du auch bestehende als Abkürzung verwenden.

Generatoren teilen dem Plugin mit, wo genau Dinge spawnen sollen, und definieren Beutetabellen. Die Standard-Generatoren sind auch so benannt, dass man leicht erraten kann, was sie tun.

Generator-Konfigurationsoptionen

SchlüsselStandardPflichtBeschreibung
isEnabledtrueOb der Generator aktiviert ist. Wird er auf false gesetzt, wird auch jedes Schematic, das auf diesen Generator verweist, nicht mehr registriert — das ist also der schnellste Weg, einen ganzen Satz Strukturen abzuschalten.
structureType-Wo Strukturen spawnen (siehe Tabelle unten)
lowestYLevel-59Minimales Y-Level für das Spawnen
highestYLevel320Maximales Y-Level für das Spawnen
validWorldsAlle erlaubtListe der Welten, in denen Strukturen spawnen können
validWorldEnvironmentsAlle erlaubtNORMAL, NETHER, THE_END, CUSTOM
validBiomesV2Alle BiomeListe gültiger Biome (namespace:key Format)
treasureFilename-Schatzdatei für Truhenbeute
generateLootInBarrelstrueOb Fässer, die in den Schematics dieses Generators gefunden werden, mit Beute befüllt werden sollen
barrelTreasureFilenametreasure_barrel_food.ymlSchatzdatei zum Befüllen von Fässern für diesen Generator

structureType

Legt fest, welche Art von Struktur das Bauwerk ist. Du kannst mehrere Strukturtypen für einen einzelnen Generator angeben!

TypOberwelt / BenutzerdefiniertNetherEndBeschreibung
SURFACEOberflächeOberflächenähnliche PunkteOberflächeSpawnt an der Oberfläche der Welt
SKY80-120 Blöcke über dem höchsten BlockLufttasche zwischen Y 45 und Y 10080-120 Blöcke über dem höchsten BlockSpawnt am Himmel (konfigurierbar in config.yml)
UNDERGROUND_SHALLOWY 0-50Y 60-120Y 0-80Flache unterirdische Strukturen
UNDERGROUND_DEEPY -53 bis 0Y 5-60Y 0-80Tiefe unterirdische Strukturen
LIQUID_SURFACEWasser (Ozeane)Lavaozean auf Y 31Es wird keine Flüssigkeitsprüfung angewendetSpawnt auf Flüssigkeitsoberflächen
DUNGEONWird für modulare Dungeon-Platzierung verwendet

Die Himmelsbereiche sind Offsets, die über dem höchsten Block der jeweiligen Säule angewendet werden, keine absoluten Y-Level.

Beispiel für mehrere Strukturtypen
structureType:
- SURFACE
- UNDERGROUND_SHALLOW

Dies ermöglicht es demselben Generator, Strukturen an mehreren Stellen zu spawnen, wie z.B. sowohl an der Oberfläche als auch in flachen unterirdischen Bereichen.

Hinweis: Es gibt zwei unterirdische Einstellungen, weil Minecraft viel unterirdischen Raum hat. Beides zu haben gewährleistet eine gleichmäßige Verteilung über verschiedene Tiefen und verhindert, dass Spieler Strukturen verpassen.


Y-Level-Bereiche nach Dimension

Standard-Höhenbereiche pro Dimension (konfigurierbar in config.yml):

DimensionStandardbereichKonfigurationseinstellungen
Oberwelt/BenutzerdefiniertY=-60 bis Y=320lowestYNormalCustom / highestYNormalCustom
NetherY=4 bis Y=120lowestYNether / highestYNether
EndY=0 bis Y=320lowestYEnd / highestYEnd
Himmel (Oberwelt/Benutzerdefiniert)80 bis 120 Blöcke über dem höchsten BlocknormalCustomAirBuildingMinAltitude / normalCustomAirBuildingMaxAltitude
Himmel (End)80 bis 120 Blöcke über dem höchsten BlockendAirBuildMinAltitude / endAirBuildMaxAltitude

Diese Standards können pro Generator mittels lowestYLevel und highestYLevel überschrieben werden.

Die beiden Himmelszeilen sind Offsets, die auf den höchsten Block der Säule aufgeschlagen werden, keine absoluten Y-Level. Sowohl die Himmels-Offsets für Oberwelt/Benutzerdefiniert als auch die für das End werden bei jeder Platzierung zufällig zwischen ihrem Minimum und Maximum ausgewürfelt.

Der Nether ignoriert diese Offsets vollständig: Statt über dem höchsten Block zu bauen, durchsucht BetterStructures die Säule zwischen Y 45 und Y 100 nach einer mindestens 20 Blöcke hohen Lufttasche und platziert die Struktur darin. Existiert keine solche Tasche, spawnt in diesem Chunk nichts.


Unterstützung benutzerdefinierter Biome

BetterStructures unterstützt automatisch benutzerdefinierte Biome von Weltgeneratoren wie Terralith, Iris, Terra und TerraformGenerator.

Wenn du ein Vanilla-Biom in validBiomesV2 angibst, schließt das Plugin automatisch kompatible benutzerdefinierte Biome ein:

validBiomesV2:
- minecraft:plains
- minecraft:forest

Dies spawnt Strukturen in den Vanilla-Biomen UND allen benutzerdefinierten Biomen, die diesen Typen zugeordnet sind (z.B. terralith:blooming_plains).

Wo die Zuordnungen tatsächlich liegen

Die Zuordnungstabelle von benutzerdefinierten Biomen zu Vanilla-Biomen ist nicht in BetterStructures gespeichert. Sie ist eine einzelne fest einprogrammierte Tabelle innerhalb von MagmaCore, der gemeinsamen Bibliothek, die in BetterStructures gebündelt ist, und wird mit den anderen MagmaGuy-Plugins geteilt, die sie benötigen.

Das hat zwei praktische Konsequenzen:

  1. Die langen Biomlisten, die du in den mitgelieferten generator_surface_*.yml-Dateien siehst, sind erzeugte Ausgabe, nicht die Quelle der Wahrheit. Beim Laden liest BetterStructures validBiomesV2, schlägt jeden minecraft:-Eintrag in der MagmaCore-Tabelle nach, hängt alle benutzerdefinierten Biome an, die darauf abgebildet sind, und schreibt die erweiterte Liste direkt zurück in die Generatordatei. Ein Generator, den du mit zwei Zeilen geschrieben hast, kann also mit hundert zurückkommen. Das Bearbeiten dieser erweiterten Liste betrifft nur diesen einen Generator, und jeder minecraft:-Eintrag, den du stehen lässt, wird beim nächsten Laden erneut erweitert.
  2. Ein neues benutzerdefiniertes Biom für alle zu unterstützen ist eine MagmaCore-Änderung, keine Konfigurationsänderung. Wenn ein Weltgenerator ein Biom mitliefert, das BetterStructures nicht kennt, ist das Hinzufügen zu validBiomesV2 eines Generators eine lokale Notlösung für genau diesen Generator. Eine saubere Zuordnung bedeutet, es in die Zuordnungstabelle von MagmaCore aufzunehmen, und das ist eine Codeänderung — stelle lieber eine Anfrage, statt es in den yml-Dateien lösen zu wollen.

Du kannst ein benutzerdefiniertes Biom weiterhin direkt in validBiomesV2 benennen (alles, was bereits ein : enthält, wird unverändert übernommen und nicht weiter erweitert), was der richtige Weg für einen einmaligen Generator ist, der nur in einem bestimmten benutzerdefinierten Biom spawnen soll.

Biome, die MagmaCore auf nothing abbildet, sind absichtlich ausgeschlossen — es handelt sich um benutzerdefinierte Biome, die als ungeeignet für Strukturen gelten, und kein Vanilla-Biom zieht sie herein.


treasureFilename

Legt die Schatzdatei für Truhenbeute fest. Dies gilt für alle Bauwerke, die diesen Generator verwenden, es sei denn, es wird in der Schematic-Konfiguration überschrieben.


generateLootInBarrels und barrelTreasureFilename

BetterStructures behandelt Fässer jetzt als zweiten Beutebehälter neben Truhen.

  • generateLootInBarrels (Standard true) legt fest, ob Fässer innerhalb von Strukturen, die von diesem Generator platziert werden, befüllt werden. Setze es auf false, um Fässer unangetastet zu lassen.
  • barrelTreasureFilename (Standard treasure_barrel_food.yml) wählt aus, welche Schatzdatei beim Befüllen dieser Fässer ausgewürfelt wird. Der Standard liefert eine schlanke, nahrungsorientierte Beutetabelle, aber du kannst es auf jede beliebige Schatzdatei verweisen.

Beide Optionen können pro Schematic mit dem entsprechenden barrelTreasureFilename-Feld in der Schematic-Konfiguration überschrieben werden.