1 package de.jos.game.objects.screen;
2
3 import java.awt.Graphics2D;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import org.apache.commons.lang.StringUtils;
8 import org.springframework.beans.factory.xml.XmlBeanFactory;
9
10 import com.golden.gamedev.GameEngine;
11 import com.golden.gamedev.GameObject;
12 import com.golden.gamedev.gui.toolkit.FrameWork;
13
14 import de.jos.game.objects.ResourceContainer;
15 import de.jos.game.objects.buttons.GameButton;
16
17 public abstract class AbstractGameObject extends GameObject {
18
19 private ResourceContainer resourceContainer = null;
20 private XmlBeanFactory xmlBeanFactory = null;
21
22 private FrameWork framework = null;
23
24 private List<GameButton> screenButtons = new ArrayList<GameButton>();
25
26 /*** Screen der als naechstes anzuzeigen ist (vorgemerkt) */
27 private Screen nextScreen = null;
28
29 public AbstractGameObject(GameEngine gameEngine, ResourceContainer resourceContainer, XmlBeanFactory xmlBeanFactory) {
30 super(gameEngine);
31 this.resourceContainer = resourceContainer;
32 this.xmlBeanFactory = xmlBeanFactory;
33
34
35 framework = new FrameWork(bsInput, getWidth(), getHeight());
36 }
37
38 public abstract void initResources();
39
40 public void addButtonToScreen(GameButton button) {
41 screenButtons.add(button);
42 framework.add(button);
43 }
44
45 public abstract void render(Graphics2D graphics);
46
47 public void update(long elapsedTime) {
48 if (nextScreen != null) {
49
50 parent.nextGameID = nextScreen.ordinal();
51
52 nextScreen = null;
53
54 finish();
55 }
56 framework.update();
57 }
58
59 public ResourceContainer getResourceContainer() {
60 return resourceContainer;
61 }
62
63 public void setResourceContainer(ResourceContainer resourceContainer) {
64 this.resourceContainer = resourceContainer;
65 }
66
67 public XmlBeanFactory getXmlBeanFactory() {
68 return xmlBeanFactory;
69 }
70
71 public void setXmlBeanFactory(XmlBeanFactory xmlBeanFactory) {
72 this.xmlBeanFactory = xmlBeanFactory;
73 }
74
75 public String getString(String key) {
76 return StringUtils.upperCase(getResourceContainer().getLabelResources().getString(key));
77 }
78
79 public FrameWork getFramework() {
80 return framework;
81 }
82
83 public List<GameButton> getScreenButtons() {
84 return screenButtons;
85 }
86
87 public Screen getNextScreen() {
88 return nextScreen;
89 }
90
91 public void setNextScreen(Screen nextScreen) {
92 this.nextScreen = nextScreen;
93 }
94
95 }