package matteroverdrive.client.render.item;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Vec3;
import net.minecraftforge.client.IItemRenderer;
import static org.lwjgl.opengl.GL11.*;
/**
* Created by Simeon on 4/5/2015.
*/
public class ItemRendererTileEntityMachine implements IItemRenderer
{
private TileEntitySpecialRenderer renderer;
private TileEntity tileEntity;
private double scale = 1;
Vec3 offfset;
public ItemRendererTileEntityMachine(TileEntitySpecialRenderer renderer, TileEntity tileEntity)
{
this.renderer = renderer;
this.tileEntity = tileEntity;
}
public ItemRendererTileEntityMachine(TileEntitySpecialRenderer renderer, TileEntity tileEntity, double scale)
{
this(renderer,tileEntity);
this.scale = scale;
}
public ItemRendererTileEntityMachine(TileEntitySpecialRenderer renderer, TileEntity tileEntity, double scale, Vec3 offfset)
{
this(renderer,tileEntity,scale);
this.offfset = offfset;
}
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type)
{
return true;
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
{
return true;
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
{
glPushMatrix();
if (type == ItemRenderType.EQUIPPED || type == ItemRenderType.EQUIPPED_FIRST_PERSON)
{
renderer.renderTileEntityAt(tileEntity, 0, 0, 0, 0);
}
else
{
if (offfset != null)
glTranslated(offfset.xCoord,offfset.yCoord,offfset.zCoord);
glTranslated(-0.5,-0.5,-0.5);
glScaled(scale, scale, scale);
renderer.renderTileEntityAt(tileEntity, 0, 0, 0, 0);
}
glPopMatrix();
}
}