package mountainrangepvp.client.renderer;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import mountainrangepvp.core.ClientId;
import mountainrangepvp.core.LeaderBoard;
import mountainrangepvp.core.Snapshot;
import mountainrangepvp.engine.ui.TextRenderer;
import scala.collection.JavaConversions;
/**
* @author lachlan
*/
public class LeaderBoardRenderer {
private final SpriteBatch batch;
private final TextRenderer textRenderer;
private final Texture[] bodyTextures;
private final int width, height;
public LeaderBoardRenderer(SpriteBatch batch, TextRenderer textRenderer) {
this.batch = batch;
this.textRenderer = textRenderer;
bodyTextures = new Texture[]{
new Texture(Gdx.files.internal("player/head-orange.png")),
new Texture(Gdx.files.internal("player/head-red.png")),
new Texture(Gdx.files.internal("player/head-green.png")),
new Texture(Gdx.files.internal("player/head-blue.png"))
};
width = Gdx.graphics.getWidth() + 1;
height = Gdx.graphics.getHeight();
}
public void render(Snapshot snapshot) {
int x = 20;
int y = height - 20;
batch.begin();
for (LeaderBoard.Stats stats : JavaConversions.asJavaIterable(snapshot.leaderBoard().sortedByHighest().take(4))) {
ClientId player = stats.player();
if (stats.hits() == 0)
continue;
Texture tex = bodyTextures[0];
batch.draw(tex, x, y - tex.getWidth() * 5 / 6);
String text = snapshot.nicknameFor(player) + " " + stats.hits() + "/" + stats.deaths();
textRenderer.drawString(batch, text, x + tex.getWidth() + 20, y);
y -= 40;
}
batch.end();
}
}