package crazypants.enderio.machine.painter;
import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import com.enderio.core.common.util.IBlockAccessWrapper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PaintedBlockAccessWrapper extends IBlockAccessWrapper {
public PaintedBlockAccessWrapper(IBlockAccess ba) {
super(ba);
}
@Override
public Block getBlock(int x, int y, int z) {
Block res = super.getBlock(x, y, z);
TileEntity te = getTileEntity(x, y, z);
if(te instanceof IPaintableTileEntity) {
IPaintableTileEntity tcb = (IPaintableTileEntity) te;
Block fac = tcb.getSourceBlock();
if(fac != null) {
res = fac;
}
}
return res;
}
@Override
@SideOnly(Side.CLIENT)
public int getLightBrightnessForSkyBlocks(int var1, int var2, int var3, int var4) {
return wrapped.getLightBrightnessForSkyBlocks(var1, var2, var3, var4);
}
@Override
public int getBlockMetadata(int x, int y, int z) {
Block block = super.getBlock(x, y, z);
TileEntity te = getTileEntity(x, y, z);
if(te instanceof IPaintableTileEntity) {
IPaintableTileEntity tcb = (IPaintableTileEntity) te;
Block fac = tcb.getSourceBlock();
if(fac != null) {
return tcb.getSourceBlockMetadata();
}
}
return super.getBlockMetadata(x, y, z);
}
}