| 43 | import net.optifine.util.TileEntityUtils; |
| 44 | |
| 45 | public class ConnectedTextures |
| 46 | { |
| 47 | private static Map[] spriteQuadMaps = null; |
| 48 | private static Map[] spriteQuadFullMaps = null; |
| 49 | private static Map[][] spriteQuadCompactMaps = (Map[][])null; |
| 50 | private static ConnectedProperties[][] blockProperties = (ConnectedProperties[][])null; |
| 51 | private static ConnectedProperties[][] tileProperties = (ConnectedProperties[][])null; |
| 52 | private static boolean multipass = false; |
| 53 | protected static final int UNKNOWN = -1; |
| 54 | protected static final int Y_NEG_DOWN = 0; |
| 55 | protected static final int Y_POS_UP = 1; |
| 56 | protected static final int Z_NEG_NORTH = 2; |
| 57 | protected static final int Z_POS_SOUTH = 3; |
| 58 | protected static final int X_NEG_WEST = 4; |
| 59 | protected static final int X_POS_EAST = 5; |
| 60 | private static final int Y_AXIS = 0; |
| 61 | private static final int Z_AXIS = 1; |
| 62 | private static final int X_AXIS = 2; |
| 63 | public static final IBlockState AIR_DEFAULT_STATE = Blocks.air.getDefaultState(); |
| 64 | private static TextureAtlasSprite emptySprite = null; |
| 65 | private static final BlockDir[] SIDES_Y_NEG_DOWN = new BlockDir[] {BlockDir.WEST, BlockDir.EAST, BlockDir.NORTH, BlockDir.SOUTH}; |
| 66 | private static final BlockDir[] SIDES_Y_POS_UP = new BlockDir[] {BlockDir.WEST, BlockDir.EAST, BlockDir.SOUTH, BlockDir.NORTH}; |
| 67 | private static final BlockDir[] SIDES_Z_NEG_NORTH = new BlockDir[] {BlockDir.EAST, BlockDir.WEST, BlockDir.DOWN, BlockDir.UP}; |
| 68 | private static final BlockDir[] SIDES_Z_POS_SOUTH = new BlockDir[] {BlockDir.WEST, BlockDir.EAST, BlockDir.DOWN, BlockDir.UP}; |
| 69 | private static final BlockDir[] SIDES_X_NEG_WEST = new BlockDir[] {BlockDir.NORTH, BlockDir.SOUTH, BlockDir.DOWN, BlockDir.UP}; |
| 70 | private static final BlockDir[] SIDES_X_POS_EAST = new BlockDir[] {BlockDir.SOUTH, BlockDir.NORTH, BlockDir.DOWN, BlockDir.UP}; |
| 71 | private static final BlockDir[] SIDES_Z_NEG_NORTH_Z_AXIS = new BlockDir[] {BlockDir.WEST, BlockDir.EAST, BlockDir.UP, BlockDir.DOWN}; |
| 72 | private static final BlockDir[] SIDES_X_POS_EAST_X_AXIS = new BlockDir[] {BlockDir.NORTH, BlockDir.SOUTH, BlockDir.UP, BlockDir.DOWN}; |
| 73 | private static final BlockDir[] EDGES_Y_NEG_DOWN = new BlockDir[] {BlockDir.NORTH_EAST, BlockDir.NORTH_WEST, BlockDir.SOUTH_EAST, BlockDir.SOUTH_WEST}; |
| 74 | private static final BlockDir[] EDGES_Y_POS_UP = new BlockDir[] {BlockDir.SOUTH_EAST, BlockDir.SOUTH_WEST, BlockDir.NORTH_EAST, BlockDir.NORTH_WEST}; |
| 75 | private static final BlockDir[] EDGES_Z_NEG_NORTH = new BlockDir[] {BlockDir.DOWN_WEST, BlockDir.DOWN_EAST, BlockDir.UP_WEST, BlockDir.UP_EAST}; |
| 76 | private static final BlockDir[] EDGES_Z_POS_SOUTH = new BlockDir[] {BlockDir.DOWN_EAST, BlockDir.DOWN_WEST, BlockDir.UP_EAST, BlockDir.UP_WEST}; |
| 77 | private static final BlockDir[] EDGES_X_NEG_WEST = new BlockDir[] {BlockDir.DOWN_SOUTH, BlockDir.DOWN_NORTH, BlockDir.UP_SOUTH, BlockDir.UP_NORTH}; |
| 78 | private static final BlockDir[] EDGES_X_POS_EAST = new BlockDir[] {BlockDir.DOWN_NORTH, BlockDir.DOWN_SOUTH, BlockDir.UP_NORTH, BlockDir.UP_SOUTH}; |
| 79 | private static final BlockDir[] EDGES_Z_NEG_NORTH_Z_AXIS = new BlockDir[] {BlockDir.UP_EAST, BlockDir.UP_WEST, BlockDir.DOWN_EAST, BlockDir.DOWN_WEST}; |
| 80 | private static final BlockDir[] EDGES_X_POS_EAST_X_AXIS = new BlockDir[] {BlockDir.UP_SOUTH, BlockDir.UP_NORTH, BlockDir.DOWN_SOUTH, BlockDir.DOWN_NORTH}; |
| 81 | public static final TextureAtlasSprite SPRITE_DEFAULT = new TextureAtlasSprite("<default>"); |
| 82 | |
| 83 | public static BakedQuad[] getConnectedTexture(IBlockAccess blockAccess, IBlockState blockState, BlockPos blockPos, BakedQuad quad, RenderEnv renderEnv) |
| 84 | { |
| 85 | TextureAtlasSprite textureatlassprite = quad.getSprite(); |
| 86 | |
| 87 | if (textureatlassprite == null) |
| 88 | { |
| 89 | return renderEnv.getArrayQuadsCtm(quad); |
| 90 | } |
| 91 | else |
| 92 | { |
| 93 | Block block = blockState.getBlock(); |
| 94 | |
| 95 | if (skipConnectedTexture(blockAccess, blockState, blockPos, quad, renderEnv)) |
| 96 | { |
| 97 | quad = getQuad(emptySprite, quad); |
| 98 | return renderEnv.getArrayQuadsCtm(quad); |
| 99 | } |
| 100 | else |
| 101 | { |
| 102 | EnumFacing enumfacing = quad.getFace(); |
nothing calls this directly
no test coverage detected