From 95749bea5d04a89b43a4cef06be744641bc35039 Mon Sep 17 00:00:00 2001 From: dfsek Date: Sun, 5 Dec 2021 10:16:04 -0700 Subject: [PATCH] generate vanilla structures --- .../NoiseChunkGeneratorPackConfigTemplate.java | 4 ++-- .../generation/NoiseChunkGenerator3D.java | 4 +++- .../generation/FabricChunkGeneratorWrapper.java | 17 +++++++---------- .../com/dfsek/terra/fabric/util/FabricUtil.java | 4 +--- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/NoiseChunkGeneratorPackConfigTemplate.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/NoiseChunkGeneratorPackConfigTemplate.java index 34dc23876..790fbf76b 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/NoiseChunkGeneratorPackConfigTemplate.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/NoiseChunkGeneratorPackConfigTemplate.java @@ -15,11 +15,11 @@ public class NoiseChunkGeneratorPackConfigTemplate implements ConfigTemplate { @Value("carving.resolution.horizontal") @Default - private @Meta int horizontalRes = 2; + private @Meta int horizontalRes = 4; @Value("carving.resolution.vertical") @Default - private @Meta int verticalRes = 4; + private @Meta int verticalRes = 2; public int getElevationBlend() { return elevationBlend; diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java index 7d60ff23b..1be4f0893 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java @@ -124,9 +124,11 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { Sampler3D sampler = samplerCache.get(x, z, world); PaletteInfo paletteInfo = biome.getContext().get(PaletteInfo.class); - Palette palette = PaletteUtil.getPalette(x, y, z, sampler, paletteInfo); + int fdX = FastMath.floorMod(x, 16); int fdZ = FastMath.floorMod(z, 16); + + Palette palette = PaletteUtil.getPalette(fdX, y, fdZ, sampler, paletteInfo); double noise = sampler.sample(fdX, y, fdZ); if(noise > 0) { int level = 0; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index 3dc230616..d2bddbca9 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -17,9 +17,6 @@ package com.dfsek.terra.fabric.generation; -import com.dfsek.terra.api.world.ServerWorld; -import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; - import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.block.BlockState; @@ -59,8 +56,10 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.world.chunk.generation.ProtoChunk; +import com.dfsek.terra.api.world.ServerWorld; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; +import com.dfsek.terra.api.world.chunk.generation.ProtoChunk; +import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; import com.dfsek.terra.api.world.chunk.generation.stage.Chunkified; import com.dfsek.terra.api.world.chunk.generation.util.GeneratorWrapper; import com.dfsek.terra.fabric.FabricEntryPoint; @@ -101,7 +100,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C private net.minecraft.server.world.ServerWorld world; public FabricChunkGeneratorWrapper(TerraBiomeSource biomeSource, long seed, ConfigPack configPack) { - super(biomeSource, new StructuresConfig(false)); + super(biomeSource, new StructuresConfig(true)); this.pack = configPack; this.delegate = pack.getGeneratorProvider().newInstance(pack); @@ -194,9 +193,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C @Override public void setStructureStarts(DynamicRegistryManager dynamicRegistryManager, StructureAccessor structureAccessor, Chunk chunk, StructureManager structureManager, long worldSeed) { - if(pack.vanillaStructures()) { - super.setStructureStarts(dynamicRegistryManager, structureAccessor, chunk, structureManager, worldSeed); - } + super.setStructureStarts(dynamicRegistryManager, structureAccessor, chunk, structureManager, worldSeed); } @Override @@ -248,8 +245,8 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C @Override public VerticalBlockSample getColumnSample(int x, int z, HeightLimitView view) { BlockState[] array = new BlockState[view.getHeight()]; - for(int y = view.getBottomY() + view.getHeight() - 1; y >= view.getBottomY(); y--) { - array[y] = ((FabricBlockState) ((ServerWorld) world).getGenerator().getBlock((ServerWorld) world, x, y, z)).getHandle(); + for(int y = view.getTopY() - 1; y >= view.getBottomY(); y--) { + array[y - view.getBottomY()] = ((FabricBlockState) ((ServerWorld) world).getGenerator().getBlock((ServerWorld) world, x, y, z)).getHandle(); } return new VerticalBlockSample(view.getBottomY(), array); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java index ba3c30371..49431fe9e 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java @@ -17,8 +17,6 @@ package com.dfsek.terra.fabric.util; -import com.dfsek.terra.api.world.biome.Biome; - import com.mojang.serialization.Lifecycle; import net.minecraft.block.entity.LootableContainerBlockEntity; import net.minecraft.block.entity.MobSpawnerBlockEntity; @@ -35,7 +33,6 @@ import net.minecraft.world.biome.GenerationSettings; import net.minecraft.world.gen.GenerationStep; import net.minecraft.world.gen.carver.ConfiguredCarver; -import java.util.ArrayList; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -46,6 +43,7 @@ import com.dfsek.terra.api.block.entity.Container; import com.dfsek.terra.api.block.entity.MobSpawner; import com.dfsek.terra.api.block.entity.Sign; import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.fabric.mixin.access.BiomeEffectsAccessor;