package com.flansmod.client.model;
import java.util.List;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import com.flansmod.client.FlansModClient;
import com.flansmod.common.teams.EntityFlag;
import com.flansmod.common.teams.EntityFlagpole;
import com.flansmod.common.teams.Team;
public class RenderFlag extends Render
{
private static final ResourceLocation texture = new ResourceLocation("flansmod", "teamsMod/Flagpole.png");
public ModelFlagpole modelFlagpole;
public static float angle;
public RenderFlag(RenderManager renderManager)
{
super(renderManager);
modelFlagpole = new ModelFlagpole();
}
@Override
public void doRender(Entity entity, double d, double d1, double d2, float f, float f1)
{
bindEntityTexture(entity);
EntityFlag flag = (EntityFlag)entity;
int teamID = flag.getTeamID();
Team team = FlansModClient.getTeam(teamID);
if(team == null)
{
//Give each team a default colour
switch(teamID)
{
case 0 : GL11.glColor3f(0x80 / 255F, 0x80 / 255F, 0x80 / 255F); break; //No team
case 1 : GL11.glColor3f(0x40 / 255F, 0x40 / 255F, 0x40 / 255F); break; //Spectators
case 2 : GL11.glColor3f(0xa1 / 255F, 0x7f / 255F, 0xff / 255F); break; //Team 1
case 3 : GL11.glColor3f(0xff / 255F, 0x7f / 255F, 0xb6 / 255F); break; //Team 2
}
}
else
{
int colour = team.teamColour;
GL11.glColor3f(((colour >> 16) & 0xff) / 255F, ((colour >> 8) & 0xff) / 255F, (colour & 0xff) / 255F);
}
GL11.glPushMatrix();
GL11.glTranslatef((float)d, (float)d1, (float)d2);
GL11.glRotatef(f, 0.0F, 1.0F, 0.0F);
List ents = flag.worldObj.getEntitiesWithinAABB(EntityFlagpole.class, flag.getEntityBoundingBox().expand(1F, 2F, 1F));
if(ents.size() == 0)
{
GL11.glRotatef(angle, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(0.5F, 0F, 0F);
}
GL11.glScalef(-1F, -1F, 1F);
modelFlagpole.renderFlag(0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F, flag);
GL11.glPopMatrix();
GL11.glColor3f(1F, 1F, 1F);
}
@Override
protected ResourceLocation getEntityTexture(Entity entity)
{
return texture;
}
}