package net.tropicraft.client.entity.render;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Direction;
import net.minecraft.util.ResourceLocation;
import net.tropicraft.entity.placeable.EntityWallShell;
import net.tropicraft.entity.placeable.EntityWallStarfish;
import net.tropicraft.entity.underdasea.StarfishType;
import net.tropicraft.registry.TCItemRegistry;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
public class RenderWallShell extends Render {
public RenderWallShell() {
}
@Override
public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks) {
EntityWallShell entityWallShell = (EntityWallShell) entity;
int type = entityWallShell.getShellType();
ItemStack itemstack = new ItemStack(TCItemRegistry.shells, 1, entityWallShell.getShellType ());
EntityItem entityitem = new EntityItem(entityWallShell.worldObj, 0.0D, 0.0D, 0.0D, itemstack);
entityitem.getEntityItem().stackSize = 1;
// Without the below line, the item will spazz out
entityitem.hoverStart = 0F;
/*
Render the item sprite at the wall.
It needs to be 180 degrees rotated to face away from the wall.
*/
GL11.glPushMatrix();
GL11.glTranslated(x,y,z);
RenderItem.renderInFrame = true;
GL11.glRotatef(180.0F + entityWallShell.rotationYaw, 0.0F, 1.0F, 0.0F);
RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
RenderItem.renderInFrame = false;
GL11.glPopMatrix();
}
@Override
/**
* Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
*/
protected ResourceLocation getEntityTexture(Entity entity) {
// Don't use this, let the item entity handle it.
return null;
}
}