Posted May 18, 20223 yr When i attempted to water-log a block , it has an "air" skin wrapped around the horizontal faces. public class WaterShape extends YabmBlock implements SimpleWaterloggedBlock { public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; public WaterShape(Properties properties) { super(properties); this.registerDefaultState(this.stateDefinition.any().setValue(WATERLOGGED, Boolean.valueOf(false))); } @Override protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> p_48725_) { p_48725_.add(WATERLOGGED); } @Override @Nullable public BlockState getStateForPlacement(BlockPlaceContext context) { FluidState fluidstate = context.getLevel().getFluidState(context.getClickedPos()); boolean flag = fluidstate.getType() == Fluids.WATER; //return super.getStateForPlacement(context).with(WATERLOGGED, Boolean.valueOf(flag)).with(FACING, context.getPlacementHorizontalFacing()); return super.getStateForPlacement(context).setValue(WATERLOGGED, Boolean.valueOf(flag)); } public FluidState getFluidState(BlockState p_56131_) { return p_56131_.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(p_56131_); } }
May 19, 20223 yr Author This is how I fixed it not sure this is the correct way, but it works boolean flag = fluidstate.getType() != Fluids.EMPTY; boolean flag = fluidstate.getType() != Fluids.EMPTY; Added this method @Override public boolean canPlaceLiquid(BlockGetter p_54325_, BlockPos p_54326_, BlockState p_54327_, Fluid p_54328_) { return false; }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.