Package net.minecraft.world.gen.chunk
Class ChunkGenerator
java.lang.Object
net.minecraft.world.gen.chunk.ChunkGenerator
- Direct Known Subclasses:
DebugChunkGenerator
,FlatChunkGenerator
,NoiseChunkGenerator
public abstract class ChunkGenerator extends Object
In charge of shaping, adding biome specific surface blocks, and carving chunks,
as well as populating the generated chunks with features and entities.
Biome placement starts here, however all vanilla and most modded chunk generators delegate this to a biome source.
- Mappings:
Namespace Name official cjn
intermediary net/minecraft/class_2794
named net/minecraft/world/gen/chunk/ChunkGenerator
-
Field Summary
Fields Modifier and Type Field Description protected BiomeSource
biomeSource
static com.mojang.serialization.Codec<ChunkGenerator>
CODEC
protected BiomeSource
populationSource
Used to control the population step without replacing the actual biome that comes from the originalbiomeSource
.private List<ChunkPos>
strongholds
private StructuresConfig
structuresConfig
private long
worldSeed
-
Constructor Summary
Constructors Constructor Description ChunkGenerator(BiomeSource populationSource, BiomeSource biomeSource, StructuresConfig structuresConfig, long worldSeed)
ChunkGenerator(BiomeSource biomeSource, StructuresConfig structuresConfig)
-
Method Summary
Modifier and Type Method Description void
addStructureReferences(StructureWorldAccess world, StructureAccessor accessor, Chunk chunk)
Finds all structures that the given chunk intersects, and adds references to their starting chunks to it.abstract void
buildSurface(ChunkRegion region, Chunk chunk)
void
carve(long seed, BiomeAccess access, Chunk chunk, GenerationStep.Carver carver)
void
generateFeatures(ChunkRegion region, StructureAccessor accessor)
private void
generateStrongholdPositions()
BiomeSource
getBiomeSource()
protected abstract com.mojang.serialization.Codec<? extends ChunkGenerator>
getCodec()
abstract VerticalBlockSample
getColumnSample(int x, int z, HeightLimitView world)
List<SpawnSettings.SpawnEntry>
getEntitySpawnList(Biome biome, StructureAccessor accessor, SpawnGroup group, BlockPos pos)
abstract int
getHeight(int x, int z, Heightmap.Type heightmapType, HeightLimitView world)
int
getHeightInGround(int x, int z, Heightmap.Type heightmapType, HeightLimitView heightLimitView)
int
getHeightOnGround(int x, int z, Heightmap.Type heightmapType, HeightLimitView heightLimitView)
int
getSeaLevel()
int
getSpawnHeight()
StructuresConfig
getStructuresConfig()
int
getWorldHeight()
boolean
isStrongholdStartingChunk(ChunkPos pos)
BlockPos
locateStructure(ServerWorld world, StructureFeature<?> feature, BlockPos center, int radius, boolean skipExistingChunks)
Tries to find the closest structure of a given type near a given block.void
populateBiomes(Registry<Biome> biomeRegistry, Chunk chunk)
void
populateEntities(ChunkRegion region)
abstract void
populateNoise(WorldAccess world, StructureAccessor accessor, Chunk chunk)
Generates the base shape of the chunk out of the basic block states as decided by this chunk generator's config.private void
setStructureStart(ConfiguredStructureFeature<?,?> configuredStructureFeature, DynamicRegistryManager dynamicRegistryManager, StructureAccessor structureAccessor, Chunk chunk, StructureManager structureManager, long worldSeed, Biome biome)
void
setStructureStarts(DynamicRegistryManager dynamicRegistryManager, StructureAccessor structureAccessor, Chunk chunk, StructureManager structureManager, long worldSeed)
Determines which structures should start in the given chunk and creates their starting points.abstract ChunkGenerator
withSeed(long seed)
-
Field Details
-
CODEC
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a:Lcom/mojang/serialization/Codec;
intermediary field_24746
Lnet/minecraft/class_2794;field_24746:Lcom/mojang/serialization/Codec;
named CODEC
Lnet/minecraft/world/gen/chunk/ChunkGenerator;CODEC:Lcom/mojang/serialization/Codec;
-
populationSource
Used to control the population step without replacing the actual biome that comes from the originalbiomeSource
.This is used by
FlatChunkGenerator
to overwrite biome properties like whether lakes generate, while preserving the original biome ID.- Mappings:
Namespace Name Mixin selector official b
Lcjn;b:Lbux;
intermediary field_12761
Lnet/minecraft/class_2794;field_12761:Lnet/minecraft/class_1966;
named populationSource
Lnet/minecraft/world/gen/chunk/ChunkGenerator;populationSource:Lnet/minecraft/world/biome/source/BiomeSource;
-
biomeSource
- Mappings:
Namespace Name Mixin selector official c
Lcjn;c:Lbux;
intermediary field_24747
Lnet/minecraft/class_2794;field_24747:Lnet/minecraft/class_1966;
named biomeSource
Lnet/minecraft/world/gen/chunk/ChunkGenerator;biomeSource:Lnet/minecraft/world/biome/source/BiomeSource;
-
structuresConfig
- Mappings:
Namespace Name Mixin selector official d
Lcjn;d:Lcmx;
intermediary field_16567
Lnet/minecraft/class_2794;field_16567:Lnet/minecraft/class_5311;
named structuresConfig
Lnet/minecraft/world/gen/chunk/ChunkGenerator;structuresConfig:Lnet/minecraft/world/gen/chunk/StructuresConfig;
-
worldSeed
private final long worldSeed- Mappings:
Namespace Name Mixin selector official e
Lcjn;e:J
intermediary field_24748
Lnet/minecraft/class_2794;field_24748:J
named worldSeed
Lnet/minecraft/world/gen/chunk/ChunkGenerator;worldSeed:J
-
strongholds
- Mappings:
Namespace Name Mixin selector official f
Lcjn;f:Ljava/util/List;
intermediary field_24749
Lnet/minecraft/class_2794;field_24749:Ljava/util/List;
named strongholds
Lnet/minecraft/world/gen/chunk/ChunkGenerator;strongholds:Ljava/util/List;
-
-
Constructor Details
-
ChunkGenerator
- Mappings:
Namespace Name Mixin selector official <init>
Lcjn;<init>(Lbux;Lcmx;)V
intermediary <init>
Lnet/minecraft/class_2794;<init>(Lnet/minecraft/class_1966;Lnet/minecraft/class_5311;)V
named <init>
Lnet/minecraft/world/gen/chunk/ChunkGenerator;<init>(Lnet/minecraft/world/biome/source/BiomeSource;Lnet/minecraft/world/gen/chunk/StructuresConfig;)V
-
ChunkGenerator
public ChunkGenerator(BiomeSource populationSource, BiomeSource biomeSource, StructuresConfig structuresConfig, long worldSeed)- Mappings:
Namespace Name Mixin selector official <init>
Lcjn;<init>(Lbux;Lbux;Lcmx;J)V
intermediary <init>
Lnet/minecraft/class_2794;<init>(Lnet/minecraft/class_1966;Lnet/minecraft/class_1966;Lnet/minecraft/class_5311;J)V
named <init>
Lnet/minecraft/world/gen/chunk/ChunkGenerator;<init>(Lnet/minecraft/world/biome/source/BiomeSource;Lnet/minecraft/world/biome/source/BiomeSource;Lnet/minecraft/world/gen/chunk/StructuresConfig;J)V
-
-
Method Details
-
generateStrongholdPositions
private void generateStrongholdPositions()- Mappings:
Namespace Name Mixin selector official g
Lcjn;g()V
intermediary method_28509
Lnet/minecraft/class_2794;method_28509()V
named generateStrongholdPositions
Lnet/minecraft/world/gen/chunk/ChunkGenerator;generateStrongholdPositions()V
-
getCodec
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a()Lcom/mojang/serialization/Codec;
intermediary method_28506
Lnet/minecraft/class_2794;method_28506()Lcom/mojang/serialization/Codec;
named getCodec
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getCodec()Lcom/mojang/serialization/Codec;
-
withSeed
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(J)Lcjn;
intermediary method_27997
Lnet/minecraft/class_2794;method_27997(J)Lnet/minecraft/class_2794;
named withSeed
Lnet/minecraft/world/gen/chunk/ChunkGenerator;withSeed(J)Lnet/minecraft/world/gen/chunk/ChunkGenerator;
-
populateBiomes
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Lgn;Lcjl;)V
intermediary method_12106
Lnet/minecraft/class_2794;method_12106(Lnet/minecraft/class_2378;Lnet/minecraft/class_2791;)V
named populateBiomes
Lnet/minecraft/world/gen/chunk/ChunkGenerator;populateBiomes(Lnet/minecraft/util/registry/Registry;Lnet/minecraft/world/chunk/Chunk;)V
-
carve
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(JLbuw;Lcjl;Lcmi$a;)V
intermediary method_12108
Lnet/minecraft/class_2794;method_12108(JLnet/minecraft/class_4543;Lnet/minecraft/class_2791;Lnet/minecraft/class_2893$class_2894;)V
named carve
Lnet/minecraft/world/gen/chunk/ChunkGenerator;carve(JLnet/minecraft/world/biome/source/BiomeAccess;Lnet/minecraft/world/chunk/Chunk;Lnet/minecraft/world/gen/GenerationStep$Carver;)V
-
locateStructure
@Nullable public BlockPos locateStructure(ServerWorld world, StructureFeature<?> feature, BlockPos center, int radius, boolean skipExistingChunks)Tries to find the closest structure of a given type near a given block.New chunks will only be generated up to the
ChunkStatus.STRUCTURE_STARTS
phase by this method.- Parameters:
radius
- The search radius in chunks around the chunk the given block position is in. A radius of 0 will only search in the given chunk. This is ignored for strongholds.skipExistingChunks
- whether only structures that are not referenced by generated chunks (chunks past the STRUCTURE_STARTS stage) are returned, excluding strongholds- Returns:
null
if no structure could be found within the given search radius- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Laav;Lcqj;Lfx;IZ)Lfx;
intermediary method_12103
Lnet/minecraft/class_2794;method_12103(Lnet/minecraft/class_3218;Lnet/minecraft/class_3195;Lnet/minecraft/class_2338;IZ)Lnet/minecraft/class_2338;
named locateStructure
Lnet/minecraft/world/gen/chunk/ChunkGenerator;locateStructure(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/world/gen/feature/StructureFeature;Lnet/minecraft/util/math/BlockPos;IZ)Lnet/minecraft/util/math/BlockPos;
-
generateFeatures
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Labb;Lbum;)V
intermediary method_12102
Lnet/minecraft/class_2794;method_12102(Lnet/minecraft/class_3233;Lnet/minecraft/class_5138;)V
named generateFeatures
Lnet/minecraft/world/gen/chunk/ChunkGenerator;generateFeatures(Lnet/minecraft/world/ChunkRegion;Lnet/minecraft/world/gen/StructureAccessor;)V
-
buildSurface
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Labb;Lcjl;)V
intermediary method_12110
Lnet/minecraft/class_2794;method_12110(Lnet/minecraft/class_3233;Lnet/minecraft/class_2791;)V
named buildSurface
Lnet/minecraft/world/gen/chunk/ChunkGenerator;buildSurface(Lnet/minecraft/world/ChunkRegion;Lnet/minecraft/world/chunk/Chunk;)V
-
populateEntities
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Labb;)V
intermediary method_12107
Lnet/minecraft/class_2794;method_12107(Lnet/minecraft/class_3233;)V
named populateEntities
Lnet/minecraft/world/gen/chunk/ChunkGenerator;populateEntities(Lnet/minecraft/world/ChunkRegion;)V
-
getStructuresConfig
- Mappings:
Namespace Name Mixin selector official b
Lcjn;b()Lcmx;
intermediary method_12109
Lnet/minecraft/class_2794;method_12109()Lnet/minecraft/class_5311;
named getStructuresConfig
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getStructuresConfig()Lnet/minecraft/world/gen/chunk/StructuresConfig;
-
getSpawnHeight
public int getSpawnHeight()- Mappings:
Namespace Name Mixin selector official c
Lcjn;c()I
intermediary method_12100
Lnet/minecraft/class_2794;method_12100()I
named getSpawnHeight
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getSpawnHeight()I
-
getBiomeSource
- Mappings:
Namespace Name Mixin selector official d
Lcjn;d()Lbux;
intermediary method_12098
Lnet/minecraft/class_2794;method_12098()Lnet/minecraft/class_1966;
named getBiomeSource
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getBiomeSource()Lnet/minecraft/world/biome/source/BiomeSource;
-
getWorldHeight
public int getWorldHeight()- Mappings:
Namespace Name Mixin selector official e
Lcjn;e()I
intermediary method_12104
Lnet/minecraft/class_2794;method_12104()I
named getWorldHeight
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getWorldHeight()I
-
getEntitySpawnList
public List<SpawnSettings.SpawnEntry> getEntitySpawnList(Biome biome, StructureAccessor accessor, SpawnGroup group, BlockPos pos)- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Lbuu;Lbum;Lark;Lfx;)Ljava/util/List;
intermediary method_12113
Lnet/minecraft/class_2794;method_12113(Lnet/minecraft/class_1959;Lnet/minecraft/class_5138;Lnet/minecraft/class_1311;Lnet/minecraft/class_2338;)Ljava/util/List;
named getEntitySpawnList
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getEntitySpawnList(Lnet/minecraft/world/biome/Biome;Lnet/minecraft/world/gen/StructureAccessor;Lnet/minecraft/entity/SpawnGroup;Lnet/minecraft/util/math/BlockPos;)Ljava/util/List;
-
setStructureStarts
public void setStructureStarts(DynamicRegistryManager dynamicRegistryManager, StructureAccessor structureAccessor, Chunk chunk, StructureManager structureManager, long worldSeed)Determines which structures should start in the given chunk and creates their starting points.- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Lgo;Lbum;Lcjl;Lcyj;J)V
intermediary method_16129
Lnet/minecraft/class_2794;method_16129(Lnet/minecraft/class_5455;Lnet/minecraft/class_5138;Lnet/minecraft/class_2791;Lnet/minecraft/class_3485;J)V
named setStructureStarts
Lnet/minecraft/world/gen/chunk/ChunkGenerator;setStructureStarts(Lnet/minecraft/util/registry/DynamicRegistryManager;Lnet/minecraft/world/gen/StructureAccessor;Lnet/minecraft/world/chunk/Chunk;Lnet/minecraft/structure/StructureManager;J)V
-
setStructureStart
private void setStructureStart(ConfiguredStructureFeature<?,?> configuredStructureFeature, DynamicRegistryManager dynamicRegistryManager, StructureAccessor structureAccessor, Chunk chunk, StructureManager structureManager, long worldSeed, Biome biome)- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Lcny;Lgo;Lbum;Lcjl;Lcyj;JLbuu;)V
intermediary method_28508
Lnet/minecraft/class_2794;method_28508(Lnet/minecraft/class_5312;Lnet/minecraft/class_5455;Lnet/minecraft/class_5138;Lnet/minecraft/class_2791;Lnet/minecraft/class_3485;JLnet/minecraft/class_1959;)V
named setStructureStart
Lnet/minecraft/world/gen/chunk/ChunkGenerator;setStructureStart(Lnet/minecraft/world/gen/feature/ConfiguredStructureFeature;Lnet/minecraft/util/registry/DynamicRegistryManager;Lnet/minecraft/world/gen/StructureAccessor;Lnet/minecraft/world/chunk/Chunk;Lnet/minecraft/structure/StructureManager;JLnet/minecraft/world/biome/Biome;)V
-
addStructureReferences
public void addStructureReferences(StructureWorldAccess world, StructureAccessor accessor, Chunk chunk)Finds all structures that the given chunk intersects, and adds references to their starting chunks to it. A radius of 8 chunks around the given chunk will be searched for structure starts.- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Lbuq;Lbum;Lcjl;)V
intermediary method_16130
Lnet/minecraft/class_2794;method_16130(Lnet/minecraft/class_5281;Lnet/minecraft/class_5138;Lnet/minecraft/class_2791;)V
named addStructureReferences
Lnet/minecraft/world/gen/chunk/ChunkGenerator;addStructureReferences(Lnet/minecraft/world/StructureWorldAccess;Lnet/minecraft/world/gen/StructureAccessor;Lnet/minecraft/world/chunk/Chunk;)V
-
populateNoise
Generates the base shape of the chunk out of the basic block states as decided by this chunk generator's config.- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Lbtw;Lbum;Lcjl;)V
intermediary method_12088
Lnet/minecraft/class_2794;method_12088(Lnet/minecraft/class_1936;Lnet/minecraft/class_5138;Lnet/minecraft/class_2791;)V
named populateNoise
Lnet/minecraft/world/gen/chunk/ChunkGenerator;populateNoise(Lnet/minecraft/world/WorldAccess;Lnet/minecraft/world/gen/StructureAccessor;Lnet/minecraft/world/chunk/Chunk;)V
-
getSeaLevel
public int getSeaLevel()- Mappings:
Namespace Name Mixin selector official f
Lcjn;f()I
intermediary method_16398
Lnet/minecraft/class_2794;method_16398()I
named getSeaLevel
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getSeaLevel()I
-
getHeight
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(IILcmm$a;Lbtx;)I
intermediary method_16397
Lnet/minecraft/class_2794;method_16397(IILnet/minecraft/class_2902$class_2903;Lnet/minecraft/class_5539;)I
named getHeight
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getHeight(IILnet/minecraft/world/Heightmap$Type;Lnet/minecraft/world/HeightLimitView;)I
-
getColumnSample
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(IILbtx;)Lbug;
intermediary method_26261
Lnet/minecraft/class_2794;method_26261(IILnet/minecraft/class_5539;)Lnet/minecraft/class_4966;
named getColumnSample
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getColumnSample(IILnet/minecraft/world/HeightLimitView;)Lnet/minecraft/world/gen/chunk/VerticalBlockSample;
-
getHeightOnGround
public int getHeightOnGround(int x, int z, Heightmap.Type heightmapType, HeightLimitView heightLimitView)- Mappings:
Namespace Name Mixin selector official b
Lcjn;b(IILcmm$a;Lbtx;)I
intermediary method_20402
Lnet/minecraft/class_2794;method_20402(IILnet/minecraft/class_2902$class_2903;Lnet/minecraft/class_5539;)I
named getHeightOnGround
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getHeightOnGround(IILnet/minecraft/world/Heightmap$Type;Lnet/minecraft/world/HeightLimitView;)I
-
getHeightInGround
public int getHeightInGround(int x, int z, Heightmap.Type heightmapType, HeightLimitView heightLimitView)- Mappings:
Namespace Name Mixin selector official c
Lcjn;c(IILcmm$a;Lbtx;)I
intermediary method_18028
Lnet/minecraft/class_2794;method_18028(IILnet/minecraft/class_2902$class_2903;Lnet/minecraft/class_5539;)I
named getHeightInGround
Lnet/minecraft/world/gen/chunk/ChunkGenerator;getHeightInGround(IILnet/minecraft/world/Heightmap$Type;Lnet/minecraft/world/HeightLimitView;)I
-
isStrongholdStartingChunk
- Mappings:
Namespace Name Mixin selector official a
Lcjn;a(Lbta;)Z
intermediary method_28507
Lnet/minecraft/class_2794;method_28507(Lnet/minecraft/class_1923;)Z
named isStrongholdStartingChunk
Lnet/minecraft/world/gen/chunk/ChunkGenerator;isStrongholdStartingChunk(Lnet/minecraft/util/math/ChunkPos;)Z
-