package net.fe.unit;
import net.fe.FEResources;
import net.fe.Party;
import org.newdawn.slick.Color;
import chu.engine.Entity;
import chu.engine.anim.Renderer;
import chu.engine.anim.ShaderArgs;
import chu.engine.anim.Transform;
public class UnitIcon extends Entity {
private Color c;
private Unit u;
private boolean greyscale;
public UnitIcon(Unit u, float x, float y, float depth){
super(x, y);
this.u = u;
if(u.getParty() != null)
this.c = u.getPartyColor();
else
this.c = Party.TEAM_BLUE;
sprite.addAnimation("IDLE", new MapAnimation(u.functionalClassName() +
"_map_idle", false));
renderDepth = depth;
}
public void onStep(){
super.onStep();
}
public void render(){
if(FEResources.hasTexture(u.functionalClassName().toLowerCase() + "_map_idle")){
Transform t = new Transform();
if(greyscale){
sprite.render(x+1, y+1, renderDepth, t, new ShaderArgs("greyscale"));
} else if(c.equals(Party.TEAM_RED)) {
sprite.render(x+1, y+1, renderDepth, t, new ShaderArgs("paletteSwap"));
} else {
sprite.render(x+1, y+1, renderDepth, t, new ShaderArgs("default"));
}
}else {
Color c = this.c;
if(greyscale) c = Color.gray;
Renderer.drawRectangle(x + 1, y + 1, x + 14,
y + 14, renderDepth, c);
Renderer.drawString("default_med",
u.name.charAt(0) + "" + u.name.charAt(1), x + 2, y + 1,
renderDepth);
}
}
public boolean isGreyscale() {
return greyscale;
}
public void setGreyscale(boolean greyscale) {
this.greyscale = greyscale;
}
}