Was sind modulare Dungeons?
Modulare Dungeons sind ein Dungeon-System, das in BetterStructures 2.0.0 und später eingeführt wurde. Anstatt als ein festes Schematic zu spawnen, werden modulare Dungeons dynamisch aus kleineren, handgefertigten Modulen zusammengesetzt. Dieser Ansatz ermöglicht große, mehrstöckige Dungeons, die sich in jeder Welt einzigartig anfühlen und sich dennoch nahtlos in Vanilla-Minecraft einfügen.
Wie werden modulare Dungeons generiert
-
Module Jedes Modul wird typischerweise in einer konfigurierbaren Größe gebaut (Standard 16x16x16 Blöcke, obwohl einige Inhaltspakete 32x16x32 oder andere Dimensionen verwenden). Module werden mit standardisierten Verbindungspunkten mittels eines Border-Tag-Systems entworfen, damit sie ohne Lücken oder Überlappungen an andere Module angehängt werden können. Die Dimensionen für einen Dungeon werden mit den Konfigurationsoptionen
moduleSizeXZundmoduleSizeYin der Modulgenerator-Konfiguration festgelegt. Module können Korridore, Räume, Treppen oder spezielle Begegnungsräume enthalten. -
Generierungsprozess Wenn ein modularer Dungeon in einem neuen Chunk generiert wird, verwendet BetterStructures einen Wave Function Collapse (WFC) Algorithmus, um Module aus dem verfügbaren Pool prozedural zusammenzusetzen. Das System wählt zufällig kompatible Module basierend auf Border-Tag-Abgleich aus und "näht" sie zu einem vollständigen Dungeon zusammen. Die Generierungszeit variiert basierend auf Serverleistung, Dungeon-Größe (Radius), vertikalem Bereich, Modulanzahl und Einschränkungskomplexität. Das System verwendet Arbeitslastverteilung, um Server-Lag während der Generierung zu verhindern.
-
Dungeon-Größe Dungeons können so konfiguriert werden, dass sie in verschiedenen Größen mittels des Radius-Parameters generiert werden. Größere Radiuswerte erzeugen deutlich größere Dungeons, die sich über Hunderte von Blöcken erstrecken können. Die meisten Dungeons umfassen mehrere Stockwerke, verbunden durch Treppenmodule oder vertikale Schächte. Vertikale Verbindungen zwischen Stockwerken werden über die
up-/down-Einträge der Border-Tag-Mapborderseines Moduls erreicht: Die Oberseite eines Moduls verbindet sich mit einem darüberliegenden Nachbarn, wenn ihre gegenüberliegenden Border-Tags übereinstimmen.
Vielfalt und Paketintegration
-
Kostenloses Paket Das Dungeoneering Modules Free Pack enthält 15 Module. Dies funktioniert als ein vollständig spielbarer Dungeon für sich allein.
-
Premium-Paket Das Dungeoneering Modules Premium Pack fügt 38 zusätzliche Module hinzu. In Kombination mit dem kostenlosen Paket verflechten sich beide Sets zu einem einzigen Dungeon-System mit einem viel größeren Modulpool. Dies reduziert Wiederholungen und erhöht die Vielfalt in den generierten Layouts.
-
Props-Integration Wenn du auch das BetterStructures Prop Pack (über FreeMinecraftModels) installierst, zeigen modulare Dungeons benutzerdefinierte Modell-Props in den Bauwerken an, wie in unseren Showcase-Screenshots gezeigt. Ohne das Prop-Paket funktionieren die Dungeons weiterhin normal, aber ohne die dekorativen Modelle.
EliteMobs-Integration
Während der Großteil des Dungeons nur auf BetterStructures und Vanilla-Minecraft-Mobs basiert, bieten einige Dungeons Boss-Begegnungen:
- Wenn EliteMobs und FreeMinecraftModels beide installiert sind → voller benutzerdefinierter Bosskampf mit Modell.
- Wenn nur FreeMinecraftModels installiert ist → Boss-Modell erscheint als dekoratives Prop.
- Wenn keines installiert ist → Bossraum ist einfach leer.
Das System verwendet ein schildbasiertes Spawn-System mit speziellen Tags, um Entitäten und Container in festgelegten Bereichen zu platzieren. Boss-Level skalieren basierend auf der Entfernung vom Dungeon-Zentrum und bieten angemessene Herausforderung in der gesamten Struktur.
Modul-Schildtypen
| Schild-Tag | Zeile 1 | Weitere Zeilen | Beschreibung |
|---|---|---|---|
[spawn] | [spawn] | Entitätstyp in Zeile 2 | Spawnt eine Vanilla-Entität am Standort des Schilds |
[pool: poolname] | [pool: poolname] | — | Spawnt einen zufälligen Boss aus dem benannten Spawn-Pool |
[chest] | [chest] | — | Platziert eine Truhe am Standort des Schilds |
[trapped_chest] | [trapped_chest] | — | Platziert eine Redstone-Truhe am Standort des Schilds |
[barrel] | [barrel] | — | Platziert ein Fass am Standort des Schilds |
[exit] | [exit] | Aufzug-Schematic-Dateinamen in Zeile 2-3 | Markiert einen Ausgangspunkt mit Aufzug-Schematics nach oben/unten |
Wenn EliteMobs nicht installiert ist, aber ein Inhaltspaket es erfordert, erhalten Administratoren eine Warnmeldung.
Dieses Design hält modulare Dungeons kompatibel mit Vanilla-ähnlichen Setups und bietet gleichzeitig tiefere Integration für Benutzer mit zusätzlichen Plugins.
Spawn-Pools
[pool: poolname]-Schilder lesen aus Spawn-Pool-Konfigurationsdateien im Ordner spawn_pools/. Jede Spawn-Pool-Datei ist eine kleine YAML-Konfiguration mit diesen Feldern:
| Feld | Standard | Beschreibung |
|---|---|---|
isEnabled | true | Ob dieser Spawn-Pool aktiviert ist |
poolStrings | [] | Liste der EliteMobs-Boss-Dateinamen, die für diesen Pool infrage kommen |
minLevel | -1 | Minimales Level für instanzierte Bosse, die aus diesem Pool gespawnt werden (-1 = nicht angegeben) |
maxLevel | -1 | Maximales Level für instanzierte Bosse, die aus diesem Pool gespawnt werden (-1 = nicht angegeben) |
Wenn ein [pool: poolname]-Schild verarbeitet wird, sucht BetterStructures nach poolname.yml (optional mit dem spawnPoolSuffix des Generators angehängt) und wählt einen zufälligen Boss aus den poolStrings des Pools aus. Bei instanzierten Bossen skaliert das Spawn-Level zwischen minLevel und maxLevel, basierend auf der Entfernung des Bosses vom Dungeon-Zentrum.
MythicMobs-Integration
BetterStructures unterstützt auch die MythicMobs-Integration für benutzerdefinierte Mob-Begegnungen in modularen Dungeons.
Wenn MythicMobs installiert ist, können Strukturpakete benutzerdefinierte MythicMobs als Teil der Dungeon-Generierung spawnen. Dies ermöglicht anspruchsvollere Mob-Begegnungen und Bosskämpfe über das hinaus, was Vanilla-Minecraft oder EliteMobs bieten.
Wenn MythicMobs nicht installiert ist, benachrichtigt das Plugin Administratoren mit entsprechenden Berechtigungen und stellt einen Download-Link bereit.
FMM-Integration
Modulare Dungeons können auch FreeMinecraftModels (FMM) Props während der Erstellung nutzen.
- Wenn FMM installiert ist, werden alle Props, die vom Modulersteller oder Builder platziert wurden, im generierten Dungeon erscheinen.
- Props sind rein dekorativ und beeinflussen das Gameplay nicht, verbessern aber die visuelle Treue und Immersion der Umgebung.
- Wenn FMM nicht installiert ist, wird der Dungeon weiterhin normal generiert, aber diese benutzerdefinierten Props werden nicht angezeigt.
Dies stellt sicher, dass Ersteller Dungeons mit zusätzlichen Details entwerfen können, während die Kompatibilität für Spieler gewahrt bleibt, die FMM nicht installiert haben.
Moduldimensionen
Wichtig: Die Modulgröße ist konfigurierbar, nicht fest.
Jeder Modulgenerator definiert seine Standard-Modulgröße mit:
moduleSizeXZ: Breite und Tiefe in Blöcken (Standard: 16)moduleSizeY: Höhe in Blöcken (Standard: 16)
Standardgröße: 16×16×16 Blöcke Häufige Alternative: 32×16×32 Blöcke (in einigen Inhaltspaketen verwendet)
Für Modulersteller:
- Prüfe deine Generator-Konfiguration auf
moduleSizeXZ- undmoduleSizeY-Werte - Baue ALLE Module für diesen Generator genau in diesen Dimensionen
- Nicht übereinstimmende Größen verursachen Verbindungsfehler
Benutzerdefinierte Dimensionen festlegen: In deiner Modulgenerator-Konfigurationsdatei:
moduleSizeXZ: 32 # Breite und Tiefe
moduleSizeY: 16 # Höhe
Hinweis: Alle Module in einem Generator müssen dieselben Dimensionen verwenden. Du kannst keine 16×16×16 und 32×16×32 Module im selben Dungeon-System mischen.
Modulgenerator-Konfigurationsfelder
Neben moduleSizeXZ und moduleSizeY unterstützt die Modulgenerator-Konfiguration die folgenden Felder:
| Feld | Standard | Beschreibung |
|---|---|---|
radius | 1 | Dungeon-Radius in Chunks |
edges | false | Ob Randmodule generiert werden |
startModule | — | Liste der Start-Module für die Generierung |
minChunkY | 0 | Minimale vertikale Chunk-Grenze |
maxChunkY | 0 | Maximale vertikale Chunk-Grenze |
moduleSizeXZ | 16 | Breite und Tiefe der Module in Blöcken |
moduleSizeY | 16 | Höhe der Module in Blöcken |
debug | false | Aktiviert den Debug-Modus zur Fehlersuche bei der Generierung |
useGradientLevels | false | Aktiviert gradientenbasierte Level-Skalierung für gespawnte Entitäten |
spawnPoolSuffix | — | Suffix, das an Spawn-Pool-Namen für diesen Generator angehängt wird |
isWorldGeneration | false | Ob dieser Generator für die Weltgenerierung verwendet wird |
treasureFile | — | Schatzkonfigurationsdatei für Truhen in diesem Dungeon |
generateLootInBarrels | true | Ob Fässer in Modulen mit Beute befüllt werden sollen |
barrelTreasureFilename | treasure_barrel_food.yml | Schatzkonfigurationsdatei zum Befüllen von Fässern in diesem Dungeon |
validWorlds | — | Liste gültiger Weltnamen, in denen der Dungeon generiert werden kann |
validWorldEnvironments | — | Liste gültiger Weltumgebungen |
centerModuleAltitude | 0 | Höhe für das Zentralmodul |
Pro-Modul-Konfigurationsfelder
Jedes einzelne Modul kann die folgenden Konfigurationsfelder definieren:
| Feld | Standard | Beschreibung |
|---|---|---|
isEnabled | true | Ob dieses Modul aktiviert ist |
weight | 100 | Auswahlgewicht für dieses Modul während der Generierung |
repetitionPenalty | 0 | Strafe bei mehrfacher Auswahl dieses Moduls |
noRepeat | false | Verhindert, dass sich dieses Modul wiederholt |
enforceVerticalRotation | false | Erzwingt vertikale Rotationseinschränkungen |
enforceHorizontalRotation | false | Erzwingt horizontale Rotationseinschränkungen |
minY | -4 | Minimales Y-Level für dieses Modul |
maxY | 20 | Maximales Y-Level für dieses Modul |
biome | default | Biom-Anforderung für dieses Modul |
minecraftBiome | null | Minecraft-Biom-Anforderung für dieses Modul |
treasureFile | — | Schatzkonfigurationsdatei für Truhen in diesem Modul |
generateLootInBarrels | true | Ob Fässer in diesem Modul mit Beute befüllt werden sollen |
barrelTreasureFilename | treasure_barrel_food.yml | Schatzkonfigurationsdatei zum Befüllen von Fässern in diesem Modul |
borders | — | Border-Tag-Map, die die Verbindungskompatibilität definiert |
cloneConfig | — | Klont Einstellungen aus einer anderen Modul-Konfigurationsdatei |
compoundModule | — | Verknüpft dieses Modul als Teil eines zusammengesetzten (mehrteiligen) Moduls |
isAutomaticallyPlaced | true | Ob das Modul während der Generierung automatisch platziert wird |
Hinweis: Welche Seiten eines Moduls sich mit Nachbarn verbinden können, wird vollständig durch die Border-Tag-Map borders gesteuert, nicht durch einen "passable"-Schalter pro Seite. Zwei Module verbinden sich an einer Seite, wenn ihre gegenüberliegenden Border-Tags übereinstimmen.