• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Alle Chunks mit einem Biom erstellen

DayAndNight

Minecrafter
Registriert
21 September 2020
Beiträge
17
Diamanten
303
Hey Leute,

ich versuche schon länger alle Chunks beim erstellen der Welt, mit dem selben Biom zu überschreiben.
Allerdings funktioniert es einfach nicht. Kein Fehler, nur nicht das passende Biom.

Code:
public final ChunkGenerator.ChunkData generateChunkData(World world, Random random, int ChunkX, int ChunkZ, ChunkGenerator.BiomeGrid biome) {
    ChunkGenerator.ChunkData chunkData = createChunkData(world);
     biome.setBiome(ChunkX, ChunkZ, Biome.BIRCH_FOREST);
    return chunkData;
}

Ich habe allgemein Probleme mit dem Laden und Entladen von Chunks.
Eigentlich möchte ich keine geladenen Chunks haben, wenn dort kein Spieler ist.
Welche "Nebenwirkungen" würde es haben Chunks zu entladen?
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Funktioniert denn der Rest deines WorldGenerators? Um schon einmal auszuschließen das es nicht an etwas anderem liegt und nicht direkt an den Biomen.
Welche Version nutzt du? Ich hatte das mal in der 1.13 genutzt und damit keinen Erfolg - jetzt in 1.16 scheint es aber zu gehen.

Um das Laden/Entladen von Chunks kümmert sich der Server sehr gut alleine. Plugins die da rumspielen bewirken oft das Gegenteil, nämlich eine schlechtere Performance, weil sie einen Chunk entladen, den der Server jedoch geladen haben wollte, worauf er diesen wieder lädt etc. etc.
 

Scrayos

Vorarbeiter
Registriert
11 Februar 2012
Beiträge
296
Alter
29
Diamanten
338
Minecraft
Scrayos
Guten Morgen!

Solltest du – wie Malfrador geschrieben hat – sichergestellt haben, dass der ChunkGenerator korrekt eingebunden ist, so ist in deinem Code zumindest ein weiterer Fehler. Das BiomeGrid verlangt – je nach Version – unterschiedliche Aufrufe. In Versionen vor 1.15 wurde jedes einzelne X-Z-Blocktupel gemapped. Du musst also nicht das Tupel aus X und Z Chunkkoordinaten übergeben, sondern die relativen X-Z Blockkoordinaten für jeden Block innerhalb dieses Chunks (0-15). Das BiomeGrid ist nämlich ein neues für jeden Chunk.

Ab Version 1.15 wurde das ganze noch einmal etwas anders, denn nun sind Biomes dreidimensional, dafür aber weniger "präzise". Jetzt wird immer einem ganzen "Paket" aus 4x4x4 Blocks ein Biome zugewiesen. In meinem VoidChunkGenerator mache ich das beispielsweise so:

VoidChunkGenerator#generateChunkData:
// set all blocks biome to void
for (int coordX = 0; coordX < BLOCK_IN_CHUNK_BOUND; coordX += BIOME_IMPRECISION) {
    for (int coordY = 0; coordY < WORLD_HEIGHT; coordY += BIOME_IMPRECISION) {
        for (int coordZ = 0; coordZ < BLOCK_IN_CHUNK_BOUND; coordZ += BIOME_IMPRECISION) {
            biomeGrid.setBiome(coordX, coordY, coordZ, Biome.THE_VOID);
        }
    }
}

Hierbei entspricht BIOME_IMPRECESION dem Wert 4 (wegen dem 4x4x4 Paket, das ich oberhalb angesprochen habe) und BLOCK_IN_CHUNK_BOUND ist 16 (weil ein Chunk ja 16x16 Blöcke) umfasst. WORLD_HEIGHT ist (wenig überraschend) die Höhe der zu generierenden Welt, in meinem Fall immer 256.

In den Versionen ab 1.15 müssen wir also auf allen drei Achsen nur jeden vierten Block setzen, in den Version davor müssen wir gar nicht über die Y-Achse iterieren, dafür müssen wir aber auch jeden einzelnen Block auf X und Z setzen.
 
Zuletzt bearbeitet:
Oben