package advancedsystemsmanager.client.render; import advancedsystemsmanager.tileentities.TileEntityCamouflage; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.util.ForgeDirection; public class CamouflageBlockAccess implements IBlockAccess { protected int side; private TileEntityCamouflage camouflage; private IBlockAccess wrapped; public CamouflageBlockAccess(int side, TileEntityCamouflage camo, IBlockAccess wrapped) { this.side = side; this.camouflage = camo; this.wrapped = wrapped; } @Override public Block getBlock(int x, int y, int z) { if (x == camouflage.xCoord && y == camouflage.yCoord && z == camouflage.zCoord) { return camouflage.getSideBlock(side); } else { return wrapped.getBlock(x, y, z); } } @Override public TileEntity getTileEntity(int x, int y, int z) { return wrapped.getTileEntity(x, y, z); } @Override public int getLightBrightnessForSkyBlocks(int p_72802_1_, int p_72802_2_, int p_72802_3_, int p_72802_4_) { return wrapped.getLightBrightnessForSkyBlocks(p_72802_1_, p_72802_2_, p_72802_3_, p_72802_4_); } @Override public int getBlockMetadata(int x, int y, int z) { return camouflage.getSideMetadata(side); } @Override public int isBlockProvidingPowerTo(int x, int y, int z, int side) { return 0; } @Override public boolean isAirBlock(int x, int y, int z) { return camouflage != null; } @Override public BiomeGenBase getBiomeGenForCoords(int x, int z) { return wrapped.getBiomeGenForCoords(x, z); } @Override public int getHeight() { return wrapped.getHeight(); } @Override public boolean extendedLevelsInChunkCache() { return wrapped.extendedLevelsInChunkCache(); } @Override public boolean isSideSolid(int x, int y, int z, ForgeDirection side, boolean _default) { return wrapped.isSideSolid(x, y, z, side, _default); } }