package com.cricketcraft.chisel.client.render;
import com.cricketcraft.chisel.Chisel;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import com.cricketcraft.chisel.init.ChiselBlocks;
import com.cricketcraft.ctmlib.CTM;
import com.cricketcraft.ctmlib.TextureSubmap;
import com.google.common.base.Optional;
import static com.cricketcraft.ctmlib.Dir.*;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class SubmapManagerFakeController extends SubmapManagerBase {
private TextureSubmap map;
private CTM ctm = CTM.getInstance();
private int meta;
private String texturePath;
public SubmapManagerFakeController(int meta, String texture) {
ctm.disableObscuredFaceCheck = Optional.of(true);
this.meta = meta;
texturePath = texture;
}
public SubmapManagerFakeController(int meta) {
ctm.disableObscuredFaceCheck = Optional.of(true);
this.meta = meta;
}
@Override
public IIcon getIcon(int side, int meta) {
return map.getSubIcon(0, 0);
}
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side)
{
ctm.buildConnectionMap(world, x, y, z, side, ChiselBlocks.futura, meta);
if (ctm.connectedAnd(TOP, TOP_RIGHT, RIGHT, BOTTOM_RIGHT, BOTTOM, BOTTOM_LEFT, LEFT, TOP_LEFT)) {
return map.getSubIcon(1, 1);
} else if (ctm.connectedAnd(TOP, BOTTOM)) {
return map.getSubIcon(0, 1);
} else if (ctm.connectedAnd(LEFT, RIGHT)) {
return map.getSubIcon(1, 0);
} else {
return map.getSubIcon(0, 0);
}
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(String modName, Block block, IIconRegister register) {
if (texturePath != null)
{
map = new TextureSubmap(register.registerIcon(modName + ":" + texturePath), 2, 2);
}
else
{
Chisel.logger.info("SubmapManagerFakeController was called on block " + block.getUnlocalizedName()
+ " without declaring texture, using a default texture instead.");
map = new TextureSubmap(register.registerIcon(modName + ":futura/WIP/controller"), 2, 2);
}
}
}