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
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
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 }