From 0ec39fa2da2680e8ce5068ed5e48fe7cae682e18 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 1 Jul 2022 02:32:45 +0200 Subject: [PATCH] [Fix] Some End-Features can spawn under/on water (#12) --- .../org/betterx/betterend/world/features/ListFeature.java | 5 ++++- .../world/features/terrain/FallenPillarFeature.java | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/betterx/betterend/world/features/ListFeature.java b/src/main/java/org/betterx/betterend/world/features/ListFeature.java index 21b3abb3..a328919f 100644 --- a/src/main/java/org/betterx/betterend/world/features/ListFeature.java +++ b/src/main/java/org/betterx/betterend/world/features/ListFeature.java @@ -2,6 +2,7 @@ package org.betterx.betterend.world.features; import org.betterx.bclib.util.StructureHelper; +import org.betterx.worlds.together.tag.v3.CommonBlockTags; import net.minecraft.core.BlockPos; import net.minecraft.util.RandomSource; @@ -33,7 +34,9 @@ public class ListFeature extends NBTFeature { protected boolean canSpawn(WorldGenLevel world, BlockPos pos, RandomSource random) { int cx = pos.getX() >> 4; int cz = pos.getZ() >> 4; - return ((cx + cz) & 1) == 0 && pos.getY() > 58;// && world.getBlockState(pos.below()).is(EndTags.GEN_TERRAIN); + return ((cx + cz) & 1) == 0 && pos.getY() > 58 + && world.getBlockState(pos).isAir() + && world.getBlockState(pos.below()).is(CommonBlockTags.TERRAIN); } @Override diff --git a/src/main/java/org/betterx/betterend/world/features/terrain/FallenPillarFeature.java b/src/main/java/org/betterx/betterend/world/features/terrain/FallenPillarFeature.java index ea22bb96..125d7951 100644 --- a/src/main/java/org/betterx/betterend/world/features/terrain/FallenPillarFeature.java +++ b/src/main/java/org/betterx/betterend/world/features/terrain/FallenPillarFeature.java @@ -31,7 +31,8 @@ public class FallenPillarFeature extends DefaultFeature { world, new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16)) ); - if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) { + if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES) + || !world.getBlockState(pos).isAir()) { return false; }