From 6db4755109db99c04a207a9d7694937dbcf7a55d Mon Sep 17 00:00:00 2001 From: dfsek Date: Sun, 13 Dec 2020 23:13:02 -0700 Subject: [PATCH] Fix biome gen --- .../dfsek/terra/fabric/world/TerraBiomeSource.java | 4 +++- .../world/generator/FabricChunkGeneratorWrapper.java | 12 +++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/TerraBiomeSource.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/TerraBiomeSource.java index 76a478495..c06b1def3 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/TerraBiomeSource.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/TerraBiomeSource.java @@ -5,6 +5,7 @@ import com.dfsek.terra.biome.grid.master.TerraBiomeGrid; import com.dfsek.terra.fabric.TerraFabricPlugin; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryLookupCodec; import net.minecraft.world.biome.Biome; @@ -43,9 +44,10 @@ public class TerraBiomeSource extends BiomeSource { @Override public Biome getBiomeForNoiseGen(int biomeX, int biomeY, int biomeZ) { FabricBiome biome = ((FabricBiome) grid.getBiome(biomeX * 4, biomeZ * 4, GenerationPhase.BASE).getVanillaBiome()); - return biome.getHandle(); + return biomeRegistry.get(BuiltinRegistries.BIOME.getRawId(biome.getHandle())); } + @Override public boolean hasStructureFeature(StructureFeature feature) { return false; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGeneratorWrapper.java index 61b996202..4bbad5316 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGeneratorWrapper.java @@ -3,7 +3,6 @@ package com.dfsek.terra.fabric.world.generator; import com.dfsek.terra.api.gaea.math.MathUtil; import com.dfsek.terra.api.gaea.util.FastRandom; import com.dfsek.terra.api.generic.Handle; -import com.dfsek.terra.api.generic.generator.TerraBlockPopulator; import com.dfsek.terra.fabric.TerraFabricPlugin; import com.dfsek.terra.fabric.world.TerraBiomeSource; import com.dfsek.terra.fabric.world.handles.chunk.FabricChunkRegionChunk; @@ -11,6 +10,7 @@ import com.dfsek.terra.fabric.world.handles.world.FabricSeededWorldAccess; import com.dfsek.terra.fabric.world.handles.world.FabricWorldChunkRegion; import com.dfsek.terra.generation.TerraChunkGenerator; import com.dfsek.terra.population.CavePopulator; +import com.dfsek.terra.population.FloraPopulator; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.block.BlockState; @@ -39,6 +39,7 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Handl Codec.LONG.fieldOf("seed").stable().forGetter(generator -> generator.seed)) .apply(instance, instance.stable(FabricChunkGeneratorWrapper::new))); private final CavePopulator cavePopulator = new CavePopulator(TerraFabricPlugin.getInstance()); + private final FloraPopulator floraPopulator = new FloraPopulator(TerraFabricPlugin.getInstance()); public FabricChunkGeneratorWrapper(TerraBiomeSource biomeSource, long seed) { super(biomeSource, new StructuresConfig(false)); @@ -82,10 +83,11 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Handl @Override public void generateFeatures(ChunkRegion region, StructureAccessor accessor) { - for(TerraBlockPopulator populator : delegate.getPopulators()) { - FastRandom pop = new FastRandom(MathUtil.getCarverChunkSeed(region.getCenterChunkX(), region.getCenterChunkZ(), seed)); - cavePopulator.populate(new FabricWorldChunkRegion(region, this), pop, new FabricChunkRegionChunk(region)); - } + FastRandom pop = new FastRandom(MathUtil.getCarverChunkSeed(region.getCenterChunkX(), region.getCenterChunkZ(), seed)); + FabricWorldChunkRegion chunkRegion = new FabricWorldChunkRegion(region, this); + FabricChunkRegionChunk regionChunk = new FabricChunkRegionChunk(region); + cavePopulator.populate(chunkRegion, pop, regionChunk); + floraPopulator.populate(chunkRegion, pop, regionChunk); // Nope }