de.tud.dvs1.mmpgp2p
Class GameWorld

java.lang.Object
  extended by de.tud.dvs1.mmpgp2p.GameWorld
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
TestGameWorld

public class GameWorld
extends java.lang.Object
implements java.io.Serializable

Diese Klasse dient zur Verwaltung der Spielewelt auf hoher Ebene. Es werden Methoden bereitgestellt, auf die Objekte zuzugreifen und Daten zu sichern oder wiederherzustellen. Ein RegionController verwaltet den Teil seiner Welt über diese Klasse.


 ######################################    ^  
 #                  #                 #    |  
 #                  #                 #    |  
 #                  #                 #    |  
 #                  #                 #    |  
 #                  #                 #    |  
 #                  #                 #    |  
 #                  #                 #    |  
 #                  #                 #   toty
 #                  #                 #    |
 ###################################### ^  |
 #              #                     # |  |
 #              #                     # |  |
 #    Z ist die #   verwaltete        # |  |
 # linke untere #      Region         # dy |
 # Ecke (x,y)   #                     # |  |
 #           `  #                     # |  | 
 #             `#                     # |  |
 ###############Z###################### v  v

                <----------dx--------->
 <-----------totx--------------------->

 
ACHTUNG: die Grenze rechts bzw. oben ist genau NICHT mehr innerhalb der Region, sondern gehört zur nächsten

See Also:
Serialized Form

Field Summary
protected  int dx
           
protected  int dy
           
protected  int maxID
           
protected  int nextID
           
protected  java.util.Hashtable objects
           
protected  int tilesize
           
protected  int totx
           
protected  int toty
           
protected  int x
           
protected  int y
           
 
Constructor Summary
GameWorld()
           
GameWorld(java.util.Properties prop)
          Construktor
 
Method Summary
 void add(GameObject n)
          Ein Objekt in die Welt einfügen.
 java.util.Enumeration elements()
          Die Objekte dieser Welt als Enumeration zurückgeben.
protected  void forceAdd(GameObject n)
           
 GameObject getByID(int id)
           
 GameObject getByID(java.lang.Integer id)
          Objekt anhand der ID holen (schnellste Methode)
 GameObject getByKoord(int x, int y)
           
 GameObject getByName(java.lang.String pattern)
           
 int getDX()
           
 int getDY()
           
 GameWorldInfo getGameWorldInfo()
           
 int getNextID()
          ID für ein neues Objekt holen
 int getTilesize()
           
 int getTotX()
           
 int getTotY()
           
 int getX()
           
 int getY()
           
 boolean goalIsIn(GameObject n)
           
 boolean isIn(GameObject n)
           
 GameObject remove(int id)
           
 GameObject remove(java.lang.Integer id)
          Objekt aus der Welt entfernen.
 void saveToFile(java.lang.String filename)
          Methode zum Speichern der Welt-Struktur in einer Datei
 int size()
          Anzahl der Objekte in der Welt
 GameObject[] toArray()
           
 Avatar[] toAvatarArray()
           
 RegionInfo toRegionInfo()
          Umwalden in RegionInfo
 Avatar[] toSortedAvatarArray(char o)
          Sortiere die Avatare nach Orientierung o (x oder y)
 java.lang.String toString()
           
 java.lang.String toString(boolean details)
          Die Welt als String repräsentieren.
 void update(GameObject n)
          Objekt überschreiben.
 void updateOrAdd(GameObject n)
          Ein Objekt hinzufügen, wobei es ein bereits existierendes Objekt mit derselben ID ersetzt.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

x

protected int x

y

protected int y

dx

protected int dx

dy

protected int dy

totx

protected int totx

toty

protected int toty

tilesize

protected int tilesize

nextID

protected int nextID

maxID

protected int maxID

objects

protected java.util.Hashtable objects
Constructor Detail

GameWorld

public GameWorld(java.util.Properties prop)
Construktor

Parameters:
prop - Eine Reihe von Einstellungen, die zur Initialisierung der Welt benutzt werden.

GameWorld

public GameWorld()
Method Detail

getX

public int getX()

getY

public int getY()

getDX

public int getDX()

getDY

public int getDY()

getTotX

public int getTotX()

getTotY

public int getTotY()

getTilesize

public int getTilesize()

getGameWorldInfo

public GameWorldInfo getGameWorldInfo()

isIn

public boolean isIn(GameObject n)

goalIsIn

public boolean goalIsIn(GameObject n)

getByID

public GameObject getByID(java.lang.Integer id)
Objekt anhand der ID holen (schnellste Methode)


getByID

public GameObject getByID(int id)

getByKoord

public GameObject getByKoord(int x,
                             int y)

getByName

public GameObject getByName(java.lang.String pattern)

remove

public GameObject remove(java.lang.Integer id)
                  throws MmpgP2PException
Objekt aus der Welt entfernen. Wirft eine Exception, falls das Objekt in der Welt nicht vorhanden war.

Throws:
MmpgP2PException

remove

public GameObject remove(int id)
                  throws MmpgP2PException
Throws:
MmpgP2PException

update

public void update(GameObject n)
            throws MmpgP2PException
Objekt überschreiben. Wirft eine Exception, falls das Objekt in der Welt nicht vorhanden war.

Parameters:
n - Das Objekt, dessen Werte aktualisiert werden sollen
Throws:
MmpgP2PException

updateOrAdd

public void updateOrAdd(GameObject n)
                 throws MmpgP2PException
Ein Objekt hinzufügen, wobei es ein bereits existierendes Objekt mit derselben ID ersetzt.

Throws:
MmpgP2PException

forceAdd

protected void forceAdd(GameObject n)

add

public void add(GameObject n)
         throws MmpgP2PException
Ein Objekt in die Welt einfügen. Das neue Objekt muß eine eindeutige ID besitzen.

Parameters:
n - Das Objekt, das eingefügt werden soll
Throws:
MmpgP2PException

size

public int size()
Anzahl der Objekte in der Welt


elements

public java.util.Enumeration elements()
Die Objekte dieser Welt als Enumeration zurückgeben.


toArray

public GameObject[] toArray()

toSortedAvatarArray

public Avatar[] toSortedAvatarArray(char o)
Sortiere die Avatare nach Orientierung o (x oder y)


toAvatarArray

public Avatar[] toAvatarArray()

getNextID

public int getNextID()
              throws MmpgP2PException
ID für ein neues Objekt holen

Returns:
Die nächste freie, global eindeutige ID
Throws:
MmpgP2PException

saveToFile

public void saveToFile(java.lang.String filename)
Methode zum Speichern der Welt-Struktur in einer Datei


toRegionInfo

public RegionInfo toRegionInfo()
Umwalden in RegionInfo


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
See Also:
toString(boolean details)

toString

public java.lang.String toString(boolean details)
Die Welt als String repräsentieren.

Parameters:
details - Falls true, dann werden die Objekte ebenfalls ausgegeben
Returns:
Einen String mit den Daten dieses Weltausschnitts