@Override public @Nonnull BlockFaceShape getBlockFaceShape(@Nonnull IBlockAccess worldIn, @Nonnull BlockPos pos1, @Nonnull EnumFacing facing) { return state.getBlockFaceShape(worldIn, pos1, facing); }
@Override @Nonnull public BlockFaceShape getBlockFaceShape(@Nonnull IBlockAccess worldIn, @Nonnull IBlockState state, @Nonnull BlockPos pos, @Nonnull EnumFacing face, @Nonnull T te) { IBlockState paintSource = te.getPaintSource(); if (paintSource != null) { try { return paintSource.getBlockFaceShape(worldIn, pos, face); } catch (Exception e) { } } return IShape.super.getBlockFaceShape(worldIn, state, pos, face, te); }
@Override @Nonnull public BlockFaceShape getBlockFaceShape(@Nonnull IBlockAccess worldIn, @Nonnull IBlockState state, @Nonnull BlockPos pos, @Nonnull EnumFacing face, @Nonnull T te) { IBlockState paintSource = te.getPaintSource(); if (paintSource != null) { try { return paintSource.getBlockFaceShape(worldIn, pos, face); } catch (Exception e) { } } return IShape.super.getBlockFaceShape(worldIn, state, pos, face, te); }
@Override @Nonnull public BlockFaceShape getBlockFaceShape(@Nonnull IBlockAccess worldIn, @Nonnull IBlockState state, @Nonnull BlockPos pos, @Nonnull EnumFacing face, @Nonnull T te) { IBlockState paintSource = te.getPaintSource(); if (paintSource != null) { try { return paintSource.getBlockFaceShape(worldIn, pos, face); } catch (Exception e) { } } return IShape.super.getBlockFaceShape(worldIn, state, pos, face, te); }
@Override @Nonnull public BlockFaceShape getBlockFaceShape(@Nonnull IBlockAccess worldIn, @Nonnull IBlockState state, @Nonnull BlockPos pos, @Nonnull EnumFacing face, @Nonnull T te) { IBlockState paintSource = te.getPaintSource(); if (paintSource != null) { try { return paintSource.getBlockFaceShape(worldIn, pos, face); } catch (Exception e) { } } return IShape.super.getBlockFaceShape(worldIn, state, pos, face, te); }
@Override @Nonnull public BlockFaceShape getBlockFaceShape(@Nonnull IBlockAccess worldIn, @Nonnull IBlockState state, @Nonnull BlockPos pos, @Nonnull EnumFacing face, @Nonnull T te) { IBlockState paintSource = te.getPaintSource(); if (paintSource != null) { try { return paintSource.getBlockFaceShape(worldIn, pos, face); } catch (Exception e) { } } return face == te.getFacing() ? front : IShape.super.getBlockFaceShape(worldIn, state, pos, face, te); }
public final boolean attachesTo(IBlockAccess p_193393_1_, IBlockState state, BlockPos pos, EnumFacing facing) { Block block = state.getBlock(); BlockFaceShape blockfaceshape = state.getBlockFaceShape(p_193393_1_, pos, facing); return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || blockfaceshape == BlockFaceShape.MIDDLE_POLE_THIN; }
public final boolean attachesTo(IBlockAccess p_193393_1_, IBlockState state, BlockPos pos, EnumFacing facing) { Block block = state.getBlock(); BlockFaceShape blockfaceshape = state.getBlockFaceShape(p_193393_1_, pos, facing); return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || blockfaceshape == BlockFaceShape.MIDDLE_POLE_THIN; }
public default BlockFaceShape getPartFaceShape(IPartInfo part, EnumFacing face) { return part.getState().getBlockFaceShape(part.getPartWorld(), part.getPartPos(), face); }
private boolean isAcceptableNeighbor(World p_193396_1_, BlockPos p_193396_2_, EnumFacing p_193396_3_) { IBlockState iblockstate = p_193396_1_.getBlockState(p_193396_2_); return iblockstate.getBlockFaceShape(p_193396_1_, p_193396_2_, p_193396_3_) == BlockFaceShape.SOLID && !isExceptBlockForAttaching(iblockstate.getBlock()); }
@SuppressWarnings("deprecation") public boolean canConnectTo(IBlockAccess world, BlockPos pos, EnumFacing facing) { IBlockState iblockstate = world.getBlockState(pos); BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(world, pos, facing); Block block = iblockstate.getBlock(); boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE && (iblockstate.getMaterial() == this.blockMaterial || block instanceof BlockFenceGate || block instanceof BlockWoodFenceGate || block instanceof BlockWall || block instanceof BlockWallErebus); return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag; }
@Override public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) { if (fromPos.up().equals(pos)) { if(worldIn.getBlockState(fromPos).getBlockFaceShape(worldIn, fromPos, EnumFacing.UP) != BlockFaceShape.SOLID) { worldIn.destroyBlock(pos, true); } } }
/** * Checks if this block can be placed exactly at the given position. * * @see BlockFlowerPot */ public boolean canPlaceBlockAt(World worldIn, BlockPos pos) { IBlockState downState = worldIn.getBlockState(pos.down()); return super.canPlaceBlockAt(worldIn, pos) && (downState.isTopSolid() || downState.getBlockFaceShape(worldIn, pos.down(), EnumFacing.UP) == BlockFaceShape.SOLID); }
@Override public boolean canPlaceBlockAt(World worldIn, BlockPos pos) { IBlockState downState = worldIn.getBlockState(pos.down()); return super.canPlaceBlockAt(worldIn, pos) && (downState.isSideSolid(worldIn, pos, EnumFacing.UP) || downState.getBlockFaceShape(worldIn, pos.down(), EnumFacing.UP) == BlockFaceShape.SOLID); }
public final static boolean isNeighborBlockSolid(IBlockAccess world, BlockPos blockPos, EnumFacing side) { final BlockPos pos = blockPos.offset(side); final IBlockState state = world.getBlockState(pos); return isExceptionBlockForAttaching(state.getBlock()) || state.getBlockFaceShape(world, pos, side.getOpposite()) == BlockFaceShape.SOLID; }
/** * Checks if this block can be placed exactly at the given position. * * @see BlockFlowerPot */ public boolean canPlaceBlockAt(World worldIn, BlockPos pos) { IBlockState downState = worldIn.getBlockState(pos.down()); return super.canPlaceBlockAt(worldIn, pos) && (downState.isTopSolid() || downState.getBlockFaceShape(worldIn, pos.down(), EnumFacing.UP) == BlockFaceShape.SOLID); }
/** * Called when a neighboring block was changed and marks that this state should perform any checks during a neighbor change. Cases may include when redstone power is updated, cactus blocks popping off due to a neighboring solid block, etc. * * @see BlockFlowerPot */ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) { IBlockState downState = worldIn.getBlockState(pos.down()); if (!downState.isTopSolid() && downState.getBlockFaceShape(worldIn, pos.down(), EnumFacing.UP) != BlockFaceShape.SOLID) { this.dropBlockAsItem(worldIn, pos, state, 0); worldIn.setBlockToAir(pos); } } }
@Override public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) { IBlockState downState = worldIn.getBlockState(pos.down()); if (!downState.isSideSolid(worldIn, pos, EnumFacing.UP) && downState.getBlockFaceShape(worldIn, pos.down(), EnumFacing.UP) != BlockFaceShape.SOLID) { this.dropBlockAsItem(worldIn, pos, state, 0); worldIn.setBlockToAir(pos); } }
protected static boolean canPlaceBlock(World world, BlockPos pos, EnumFacing direction) { BlockPos blockpos = pos.offset(direction.getOpposite()); IBlockState iblockstate = world.getBlockState(blockpos); boolean flag = iblockstate.getBlockFaceShape(world, blockpos, direction) == BlockFaceShape.SOLID; Block block = iblockstate.getBlock(); return world.isBlockNormalCube(blockpos, true) && block.isOpaqueCube(iblockstate) && flag; }
protected boolean isTeleportFriendlyBlock(int x, int y, int z, int offSetX, int offSetZ) { BlockPos blockpos = new BlockPos(x + offSetX, y - 1, z + offSetZ); IBlockState iblockstate = theWorld.getBlockState(blockpos); return iblockstate.getBlockFaceShape(theWorld, blockpos, EnumFacing.DOWN) == BlockFaceShape.SOLID && iblockstate.canEntitySpawn(animatedBlock) && theWorld.isAirBlock(blockpos.up()) && theWorld.isAirBlock(blockpos.up(2)); } }