113 lines
3.5 KiB
Java
113 lines
3.5 KiB
Java
|
package liquidmechanics.client.render;
|
||
|
|
||
|
import liquidmechanics.client.model.ModelGearRod;
|
||
|
import liquidmechanics.client.model.ModelGenerator;
|
||
|
import liquidmechanics.client.model.ModelLargePipe;
|
||
|
import liquidmechanics.client.model.ModelLiquidTank;
|
||
|
import liquidmechanics.client.model.ModelPump;
|
||
|
import liquidmechanics.client.model.ModelReleaseValve;
|
||
|
import liquidmechanics.common.LiquidMechanics;
|
||
|
import net.minecraft.client.renderer.RenderBlocks;
|
||
|
import net.minecraft.item.ItemStack;
|
||
|
import net.minecraftforge.client.IItemRenderer;
|
||
|
import net.minecraftforge.common.ForgeDirection;
|
||
|
|
||
|
import org.lwjgl.opengl.GL11;
|
||
|
|
||
|
import cpw.mods.fml.client.FMLClientHandler;
|
||
|
|
||
|
/** special tanks to Mekanism github */
|
||
|
public class ItemRenderHelper implements IItemRenderer
|
||
|
{
|
||
|
private ModelPump modelPump = new ModelPump();
|
||
|
private ModelGearRod modelRod = new ModelGearRod();
|
||
|
private ModelGenerator modelGen = new ModelGenerator();
|
||
|
private ModelLargePipe SixPipe = new ModelLargePipe();
|
||
|
private ModelLiquidTank tank = new ModelLiquidTank();
|
||
|
private ModelReleaseValve valve = new ModelReleaseValve();
|
||
|
|
||
|
@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)
|
||
|
{
|
||
|
if (item.itemID == LiquidMechanics.blockPipe.blockID)
|
||
|
{
|
||
|
this.renderPipeItem((RenderBlocks) data[0], item.getItemDamage(), type == ItemRenderType.EQUIPPED);
|
||
|
}
|
||
|
if (item.itemID == LiquidMechanics.blockReleaseValve.blockID)
|
||
|
{
|
||
|
this.renderReleaseValve((RenderBlocks) data[0], item.getItemDamage(), type == ItemRenderType.EQUIPPED);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
public void renderPipeItem(RenderBlocks renderer, int meta, boolean equ)
|
||
|
{
|
||
|
|
||
|
GL11.glPushMatrix();
|
||
|
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(RenderPipe.getPipeTexture(meta)));
|
||
|
|
||
|
if (!equ)
|
||
|
{
|
||
|
GL11.glTranslatef(0.5F, -0.5F, 0.5F);
|
||
|
SixPipe.renderRight();
|
||
|
SixPipe.renderLeft();
|
||
|
SixPipe.renderMiddle();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
GL11.glTranslatef(0.5F, -0.5F, 0.5F);
|
||
|
SixPipe.renderFront();
|
||
|
SixPipe.renderBack();
|
||
|
SixPipe.renderMiddle();
|
||
|
}
|
||
|
|
||
|
GL11.glPopMatrix();
|
||
|
}
|
||
|
|
||
|
public void renderReleaseValve(RenderBlocks renderer, int meta, boolean equ)
|
||
|
{
|
||
|
GL11.glPushMatrix();
|
||
|
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(RenderPipe.getPipeTexture(15)));
|
||
|
if (!equ)
|
||
|
{
|
||
|
GL11.glTranslatef(0.5F, -0.5F, 0.5F);
|
||
|
SixPipe.renderRight();
|
||
|
SixPipe.renderLeft();
|
||
|
SixPipe.renderMiddle();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
GL11.glTranslatef(0.5F, -0.5F, 0.5F);
|
||
|
SixPipe.renderFront();
|
||
|
SixPipe.renderBack();
|
||
|
SixPipe.renderMiddle();
|
||
|
}
|
||
|
|
||
|
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(LiquidMechanics.RESOURCE_PATH + "ReleaseValve.png"));
|
||
|
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||
|
if (!equ)
|
||
|
{
|
||
|
GL11.glTranslatef(0, -2.0F, 0);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
GL11.glTranslatef(0, -2.0F, 0);
|
||
|
}
|
||
|
valve.render();
|
||
|
GL11.glPopMatrix();
|
||
|
}
|
||
|
|
||
|
}
|