Fix biome gen

This commit is contained in:
dfsek
2020-12-13 23:13:02 -07:00
parent a01dee9a27
commit 6db4755109
2 changed files with 10 additions and 6 deletions

View File

@@ -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;

View File

@@ -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
}