1 package de.jos.game.actions.permanent; 2 3 import java.awt.Graphics2D; 4 5 import org.apache.commons.lang.StringUtils; 6 7 import com.golden.gamedev.GameObject; 8 9 import de.jos.game.actions.LayerConstants; 10 import de.jos.game.actions.cleanup.CleanupActionNone; 11 import de.jos.game.xml.Level; 12 13 public class ActionStatistics extends AbstractPermanentAction implements SpecialEventPermanent { 14 15 private int score = 0; 16 private Level level = null; 17 18 private String scoreString = ""; 19 private String levelString = ""; 20 21 private static final int SCORE_X = 480; 22 private static final int SCORE_Y = 100; 23 private static final int LEVEL_X = 480; 24 private static final int LEVEL_Y = 130; 25 26 public ActionStatistics() { 27 setCleanupAction(new CleanupActionNone(null)); 28 } 29 30 public void init() { 31 super.init(); 32 score = 0; 33 updateScore(score); 34 } 35 36 public boolean isBlocking() { 37 return false; 38 } 39 40 public boolean isFinished() { 41 return false; 42 } 43 44 public void update(long elapsedTime, GameObject gameObject) {} 45 46 public void render(Graphics2D graphics, GameObject gameObject) { 47 getGameFont().drawString(graphics, scoreString, SCORE_X, SCORE_Y); 48 getGameFont().drawString(graphics, levelString, LEVEL_X, LEVEL_Y); 49 } 50 51 public void cleanup() {} 52 53 public Integer getLayer() { 54 return LayerConstants.LAYER_1; 55 } 56 57 public Level getLevel() { 58 return level; 59 } 60 61 public void setLevel(Level level) { 62 this.level = level; 63 StringBuilder sb = new StringBuilder(); 64 sb.append(getResourceContainer().getLabelResources().getString("label.level")); 65 sb.append(":").append(StringUtils.leftPad(String.valueOf(level.getId()), 5)); 66 levelString = StringUtils.upperCase(sb.toString()); 67 } 68 69 public int getScore() { 70 return score; 71 } 72 73 public void updateScore(int scoreToAdd) { 74 score += scoreToAdd; 75 StringBuilder sb = new StringBuilder(); 76 sb.append(getResourceContainer().getLabelResources().getString("label.score")); 77 sb.append(":").append(StringUtils.leftPad(String.valueOf(score), 5)); 78 scoreString = StringUtils.upperCase(sb.toString()); 79 } 80 81 public String getName() { 82 return this.getClass().getName(); 83 } 84 85 }