diff --git a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java index 4a2cd68c..58e9916c 100644 --- a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java @@ -17,6 +17,7 @@ import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.feature.DefaultFeatureConfig; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; +import ru.betterend.blocks.basis.BlockFur; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -32,6 +33,7 @@ import ru.betterend.world.features.DefaultFeature; public class TenaneaBushFeature extends DefaultFeature { private static final Function REPLACE; + private static final Direction[] DIRECTIONS = Direction.values(); public TenaneaBushFeature() {} @@ -57,6 +59,14 @@ public class TenaneaBushFeature extends DefaultFeature { BlockPos d = info.getPos().down(); support.add(d); } + + MHelper.shuffle(DIRECTIONS, random); + for (Direction d: DIRECTIONS) { + if (info.getState(d).isAir()) { + info.setBlockPos(info.getPos().offset(d), EndBlocks.TENANEA_OUTER_LEAVES.getDefaultState().with(BlockFur.FACING, d)); + } + } + return info.getState().with(LeavesBlock.DISTANCE, distance); } else { diff --git a/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java b/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java index 723935e9..600f0ddf 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java @@ -11,6 +11,7 @@ import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.feature.DefaultFeatureConfig; import ru.betterend.noise.OpenSimplexNoise; +import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndFeatures; import ru.betterend.util.MHelper; import ru.betterend.util.sdf.SDF; @@ -54,7 +55,9 @@ public class FloatingSpireFeature extends SpireFeature { sdf.fillRecursive(world, center); support.forEach((bpos) -> { - EndFeatures.TENANEA_BUSH.getFeature().generate(world, chunkGenerator, random, bpos, null); + if (EndBiomes.getFromBiome(world.getBiome(bpos)) == EndBiomes.BLOSSOMING_SPIRES) { + EndFeatures.TENANEA_BUSH.getFeature().generate(world, chunkGenerator, random, bpos, null); + } }); return true; diff --git a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java index 8dcc93f7..99d697ee 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java @@ -15,6 +15,7 @@ import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.feature.DefaultFeatureConfig; import ru.betterend.noise.OpenSimplexNoise; +import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndTags; import ru.betterend.util.MHelper; @@ -56,7 +57,9 @@ public class SpireFeature extends DefaultFeature { sdf.fillRecursive(world, center); support.forEach((bpos) -> { - EndFeatures.TENANEA_BUSH.getFeature().generate(world, chunkGenerator, random, bpos, null); + if (EndBiomes.getFromBiome(world.getBiome(bpos)) == EndBiomes.BLOSSOMING_SPIRES) { + EndFeatures.TENANEA_BUSH.getFeature().generate(world, chunkGenerator, random, bpos, null); + } }); return true;