1 package de.jos.game.objects;
2
3 import java.awt.image.BufferedImage;
4 import java.io.Serializable;
5 import java.util.ArrayList;
6 import java.util.List;
7 import java.util.ResourceBundle;
8
9 import org.springframework.beans.factory.xml.XmlBeanFactory;
10
11 import com.golden.gamedev.object.AnimatedSprite;
12 import com.golden.gamedev.object.Background;
13 import com.golden.gamedev.object.GameFont;
14 import com.golden.gamedev.object.Sprite;
15 import com.golden.gamedev.object.background.ColorBackground;
16 import com.golden.gamedev.object.background.ImageBackground;
17
18 import de.jos.game.Constants;
19 import de.jos.game.logic.NInARowValidator;
20 import de.jos.game.xml.Level;
21
22 public class ResourceContainer implements Serializable {
23
24 private static final long serialVersionUID = 3245510308465227482L;
25
26 private final ResourceBundle labelResources = ResourceBundle.getBundle("label");
27
28 private ImageBackground gameBackgroundImage = null;
29
30 private Sprite cursorSprite = null;
31 private Sprite levelAdvanceTop = null;
32 private Sprite levelAdvanceBottom = null;
33
34 private static final int NUMBER_BULLETS = 8;
35
36 /*** teilhintergrund fuer den enlosmodues, bg rechts */
37 private BufferedImage bgPartInfinite = null;
38
39 private BufferedImage[][] bulletSpriteImages = new BufferedImage[NUMBER_BULLETS][];
40 private BufferedImage[][] bulletSpriteImagesSmall = new BufferedImage[NUMBER_BULLETS][0];
41 private BufferedImage[][] bulletSpriteImagesTiny = new BufferedImage[NUMBER_BULLETS][0];
42 private BufferedImage[][] bulletSpriteRotate = new BufferedImage[NUMBER_BULLETS][];
43
44 private BufferedImage[][] canisterImages = new BufferedImage[NUMBER_BULLETS][];
45
46 private GameFont gameFont = null;
47 private GameFont ingameFont = null;
48
49 private XmlBeanFactory beanFactory = null;
50
51 private Sprite countdownSprite = null;
52 private Sprite countdownBackground = null;
53 private AnimatedSprite animatedButtonSprite = null;
54
55 private ScoreCalculator scoreCalculator = new ScoreCalculator();
56 private NInARowValidator nInARowValidator = new NInARowValidator();
57
58 private Background background = new ColorBackground(Constants.DEFAULT_BACKGROUND_COLOR, 800, 600);
59
60 private List<Level> puzzleLevels = new ArrayList<Level>();
61 private List<Level> infiniteLevels = new ArrayList<Level>();
62
63 public List<Level> getInfiniteLevels() {
64 return infiniteLevels;
65 }
66
67 public void setInfiniteLevels(List<Level> infiniteLevels) {
68 this.infiniteLevels = infiniteLevels;
69 }
70
71 public List<Level> getPuzzleLevels() {
72 return puzzleLevels;
73 }
74
75 public void setPuzzleLevels(List<Level> puzzleLevels) {
76 this.puzzleLevels = puzzleLevels;
77 }
78
79 public ImageBackground getGameBackgroundImage() {
80 return gameBackgroundImage;
81 }
82
83 public void setGameBackgroundImage(ImageBackground gameBackgroundImage) {
84 this.gameBackgroundImage = gameBackgroundImage;
85 }
86
87 public Sprite getCursorSprite() {
88 return cursorSprite;
89 }
90
91 public void setCursorSprite(Sprite cursorSprite) {
92 this.cursorSprite = cursorSprite;
93 }
94
95 public BufferedImage[] getBulletSpriteImage(int index) {
96 return bulletSpriteImages[index];
97 }
98
99 public void setBulletSpriteImage(int index, BufferedImage[] sprite) {
100 bulletSpriteImages[index] = sprite;
101 }
102
103 public BufferedImage[] getBulletSpriteRotate(int index) {
104 return bulletSpriteRotate[index];
105 }
106
107 public void setBulletSpriteRotate(int index, BufferedImage[] sprite) {
108 bulletSpriteRotate[index] = sprite;
109 }
110
111 public BufferedImage[] getBulletSpriteImageSmall(int index) {
112 return bulletSpriteImagesSmall[index];
113 }
114
115 public void setBulletSpriteImageSmall(int index, BufferedImage[] sprite) {
116 bulletSpriteImagesSmall[index] = sprite;
117 }
118
119 public BufferedImage[] getBulletSpriteImageTiny(int index) {
120 return bulletSpriteImagesTiny[index];
121 }
122
123 public void setBulletSpriteImageTiny(int index, BufferedImage[] sprite) {
124 bulletSpriteImagesTiny[index] = sprite;
125 }
126
127 public AnimatedSprite createAnimatedSprite(Integer color) {
128 return new AnimatedSprite(getBulletSpriteImage(color.intValue()));
129 }
130
131 public AnimatedSprite createAnimatedSpriteSmall(Integer color) {
132 return new AnimatedSprite(getBulletSpriteImageSmall(color.intValue()));
133 }
134
135 public void setCanisterImage(int index, BufferedImage[] canisterImage) {
136
137
138 BufferedImage[] tmpImage = new BufferedImage[64];
139 for (int i = 0; i < canisterImage.length; i++) {
140 tmpImage[i] = canisterImage[i];
141 tmpImage[63 - i] = canisterImage[i];
142 }
143 canisterImages[index] = tmpImage;
144 }
145
146 public BufferedImage[] getCanisterSpriteImage(int index) {
147 return canisterImages[index];
148 }
149
150 public AnimatedSprite createCanisterSprite(Integer color) {
151 return new AnimatedSprite(getCanisterSpriteImage(color.intValue()));
152 }
153
154 public Sprite getLevelAdvanceBottom() {
155 return levelAdvanceBottom;
156 }
157
158 public void setLevelAdvanceBottom(Sprite levelAdvanceBottom) {
159 this.levelAdvanceBottom = levelAdvanceBottom;
160 }
161
162 public Sprite getLevelAdvanceTop() {
163 return levelAdvanceTop;
164 }
165
166 public void setLevelAdvanceTop(Sprite levelAdvanceTop) {
167 this.levelAdvanceTop = levelAdvanceTop;
168 }
169
170 public GameFont getGameFont() {
171 return gameFont;
172 }
173
174 public void setGameFont(GameFont gameFont) {
175 this.gameFont = gameFont;
176 }
177
178 public ResourceBundle getLabelResources() {
179 return labelResources;
180 }
181
182 public Sprite getCountdownSprite() {
183 return countdownSprite;
184 }
185
186 public void setCountdownSprite(Sprite countdownSprite) {
187 this.countdownSprite = countdownSprite;
188 }
189
190
191 public AnimatedSprite getAnimatedButtonSprite() {
192 return new AnimatedSprite(animatedButtonSprite.getImages());
193 }
194
195 public void setAnimatedButtonSprite(AnimatedSprite animatedButtonSprite) {
196 this.animatedButtonSprite = animatedButtonSprite;
197 }
198
199 public Sprite getCountdownBackground() {
200 return countdownBackground;
201 }
202
203 public void setCountdownBackground(Sprite countdownBackground) {
204 this.countdownBackground = countdownBackground;
205 }
206
207 public ScoreCalculator getScoreCalculator() {
208 return scoreCalculator;
209 }
210
211 public NInARowValidator getNInARowValidator() {
212 return nInARowValidator;
213 }
214
215 public void setNInARowValidator(NInARowValidator inARowValidator) {
216 nInARowValidator = inARowValidator;
217 }
218
219 public Background getBackground() {
220 return background;
221 }
222
223 public void setBackground(Background background) {
224 this.background = background;
225 }
226
227 public XmlBeanFactory getBeanFactory() {
228 return beanFactory;
229 }
230
231 public void setBeanFactory(XmlBeanFactory beanFactory) {
232 this.beanFactory = beanFactory;
233 }
234
235 public GameFont getIngameFont() {
236 return ingameFont;
237 }
238
239 public void setIngameFont(GameFont ingameFont) {
240 this.ingameFont = ingameFont;
241 }
242
243 public BufferedImage getBgPartInfinite() {
244 return bgPartInfinite;
245 }
246
247 public void setBgPartInfinite(BufferedImage bgPartInfinite) {
248 this.bgPartInfinite = bgPartInfinite;
249 }
250
251
252 }