package net.fe;
import java.util.Map.Entry;
import java.util.*;
import org.newdawn.slick.Color;
import chu.engine.Entity;
import chu.engine.Game;
import chu.engine.anim.Renderer;
public class ControlsDisplay extends Entity{
private Map<String, String> keys;
private String tempMessage;
private float tempTimer;
private float tempTimerMax;
public ControlsDisplay() {
super(0, 300);
renderDepth = 0;
keys = new LinkedHashMap<String, String>();
}
public void onStep(){
if(tempMessage != null){
tempTimer += Game.getDeltaSeconds();
if(tempTimer > tempTimerMax){
tempMessage = null;
}
}
}
public void render(){
Renderer.drawRectangle(x, y, x+480, y+20, renderDepth, new Color(0,0,0,0.5f));
StringBuilder str = new StringBuilder();
String sep = " | ";
for(Entry<String, String> entry: keys.entrySet()){
str.append(sep);
str.append(entry.getKey() + ": " + entry.getValue());
}
String s = str.substring(sep.length());
if(tempMessage != null){
s = tempMessage;
}
int width = FEResources.getBitmapFont("default_med").getStringWidth(s);
Renderer.drawString("default_med", s, 240 - width/2, y+5, renderDepth);
}
public void addControl(String key, String action){
keys.put(key, action);
}
public void set(String key, String action){
keys.put(key, action);
}
public void removeControl(String key){
keys.remove(key);
}
public void setTempMessage(String msg, float seconds){
tempMessage = msg;
tempTimerMax = seconds;
tempTimer = 0;
}
}