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 }