package mekanism.client.render.entity;
import mekanism.api.EnumColor;
import mekanism.client.model.ModelBalloon;
import mekanism.common.entity.EntityBalloon;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
public class RenderBalloon extends Render<EntityBalloon>
{
private Minecraft mc = Minecraft.getMinecraft();
public ModelBalloon model = new ModelBalloon();
public RenderBalloon(RenderManager renderManager)
{
super(renderManager);
}
@Override
protected ResourceLocation getEntityTexture(EntityBalloon entity)
{
return MekanismUtils.getResource(ResourceType.RENDER, "Balloon.png");
}
@Override
public void doRender(EntityBalloon balloon, double x, double y, double z, float f, float partialTick)
{
double renderPosX = x - (balloon.lastTickPosX + (balloon.posX - balloon.lastTickPosX)*partialTick);
double renderPosY = y - (balloon.lastTickPosY + (balloon.posY - balloon.lastTickPosY)*partialTick);
double renderPosZ = z - (balloon.lastTickPosZ + (balloon.posZ - balloon.lastTickPosZ)*partialTick);
if(balloon.isLatchedToEntity())
{
x = (balloon.latchedEntity.lastTickPosX + (balloon.latchedEntity.posX - balloon.latchedEntity.lastTickPosX)*partialTick);
y = (balloon.latchedEntity.lastTickPosY + (balloon.latchedEntity.posY - balloon.latchedEntity.lastTickPosY)*partialTick);
z = (balloon.latchedEntity.lastTickPosZ + (balloon.latchedEntity.posZ - balloon.latchedEntity.lastTickPosZ)*partialTick);
x += renderPosX;
y += renderPosY;
z += renderPosZ;
y += balloon.getAddedHeight();
}
render(balloon.color, x, y, z);
}
public void render(EnumColor color, double x, double y, double z)
{
GlStateManager.pushMatrix();
GL11.glTranslated(x, y, z);
GlStateManager.rotate(180, 1, 0, 0);
mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Balloon.png"));
model.render(0.0625F, color);
GlStateManager.popMatrix();
}
}