View Javadoc

1   package de.jos.game.objects;
2   
3   import java.awt.Graphics2D;
4   
5   import com.golden.gamedev.object.AnimatedSprite;
6   import com.golden.gamedev.object.Timer;
7   
8   public class Canister {
9   
10    private ResourceContainer resourceContainer = null;
11  
12    private static final int[] CANISTER_X_COORDINATE = { 495, 543, 591, 0 };
13    private static final int CANISTER_Y_COORDINATE = 418;
14  
15    AnimatedSprite sprite = null;
16  
17    private Integer color = null;
18  
19    // TODO state variable
20    private boolean fillContainer = true;
21    private boolean emptyContainer = false;
22    private boolean destroyable = false;
23  
24    private int NUMBER_FRAMES = 64;
25  
26    public Canister() {}
27  
28    public void init(int index, Integer color) {
29      this.color = color;
30      sprite = resourceContainer.createCanisterSprite(color.intValue());
31      sprite.setAnimate(true);
32      sprite.setX(CANISTER_X_COORDINATE[index]);
33      sprite.setY(CANISTER_Y_COORDINATE);
34      sprite.setAnimationTimer(new Timer(10));
35    }
36  
37    public void update(long elapsedTime) {
38      if (fillContainer == true) {
39        if (sprite.getFrame() < (NUMBER_FRAMES / 2)) {
40          sprite.update(elapsedTime);
41          // System.out.println(sprite.getImage(sprite.getFrame()).getHeight());
42        } else {
43          fillContainer = false;
44        }
45      }
46      if (emptyContainer == true) {
47        if (sprite.getFrame() < (NUMBER_FRAMES - 1)) {
48          sprite.update(elapsedTime);
49        } else {
50          emptyContainer = false;
51          destroyable = true;
52        }
53      }
54    }
55  
56    public boolean isWaiting() {
57      return (fillContainer == false && emptyContainer == false);
58    }
59  
60    public void render(Graphics2D g) {
61      sprite.render(g);
62    }
63  
64    public void fill() {
65      fillContainer = true;
66    }
67  
68    public void empty() {
69      emptyContainer = true;
70    }
71  
72    public ResourceContainer getResourceContainer() {
73      return resourceContainer;
74    }
75  
76    public void setResourceContainer(ResourceContainer resourceContainer) {
77      this.resourceContainer = resourceContainer;
78    }
79  
80    public boolean isDestroyable() {
81      return destroyable;
82    }
83  
84    public Integer getColor() {
85      return color;
86    }
87  
88    public void setColor(Integer color) {
89      this.color = color;
90    }
91  
92  }