mirror of
https://github.com/PaperMC/Paper.git
synced 2025-07-31 20:22:05 -07:00
Move flat bedrock generator to file patches
This commit is contained in:
@@ -8,13 +8,14 @@
|
||||
if (BuiltInRegistries.REGISTRY.keySet().isEmpty()) {
|
||||
throw new IllegalStateException("Unable to load registries");
|
||||
} else {
|
||||
@@ -54,11 +_,77 @@
|
||||
@@ -54,11 +_,78 @@
|
||||
EntitySelectorOptions.bootStrap();
|
||||
DispenseItemBehavior.bootStrap();
|
||||
CauldronInteraction.bootStrap();
|
||||
- BuiltInRegistries.bootStrap();
|
||||
+ // Paper start
|
||||
+ BuiltInRegistries.bootStrap(() -> {
|
||||
+ io.papermc.paper.world.worldgen.OptionallyFlatBedrockConditionSource.bootstrap(); // Paper - Flat bedrock generator settings
|
||||
+ });
|
||||
+ // Paper end
|
||||
CreativeModeTabs.validate();
|
||||
|
@@ -5,3 +5,21 @@
|
||||
package net.minecraft.world.level.levelgen;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
@@ -218,7 +_,7 @@
|
||||
@Override
|
||||
public void buildSurface(WorldGenRegion level, StructureManager structureManager, RandomState random, ChunkAccess chunk) {
|
||||
if (!SharedConstants.debugVoidTerrain(chunk.getPos())) {
|
||||
- WorldGenerationContext worldGenerationContext = new WorldGenerationContext(this, level);
|
||||
+ WorldGenerationContext worldGenerationContext = new WorldGenerationContext(this, level, level.getMinecraftWorld()); // Paper - Flat bedrock generator settings
|
||||
this.buildSurface(
|
||||
chunk,
|
||||
worldGenerationContext,
|
||||
@@ -260,7 +_,7 @@
|
||||
NoiseChunk noiseChunk = chunk.getOrCreateNoiseChunk(chunkAccess -> this.createNoiseChunk(chunkAccess, structureManager, Blender.of(level), random));
|
||||
Aquifer aquifer = noiseChunk.aquifer();
|
||||
CarvingContext carvingContext = new CarvingContext(
|
||||
- this, level.registryAccess(), chunk.getHeightAccessorForGeneration(), noiseChunk, random, this.settings.value().surfaceRule()
|
||||
+ this, level.registryAccess(), chunk.getHeightAccessorForGeneration(), noiseChunk, random, this.settings.value().surfaceRule(), level.getMinecraftWorld() // Paper - Flat bedrock generator settings
|
||||
);
|
||||
CarvingMask carvingMask = ((ProtoChunk)chunk).getOrCreateCarvingMask();
|
||||
|
||||
|
@@ -0,0 +1,32 @@
|
||||
--- a/net/minecraft/world/level/levelgen/WorldGenerationContext.java
|
||||
+++ b/net/minecraft/world/level/levelgen/WorldGenerationContext.java
|
||||
@@ -6,8 +_,15 @@
|
||||
public class WorldGenerationContext {
|
||||
private final int minY;
|
||||
private final int height;
|
||||
+ // Paper start - Flat bedrock generator settings
|
||||
+ private final @javax.annotation.Nullable net.minecraft.world.level.Level serverLevel;
|
||||
|
||||
public WorldGenerationContext(ChunkGenerator generator, LevelHeightAccessor level) {
|
||||
+ this(generator, level, null);
|
||||
+ }
|
||||
+ public WorldGenerationContext(ChunkGenerator generator, LevelHeightAccessor level, net.minecraft.world.level.Level serverLevel) {
|
||||
+ this.serverLevel = serverLevel;
|
||||
+ // Paper end - Flat bedrock generator settings
|
||||
this.minY = Math.max(level.getMinY(), generator.getMinY());
|
||||
this.height = Math.min(level.getHeight(), generator.getGenDepth());
|
||||
}
|
||||
@@ -19,4 +_,13 @@
|
||||
public int getGenDepth() {
|
||||
return this.height;
|
||||
}
|
||||
+
|
||||
+ // Paper start - Flat bedrock generator settings
|
||||
+ public net.minecraft.world.level.Level level() {
|
||||
+ if (this.serverLevel == null) {
|
||||
+ throw new NullPointerException("WorldGenerationContext was initialized without a Level, but WorldGenerationContext#level was called");
|
||||
+ }
|
||||
+ return this.serverLevel;
|
||||
+ }
|
||||
+ // Paper end - Flat bedrock generator settings
|
||||
}
|
@@ -0,0 +1,14 @@
|
||||
--- a/net/minecraft/world/level/levelgen/carver/CarvingContext.java
|
||||
+++ b/net/minecraft/world/level/levelgen/carver/CarvingContext.java
|
||||
@@ -27,9 +_,9 @@
|
||||
LevelHeightAccessor level,
|
||||
NoiseChunk noiseChunk,
|
||||
RandomState randomState,
|
||||
- SurfaceRules.RuleSource surfaceRule
|
||||
+ SurfaceRules.RuleSource surfaceRule, @javax.annotation.Nullable net.minecraft.world.level.Level serverLevel // Paper - Flat bedrock generator settings
|
||||
) {
|
||||
- super(generator, level);
|
||||
+ super(generator, level, serverLevel); // Paper - Flat bedrock generator settings
|
||||
this.registryAccess = registryAccess;
|
||||
this.noiseChunk = noiseChunk;
|
||||
this.randomState = randomState;
|
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/world/level/levelgen/placement/PlacementContext.java
|
||||
+++ b/net/minecraft/world/level/levelgen/placement/PlacementContext.java
|
||||
@@ -17,7 +_,7 @@
|
||||
private final Optional<PlacedFeature> topFeature;
|
||||
|
||||
public PlacementContext(WorldGenLevel level, ChunkGenerator generator, Optional<PlacedFeature> topFeature) {
|
||||
- super(generator, level);
|
||||
+ super(generator, level, level.getLevel()); // Paper - Flat bedrock generator settings
|
||||
this.level = level;
|
||||
this.generator = generator;
|
||||
this.topFeature = topFeature;
|
Reference in New Issue
Block a user