|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.jzuul.engine.GameMap
Diese Klasse bildet die Karte (das Raumgeflecht in dem sich der Spieler bewegen kann) in einem Spiel ab. Da durch die Struktur der Spieldateien es zulässt, das Wege ohne Room Objekte angelegt werden werden die Wege in einer Queue ähnlichen Struktur gehalten und erst zum schluss angelegt.
| Nested Class Summary | |
private class |
GameMap.QueueItem
Diese Klasse implementiert einen in der Queue gehaltenen Weg. |
| Field Summary | |
protected Map |
connectQueue
Die Queue der Wege die noch angelegt werden müssen. |
protected Map |
gameMap
Der interne speicher für die Karte, enthällt Raumname auf Room Objekt mappings. |
protected String |
name
Der Name dieser Karte |
protected List |
npcList
Die Liste der NPCs die sich in den Räumen aufhalten. |
protected String |
startRoom
Der Name des Startraumes für diese Karte |
| Constructor Summary | |
GameMap(String name)
Erstell ein neues GameMap Objekt |
|
| Method Summary | |
void |
addInvToRoom(String raum,
Inventory inv)
Weist einem Raum eine Inventory Objekt zu. |
void |
addItemToRoom(String name,
GameObject object)
Fügt ein GameObject Objekt in einen Raum ein. |
void |
addItemToRoom(String name,
String itemName)
Deprecated. Sollte nicht mehr funktionieren, da die Methode versucht das Objekt zu instanzieeren |
void |
addRoom(Room raum)
Fügt ein neues Room Objekt der Karte hinzu. |
void |
addRoom(Room raum,
int direction,
String ofRoom)
Fügt einen Room Objekt und einen Weg der Karte hinzu |
void |
addRoom(String name,
String description)
Fügt einen Raum der Karte hinzu. |
void |
addRoom(String name,
String description,
int direction,
String ofRoom)
Fügt einen neuen Raum und einen Weg in die Karte ein. |
void |
addRoom(String name,
String description,
String typeOfRoom)
Fügt einen neuen typisierten Raum zu der Karte hinzu. |
void |
addTransRoom(String name,
String[] preconditions,
boolean isFinal,
String target)
Fügt einen TransitionRoom in die Karte ein. |
protected void |
connect(String name,
int direction,
String ofName)
Erstellt eine bidirektionale Verbindung zwischen zwei Räumen. |
private boolean |
connectionExists(String room1,
String room2)
Überpüft ob schon ein Weg zwischen Raum 1 und Raum 2 in der Queue existiert. |
void |
enqueueWay(String name,
int direction,
String ofRoomName)
Fügt einen Weg in die Wegequeue ein falls dieser noch nicht existiert. |
String |
getName()
Zugriff auf den Namen der Karte. |
List |
getNpcList()
Gibt eine Liste der Character Objekte die sich in den Räumen befinden zurück |
Room |
getRandomRoom()
Gibt einen beliebigen Raum aus der Karte zurück |
Room |
getRoom(String name)
Zugriff auf einzelne Room Objekte |
String |
getStartRoom()
Zugriff auf den Namen des Startraumes der Karte |
Room |
getStartRoomObj()
Zugriff auf das Room Objekt des Startraumes |
void |
notifyRooms(int eventId)
Teilt allen Räumen in der Karte ein Event mit |
void |
processQueue()
Macht einen Verbindungsdurchlauf. |
protected void |
processQueue(String name,
List seen)
Erstellt alle Verbindungen für den gegebenen Raum. |
void |
setRoomEventHandler(String room,
String eventName,
EventHandler eventHandler)
Setzt einem Raum einen EventHandler |
void |
setRoomImageStream(String roomName,
InputStream imageStream)
Weist einem Raum einen auf ein Bild verweisenden Stream zu |
void |
setStartRoom(String name)
Setzt den Startraum für diese Karte |
void |
setWayDescription(String name,
int direction,
String description)
Fügt eine Beschreibung für eine Himmelsrichtung einem Raum hinzu. |
void |
setWayDescription(String name,
String north,
String east,
String south,
String west)
Deprecated. Benutzen wir das irgendwo? |
Element |
toElement()
Wandelt die Karte in ein JDOM XML Element um. |
boolean |
verifyMap()
Versucht einen kompletten Durchlauf durch die Karte und überpüft ob alle Räume erreicht werden können. |
void |
verifyMap(Room raum,
List seen)
Testet übergänge von einem Raum in andere. |
private boolean |
wayExists(String room1,
String room2)
Überprüft bidirektional ob schon ein Weg zwischen beiden Räumen in der Queue existiert. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected Map gameMap
protected String startRoom
protected Map connectQueue
protected List npcList
protected String name
| Constructor Detail |
public GameMap(String name)
name - der Name dieser Karte| Method Detail |
public void addRoom(String name,
String description,
int direction,
String ofRoom)
name - der Name des neuen Raumesdescription - die Beschreibung des neuen Raumesdirection - ein Richtung in der ein anderer Raum liegtofRoom - der Name des Raumes der in dieser Richtung liegtDirectionspublic void addRoom(Room raum)
raum - ein Room Objekt das der Karte hinzugefügt werden soll.
public void addRoom(Room raum,
int direction,
String ofRoom)
raum - das Room Objekt das hinzugefügt werden solldirection - die Richtung in der ein anderer Raum liegtofRoom - der Name des Raumes der in dieser Richtung liegtDirections
public void addRoom(String name,
String description)
name - der Name des neuen Raumsdescription - die Beschreibung des neuen Raums
public void addRoom(String name,
String description,
String typeOfRoom)
name - der Name des neuen Raumesdescription - die Beschreibung des neuen RaumestypeOfRoom - der Typ (die Klasse) des neuen Raumesorg.jzuul.engine.roomspublic Room getRoom(String name)
name - der Name eines Raumes
private boolean connectionExists(String room1,
String room2)
room1 - der Name eines Raumesroom2 - der Name eines Raumes
private boolean wayExists(String room1,
String room2)
room1 - der Name eines Raumesroom2 - der Name eines Raumes
public void enqueueWay(String name,
int direction,
String ofRoomName)
name - der Name des Ausgangsraumesdirection - die Richtung in der der Weg liegtofRoomName - der Name des Zielraumes.
protected void processQueue(String name,
List seen)
name - der Name des Raumes bei dem begonnen werden sollseen - die Liste der noch nicht besuchten Räumepublic void processQueue()
protected void connect(String name,
int direction,
String ofName)
name - der Name des ersten Raumesdirection - die Richtung in der der Weg liegtofName - der Name des zweiten RaumesDirections
public void addItemToRoom(String name,
GameObject object)
throws NoSuchRoomException
name - der Name des Raumesobject - das GameObject Objekt das in den Raum eingefügt werden soll.
NoSuchRoomException
public void addItemToRoom(String name,
String itemName)
throws NoSuchRoomException
name - der Name des RaumesitemName - der Name des Item Objektes
NoSuchRoomException
public void setWayDescription(String name,
int direction,
String description)
name - der Name des Raumesdirection - die Himmelrichtungdescription - die BeschreibungDirections
public void setWayDescription(String name,
String north,
String east,
String south,
String west)
name - der Name des Raumesnorth - die Beschreibung für Directions.NORTHeast - die Beschreibung für Directions.EASTsouth - die Beschreibung für Directions.SOUTHwest - die Beschreibung für Directions.WEST
public void verifyMap(Room raum,
List seen)
raum - der Raum von dem aus die Übergange getestet werden sollenseen - eine Liste von noch nicht besuchten Räumen.
public boolean verifyMap()
throws NoSuchRoomException,
ConnectAllRoomsFailed
NoSuchRoomException - falls ein Raum besucht werden soll der nicht existiert
ConnectAllRoomsFailedpublic void setStartRoom(String name)
name - der Name des Startraumespublic Element toElement()
public Room getRandomRoom()
public void addInvToRoom(String raum,
Inventory inv)
throws NoSuchRoomException
raum - der Name des Raumesinv - das Inventory Objekt das dem Raum gesetzt werden soll
NoSuchRoomExceptionpublic List getNpcList()
public void addTransRoom(String name,
String[] preconditions,
boolean isFinal,
String target)
TransitionRoom in die Karte ein.
name - der Name des Raumespreconditions - die Namen von GameObject Objekten die Vorbedingungen für einen Übergang sindisFinal - ist das das Ende des Spieles?target - der Name der Zielkartepublic String getName()
public String getStartRoom()
public Room getStartRoomObj()
public void notifyRooms(int eventId)
eventId - eine Id eines EventsEvent
public void setRoomEventHandler(String room,
String eventName,
EventHandler eventHandler)
room - der Name des Raumes für den EventHandlereventName - der Name des EventseventHandler - das EventHandler Objekt das das Event behandeltEvent
public void setRoomImageStream(String roomName,
InputStream imageStream)
roomName - der Name des Raumes dem der Stream zugewiesen werden sollimageStream - der Stream der auf das Bild verweist.
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||