package team.chisel.ctm.api; import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; import net.minecraft.world.World; import javax.annotation.Nonnull; import javax.annotation.Nullable; /** * To be implemented on blocks that "hide" another block inside, so connected * textures can still be accomplished. */ public interface IFacade { /** * @deprecated Use * {@link #getFacade(BlockView, BlockPos, Direction, BlockPos)} */ @Nonnull @Deprecated BlockState getFacade(@Nonnull BlockView world, @Nonnull BlockPos pos, @Nullable Direction side); /** * Gets the blockstate this facade appears as. * * @param world {@link World} * @param pos The Blocks position * @param side The side being rendered, NOT the side being connected from. *

* This value can be null if no side is specified. Please * handle this appropriately. * @param connection The position of the block being connected to. * @return The blockstate which your block appears as. */ @Nonnull default BlockState getFacade(@Nonnull BlockView world, @Nonnull BlockPos pos, @Nullable Direction side, @Nonnull BlockPos connection) { return getFacade(world, pos, side); } }