[Change] Destroy Underwater Plants in tick (possibly helps with #133)

This commit is contained in:
Frank 2023-12-20 15:12:02 +01:00
parent bd86d463a5
commit 9bbf739ffd

View file

@ -16,7 +16,6 @@ import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.BonemealableBlock; import net.minecraft.world.level.block.BonemealableBlock;
import net.minecraft.world.level.block.LiquidBlockContainer; import net.minecraft.world.level.block.LiquidBlockContainer;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
@ -32,6 +31,7 @@ import net.minecraft.world.phys.shapes.VoxelShape;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import java.util.List; import java.util.List;
import org.jetbrains.annotations.NotNull;
public abstract class UnderwaterPlantBlock extends BaseBlockNotFull implements RenderLayerProvider, BonemealableBlock, LiquidBlockContainer { public abstract class UnderwaterPlantBlock extends BaseBlockNotFull implements RenderLayerProvider, BonemealableBlock, LiquidBlockContainer {
private static final VoxelShape SHAPE = box(4, 0, 4, 12, 14, 12); private static final VoxelShape SHAPE = box(4, 0, 4, 12, 14, 12);
@ -57,9 +57,16 @@ public abstract class UnderwaterPlantBlock extends BaseBlockNotFull implements R
protected abstract boolean isTerrain(BlockState state); protected abstract boolean isTerrain(BlockState state);
@Override
public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource randomSource) {
if (!canSurvive(state, world, pos)) {
world.destroyBlock(pos, true);
}
}
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public BlockState updateShape( public @NotNull BlockState updateShape(
BlockState state, BlockState state,
Direction facing, Direction facing,
BlockState neighborState, BlockState neighborState,
@ -68,11 +75,10 @@ public abstract class UnderwaterPlantBlock extends BaseBlockNotFull implements R
BlockPos neighborPos BlockPos neighborPos
) { ) {
if (!canSurvive(state, world, pos)) { if (!canSurvive(state, world, pos)) {
world.destroyBlock(pos, true); world.scheduleTick(pos, this, 1);
return Blocks.WATER.defaultBlockState();
} else {
return state;
} }
return state;
} }
@Override @Override