diff options
Diffstat (limited to 'patch-remap/mache-vineflower/net/minecraft/world/level/levelgen/FlatLevelSource.java.patch')
-rw-r--r-- | patch-remap/mache-vineflower/net/minecraft/world/level/levelgen/FlatLevelSource.java.patch | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/patch-remap/mache-vineflower/net/minecraft/world/level/levelgen/FlatLevelSource.java.patch b/patch-remap/mache-vineflower/net/minecraft/world/level/levelgen/FlatLevelSource.java.patch new file mode 100644 index 0000000000..655bb02775 --- /dev/null +++ b/patch-remap/mache-vineflower/net/minecraft/world/level/levelgen/FlatLevelSource.java.patch @@ -0,0 +1,187 @@ +--- a/net/minecraft/world/level/levelgen/FlatLevelSource.java ++++ b/net/minecraft/world/level/levelgen/FlatLevelSource.java +@@ -2,8 +2,8 @@ + + import com.mojang.serialization.Codec; + import com.mojang.serialization.codecs.RecordCodecBuilder; +-import com.mojang.serialization.codecs.RecordCodecBuilder.Instance; + import java.util.List; ++import java.util.Objects; + import java.util.concurrent.CompletableFuture; + import java.util.concurrent.Executor; + import java.util.stream.Stream; +@@ -19,7 +19,7 @@ + import net.minecraft.world.level.biome.BiomeManager; + import net.minecraft.world.level.biome.FixedBiomeSource; + import net.minecraft.world.level.block.Blocks; +-import net.minecraft.world.level.block.state.BlockState; ++import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.chunk.ChunkAccess; + import net.minecraft.world.level.chunk.ChunkGenerator; + import net.minecraft.world.level.chunk.ChunkGeneratorStructureState; +@@ -28,29 +28,40 @@ + import net.minecraft.world.level.levelgen.structure.StructureSet; + + public class FlatLevelSource extends ChunkGenerator { +- public static final Codec<FlatLevelSource> CODEC = RecordCodecBuilder.create( +- instance -> instance.group(FlatLevelGeneratorSettings.CODEC.fieldOf("settings").forGetter(FlatLevelSource::settings)) +- .apply(instance, instance.stable(FlatLevelSource::new)) +- ); ++ ++ public static final Codec<FlatLevelSource> CODEC = RecordCodecBuilder.create((instance) -> { ++ return instance.group(FlatLevelGeneratorSettings.CODEC.fieldOf("settings").forGetter(FlatLevelSource::settings)).apply(instance, instance.stable(FlatLevelSource::new)); ++ }); + private final FlatLevelGeneratorSettings settings; + + public FlatLevelSource(FlatLevelGeneratorSettings settings) { +- super(new FixedBiomeSource(settings.getBiome()), Util.memoize(settings::adjustGenerationSettings)); +- this.settings = settings; ++ // CraftBukkit start ++ // WorldChunkManagerHell worldchunkmanagerhell = new WorldChunkManagerHell(generatorsettingsflat.getBiome()); ++ ++ // Objects.requireNonNull(generatorsettingsflat); ++ this(settings, new FixedBiomeSource(settings.getBiome())); + } + ++ public FlatLevelSource(FlatLevelGeneratorSettings generatorsettingsflat, net.minecraft.world.level.biome.BiomeSource worldchunkmanager) { ++ super(worldchunkmanager, Util.memoize(generatorsettingsflat::adjustGenerationSettings)); ++ // CraftBukkit end ++ this.settings = generatorsettingsflat; ++ } ++ + @Override + public ChunkGeneratorStructureState createState(HolderLookup<StructureSet> structureSetLookup, RandomState randomState, long seed) { +- Stream<Holder<StructureSet>> stream = this.settings +- .structureOverrides() +- .map(HolderSet::stream) +- .orElseGet(() -> structureSetLookup.listElements().map(reference -> (Holder<StructureSet>)reference)); ++ Stream<Holder<StructureSet>> stream = (Stream) this.settings.structureOverrides().map(HolderSet::stream).orElseGet(() -> { ++ return structureSetLookup.listElements().map((holder_c) -> { ++ return holder_c; ++ }); ++ }); ++ + return ChunkGeneratorStructureState.createForFlat(randomState, seed, this.biomeSource, stream); + } + + @Override + protected Codec<? extends ChunkGenerator> codec() { +- return CODEC; ++ return FlatLevelSource.CODEC; + } + + public FlatLevelGeneratorSettings settings() { +@@ -58,8 +69,7 @@ + } + + @Override +- public void buildSurface(WorldGenRegion level, StructureManager structureManager, RandomState random, ChunkAccess chunk) { +- } ++ public void buildSurface(WorldGenRegion level, StructureManager structureManager, RandomState random, ChunkAccess chunk) {} + + @Override + public int getSpawnHeight(LevelHeightAccessor level) { +@@ -67,24 +77,23 @@ + } + + @Override +- public CompletableFuture<ChunkAccess> fillFromNoise( +- Executor executor, Blender blender, RandomState random, StructureManager structureManager, ChunkAccess chunk +- ) { +- List<BlockState> layers = this.settings.getLayers(); +- BlockPos.MutableBlockPos mutableBlockPos = new BlockPos.MutableBlockPos(); +- Heightmap heightmapUnprimed = chunk.getOrCreateHeightmapUnprimed(Heightmap.Types.OCEAN_FLOOR_WG); +- Heightmap heightmapUnprimed1 = chunk.getOrCreateHeightmapUnprimed(Heightmap.Types.WORLD_SURFACE_WG); ++ public CompletableFuture<ChunkAccess> fillFromNoise(Executor executor, Blender blender, RandomState random, StructureManager structureManager, ChunkAccess chunk) { ++ List<IBlockData> list = this.settings.getLayers(); ++ BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); ++ Heightmap heightmap = chunk.getOrCreateHeightmapUnprimed(Heightmap.Types.OCEAN_FLOOR_WG); ++ Heightmap heightmap1 = chunk.getOrCreateHeightmapUnprimed(Heightmap.Types.WORLD_SURFACE_WG); + +- for (int i = 0; i < Math.min(chunk.getHeight(), layers.size()); i++) { +- BlockState blockState = layers.get(i); +- if (blockState != null) { +- int i1 = chunk.getMinBuildHeight() + i; ++ for (int i = 0; i < Math.min(chunk.getHeight(), list.size()); ++i) { ++ IBlockData iblockdata = (IBlockData) list.get(i); + +- for (int i2 = 0; i2 < 16; i2++) { +- for (int i3 = 0; i3 < 16; i3++) { +- chunk.setBlockState(mutableBlockPos.set(i2, i1, i3), blockState, false); +- heightmapUnprimed.update(i2, i1, i3, blockState); +- heightmapUnprimed1.update(i2, i1, i3, blockState); ++ if (iblockdata != null) { ++ int j = chunk.getMinBuildHeight() + i; ++ ++ for (int k = 0; k < 16; ++k) { ++ for (int l = 0; l < 16; ++l) { ++ chunk.setBlockState(blockposition_mutableblockposition.set(k, j, l), iblockdata, false); ++ heightmap.update(k, j, l, iblockdata); ++ heightmap1.update(k, j, l, iblockdata); + } + } + } +@@ -95,12 +104,13 @@ + + @Override + public int getBaseHeight(int x, int z, Heightmap.Types type, LevelHeightAccessor level, RandomState random) { +- List<BlockState> layers = this.settings.getLayers(); ++ List<IBlockData> list = this.settings.getLayers(); + +- for (int i = Math.min(layers.size(), level.getMaxBuildHeight()) - 1; i >= 0; i--) { +- BlockState blockState = layers.get(i); +- if (blockState != null && type.isOpaque().test(blockState)) { +- return level.getMinBuildHeight() + i + 1; ++ for (int k = Math.min(list.size(), level.getMaxBuildHeight()) - 1; k >= 0; --k) { ++ IBlockData iblockdata = (IBlockData) list.get(k); ++ ++ if (iblockdata != null && type.isOpaque().test(iblockdata)) { ++ return level.getMinBuildHeight() + k + 1; + } + } + +@@ -109,36 +119,21 @@ + + @Override + public NoiseColumn getBaseColumn(int x, int z, LevelHeightAccessor height, RandomState random) { +- return new NoiseColumn( +- height.getMinBuildHeight(), +- this.settings +- .getLayers() +- .stream() +- .limit((long)height.getHeight()) +- .map(state -> state == null ? Blocks.AIR.defaultBlockState() : state) +- .toArray(BlockState[]::new) +- ); ++ return new NoiseColumn(height.getMinBuildHeight(), (IBlockData[]) this.settings.getLayers().stream().limit((long) height.getHeight()).map((iblockdata) -> { ++ return iblockdata == null ? Blocks.AIR.defaultBlockState() : iblockdata; ++ }).toArray((k) -> { ++ return new IBlockData[k]; ++ })); + } + + @Override +- public void addDebugScreenInfo(List<String> info, RandomState random, BlockPos pos) { +- } ++ public void addDebugScreenInfo(List<String> info, RandomState random, BlockPos pos) {} + + @Override +- public void applyCarvers( +- WorldGenRegion level, +- long seed, +- RandomState random, +- BiomeManager biomeManager, +- StructureManager structureManager, +- ChunkAccess chunk, +- GenerationStep.Carving step +- ) { +- } ++ public void applyCarvers(WorldGenRegion level, long seed, RandomState randomstate, BiomeManager random, StructureManager biomeManager, ChunkAccess structureManager, GenerationStep.Carving chunk) {} + + @Override +- public void spawnOriginalMobs(WorldGenRegion level) { +- } ++ public void spawnOriginalMobs(WorldGenRegion level) {} + + @Override + public int getMinY() { |