From 718b3a6fc42f292eb63059e3efa46645274b126a Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Sat, 26 Dec 2020 19:59:10 +0300 Subject: [PATCH] Mushroom fixes --- .../ru/betterend/blocks/BlockSmallJellyshroom.java | 3 +++ .../world/features/trees/JellyshroomFeature.java | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/BlockSmallJellyshroom.java b/src/main/java/ru/betterend/blocks/BlockSmallJellyshroom.java index 405fe29e..f3f15238 100644 --- a/src/main/java/ru/betterend/blocks/BlockSmallJellyshroom.java +++ b/src/main/java/ru/betterend/blocks/BlockSmallJellyshroom.java @@ -11,6 +11,7 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; import net.minecraft.block.Fertilizable; import net.minecraft.block.Material; import net.minecraft.block.ShapeContext; @@ -33,6 +34,7 @@ import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndTags; +import ru.betterend.util.BlocksHelper; public class BlockSmallJellyshroom extends BlockAttached implements IRenderTypeable, Fertilizable { private static final EnumMap BOUNDING_SHAPES = Maps.newEnumMap(Direction.class); @@ -95,6 +97,7 @@ public class BlockSmallJellyshroom extends BlockAttached implements IRenderTypea @Override public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + BlocksHelper.setWithUpdate(world, pos, Blocks.AIR); EndFeatures.JELLYSHROOM.getFeature().generate(world, null, random, pos, null); } } diff --git a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java index dbdcc9cc..806a8509 100644 --- a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java @@ -40,8 +40,8 @@ public class JellyshroomFeature extends DefaultFeature { BlockState membrane = EndBlocks.JELLYSHROOM_CAP_PURPLE.getDefaultState(); int height = MHelper.randRange(5, 8, random); - float radius = height * MHelper.randRange(0.1F, 0.2F, random); - List spline = SplineHelper.makeSpline(0, 0, 0, 0, height, 0, 5); + float radius = height * MHelper.randRange(0.15F, 0.25F, random); + List spline = SplineHelper.makeSpline(0, -1, 0, 0, height, 0, 3); SplineHelper.offsetParts(spline, random, 0.5F, 0, 0.5F); SDF sdf = SplineHelper.buildSDF(spline, radius, 0.8F, (bpos) -> { return bark; @@ -54,13 +54,13 @@ public class JellyshroomFeature extends DefaultFeature { sdf = new SDFSmoothUnion().setRadius(3F).setSourceA(sdf).setSourceB(cap); sdf.setReplaceFunction(REPLACE).setPostProcess(POST).fillRecursive(world, pos); radius = height * 0.5F; - makeRoots(world, pos.add(0, 1, 0), radius, random, bark); + makeRoots(world, pos.add(0, 2, 0), radius, random, bark); return true; } private void makeRoots(StructureWorldAccess world, BlockPos pos, float radius, Random random, BlockState wood) { - int count = (int) (radius * 1.5F); + int count = (int) (radius * 3.5F); for (int i = 0; i < count; i++) { float angle = (float) i / (float) count * MHelper.PI2; float scale = radius * MHelper.randRange(0.85F, 1.15F, random); @@ -109,7 +109,7 @@ public class JellyshroomFeature extends DefaultFeature { }; REPLACE = (state) -> { - if (state.isIn(EndTags.END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.isOf(EndBlocks.UMBRELLA_TREE_MEMBRANE)) { + if (state.isIn(EndTags.END_GROUND) || state.getMaterial().equals(Material.PLANT)) { return true; } return state.getMaterial().isReplaceable();