View Javadoc

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  }