From 9281fabd5f267b359f65925a0f7f0ccef1f9e7cc Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Fri, 6 Nov 2020 17:23:19 +0300 Subject: [PATCH] Fixed sapling bugs --- .../ru/betterend/blocks/basis/BlockFeatureSapling.java | 6 +----- .../ru/betterend/world/features/DragonTreeFeature.java | 1 + .../world/features/MossyGlowshroomFeature.java | 10 ++-------- .../world/features/PythadendronTreeFeature.java | 2 ++ 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/basis/BlockFeatureSapling.java b/src/main/java/ru/betterend/blocks/basis/BlockFeatureSapling.java index 2230431e..850247a3 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockFeatureSapling.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockFeatureSapling.java @@ -26,7 +26,6 @@ import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.interfaces.Patterned; import ru.betterend.registry.EndTags; -import ru.betterend.util.BlocksHelper; public abstract class BlockFeatureSapling extends BlockBaseNotFull implements Fertilizable, IRenderTypeable { private static final VoxelShape SHAPE = Block.createCuboidShape(4, 0, 4, 12, 14, 12); @@ -82,10 +81,7 @@ public abstract class BlockFeatureSapling extends BlockBaseNotFull implements Fe @Override public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { - BlocksHelper.setWithoutUpdate(world, pos, Blocks.AIR.getDefaultState()); - if (!getFeature().generate(world, world.getChunkManager().getChunkGenerator(), random, pos, null)) { - BlocksHelper.setWithoutUpdate(world, pos, this.getDefaultState()); - } + getFeature().generate(world, world.getChunkManager().getChunkGenerator(), random, pos, null); } @Override diff --git a/src/main/java/ru/betterend/world/features/DragonTreeFeature.java b/src/main/java/ru/betterend/world/features/DragonTreeFeature.java index a76b350e..db09dafd 100644 --- a/src/main/java/ru/betterend/world/features/DragonTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/DragonTreeFeature.java @@ -50,6 +50,7 @@ public class DragonTreeFeature extends DefaultFeature { if (!SplineHelper.canGenerate(spline, pos, world, REPLACE)) { return false; } + BlocksHelper.setWithoutUpdate(world, pos, AIR); Vector3f last = SplineHelper.getPos(spline, 3.5F); OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong()); diff --git a/src/main/java/ru/betterend/world/features/MossyGlowshroomFeature.java b/src/main/java/ru/betterend/world/features/MossyGlowshroomFeature.java index 6cfc2e30..5d0dcb69 100644 --- a/src/main/java/ru/betterend/world/features/MossyGlowshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/MossyGlowshroomFeature.java @@ -48,13 +48,8 @@ public class MossyGlowshroomFeature extends DefaultFeature { @Override public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos blockPos, DefaultFeatureConfig featureConfig) { - blockPos = getPosOnSurface(world, blockPos); - if (blockPos.getY() < 5) { - return false; - } - if (!world.getBlockState(blockPos.down()).isIn(EndTags.END_GROUND)) { - return false; - } + BlockState down = world.getBlockState(blockPos.down()); + if (!down.isOf(EndBlocks.END_MYCELIUM) && !down.isOf(EndBlocks.END_MOSS)) return false; CONE1.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP); CONE2.setBlock(EndBlocks.MOSSY_GLOWSHROOM_CAP); @@ -74,7 +69,6 @@ public class MossyGlowshroomFeature extends DefaultFeature { if (!SplineHelper.canGenerate(spline, scale, blockPos, world, REPLACE)) { return false; } - BlocksHelper.setWithoutUpdate(world, blockPos, AIR); CENTER.set(blockPos.getX(), 0, blockPos.getZ()); diff --git a/src/main/java/ru/betterend/world/features/PythadendronTreeFeature.java b/src/main/java/ru/betterend/world/features/PythadendronTreeFeature.java index ebcb72e1..0a42f7e7 100644 --- a/src/main/java/ru/betterend/world/features/PythadendronTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/PythadendronTreeFeature.java @@ -16,6 +16,7 @@ import net.minecraft.world.gen.feature.DefaultFeatureConfig; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; +import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; import ru.betterend.util.SplineHelper; import ru.betterend.util.sdf.PosInfo; @@ -34,6 +35,7 @@ public class PythadendronTreeFeature extends DefaultFeature { @Override public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, DefaultFeatureConfig config) { if (world.getBlockState(pos.down()).getBlock() != EndBlocks.CHORUS_NYLIUM) return false; + BlocksHelper.setWithoutUpdate(world, pos, AIR); float size = MHelper.randRange(10, 20, random); List spline = SplineHelper.makeSpline(0, 0, 0, 0, size, 0, 4);