00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 package org.classroomgaming.cgp;
00021
00022 import java.awt.*;
00023 import java.util.*;
00024
00033 public class Entity extends GameModule {
00034
00035 private String name;
00036 private LinkedHashMap<String, GameModule> modules;
00038 private float xpos;
00039 private float ypos;
00040 private int layer;
00041 private boolean playerControlled;
00042
00043
00048 public Entity(String n) {
00049 name = n;
00050 playerControlled = false;
00051 xpos = 0.0f;
00052 ypos = 0.0f;
00053 layer = 1;
00054 modules = new LinkedHashMap<String, GameModule>();
00055 }
00056
00063 public boolean addModule(String n, GameModule m) {
00064 if (modules.containsKey(n)) {
00065 return false;
00066 }
00067 modules.put(n, m);
00068 return true;
00069 }
00070
00075 public void ponder(float t) {
00076 for (Iterator it = modules.values().iterator(); it.hasNext();) {
00077 try {
00078 GameModule.FrameListener o = (GameModule.FrameListener) it.next();
00079
00080 o.ponder(t);
00081 } catch (ClassCastException e) {}
00082 }
00083
00084 }
00085
00094 public void render(Graphics g) {
00095 for (Iterator it = modules.values().iterator(); it.hasNext();) {
00096 try {
00097 GameModule.Renderable o = (GameModule.Renderable) it.next();
00098 o.render(g);
00099 } catch (ClassCastException e) {
00100 }
00101
00102 }
00103 }
00104
00105
00110 public String getName() {
00111 return name;
00112 }
00113
00119 public GameModule getModule(String name) {
00120 return (GameModule) modules.get(name);
00121 }
00122
00127 public int getLayer() {
00128 return layer;
00129 }
00130
00135 public void setLayer(int z) {
00136 layer = z;
00137 }
00138
00143 public float getX() {
00144 return xpos;
00145 }
00146
00151 public int getGridX() {
00152 return java.lang.Math.round(xpos);
00153 }
00154
00159 public void setX(float x) {
00160 xpos = x;
00161 }
00162
00167 public float getY() {
00168 return ypos;
00169 }
00170
00175 public int getGridY() {
00176 return java.lang.Math.round(ypos);
00177 }
00178
00183 public void setY(float y) {
00184 ypos = y;
00185 }
00186
00192 public boolean testGrid(int x, int y) {
00193 return ((getGridX() == x) && (getGridY() == y));
00194 }
00195
00200 public boolean isPlayerControlled() {
00201 return playerControlled;
00202 }
00203
00208 public void setPlayerControlled(boolean value) {
00209 playerControlled = value;
00210 }
00211 }
00212