org.jzuul.engine
Class GameFileReader

java.lang.Object
  extended byorg.jzuul.engine.GameFileReader

public class GameFileReader
extends Object

Diese Klasse benutzt JDOM um eine JZuul Gamefile zu parsen.

Version:
$Revision: 1.30 $

Field Summary
private  Map characters
          Die Character Objekte die aus der Datei geladen werden
private  Map dialogs
          Die Dialog die aus der Datei geladen werden
private  String gameDescription
          Enthällt das description Feld aus dem Toplevel des gamefiles
private  List history
          Die aus der Datei geladene Befehlshistorie
private  Map items
          Die Item Objekte die aus der Datei geladen werden
private  GameMap map
          Die aus der Datei geladene Karte
private  Stack objCheckStack
          Ein hilfs-Stack der Benutzt wird um zu Überprüfen ob alle in der Datei erwähnten GameObjects auch existieren
private  Player player
          Der aus der Datei geladene Spieler
private static int PLAYER_INVENTORY_SIZE
          Die vordefinierte Größe des Inventars eines Spielers (10)
private static int ROOM_INVENTORY_SIZE
          Die vordefinierte Größe eines Raum Inventars
private  Element root
           
 
Constructor Summary
GameFileReader()
           
GameFileReader(InputStream resource)
          Erstell einen neues GameFileReader Objekt das auf jeden Fall den DTD File und die Karte "default" lädt.
GameFileReader(InputStream resource, boolean loaddtd)
          Erstellt ein neues GameFileReader Objekt das die Karte "default" lädt
GameFileReader(InputStream resource, String mapName, boolean loaddtd)
          Erstell ein neues GameFileReader Objekt
 
Method Summary
private  Map characterHandler(Element characters)
          Lädt die Character Objekte aus der Datei
 String checkLater(String objName)
          Enqueued den Namen eines Objektes um später zu überprüfen ob dieses auch erstellt wurde
 void checkObjects()
          Überprüft ob für alle GameObject Namen in objCheckStack auch ein Objekt existiert
private  EventHandler createEventHandlerFrom(Element actionsElement)
          Wird verwendet um aus einem Teil der Datei einen EventHandler zu erzeugen.
protected  Inventory createInventory(Element contentsElement, int size, Room currentRoom)
          Wird benutzt um ein Inventar aus einem Block zu erstellen
private  TargetList createTargetList(List targetElements)
          Erstellt ein TargetList Objekt aus einer Elementliste in der Datei
 TargetObject createTargetObject(Element targetElement)
          Erstell ein TargetObject Objekt aus einem Element in der Liste
private  String descriptionHandler(Element root)
          Holt die Spielbeschreibung aus dem Gamefile
private  Map dialogHandler(Element root)
          Lädt die Dialoge aus der Datei
 String getDescription()
          Zugriff auf die Spielbeschreibung
 List getHistory()
          Zugriff auf die geladene History
 GameMap getMap(String mapname)
          Zugriff auf das geladene Kartenobjekt
 Map getObjectPool()
          Zugriff auf die Liste aller GameObject Objekte in der Datei
 Player getPlayer()
          Zugriff auf den geladenen Spieler
protected  List historyHandler(Element root)
          Wird benutzt um den history Teil der Datei zu laden
private  Map itemsHandler(Element items)
          Wird benutzt um den Teil einer Datei zu verarbeiten
protected  GameMap mapHandler(Element root, String name)
          Wird benutzt um den Kartenteil der Datei zu parsen.
 void parseTree(Element e)
           
protected  Player playerHandler(Element root)
          Wird benutzt um den Player aus der Datei zu laden
 boolean readFromSavegame(String filename, boolean loaddtd)
          Läd ein Savegame Diese Methode lädt zusätzlich zu dem schon gelesenen Gamefile eine weiter Datei und überschreibt die Karte und den Spieler mit dem in der Datei vorhandenen.
private  void setEventListenerEvents(EventListener obj, List events)
          Wird verwendet um einem EventListener Objekt einen EventHandler zuzuweisen
private  void setGameObjectProperties(GameObject obj, List properties)
          Wird benutzt um eine Liste von Eigenschafen in einem GameObject Object zu ändern
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ROOM_INVENTORY_SIZE

private static final int ROOM_INVENTORY_SIZE
Die vordefinierte Größe eines Raum Inventars


PLAYER_INVENTORY_SIZE

private static final int PLAYER_INVENTORY_SIZE
Die vordefinierte Größe des Inventars eines Spielers (10)

See Also:
Constant Field Values

map

private GameMap map
Die aus der Datei geladene Karte


player

private Player player
Der aus der Datei geladene Spieler


history

private List history
Die aus der Datei geladene Befehlshistorie


dialogs

private Map dialogs
Die Dialog die aus der Datei geladen werden


characters

private Map characters
Die Character Objekte die aus der Datei geladen werden


items

private Map items
Die Item Objekte die aus der Datei geladen werden


objCheckStack

private Stack objCheckStack
Ein hilfs-Stack der Benutzt wird um zu Überprüfen ob alle in der Datei erwähnten GameObjects auch existieren


gameDescription

private String gameDescription
Enthällt das description Feld aus dem Toplevel des gamefiles


root

private Element root
Constructor Detail

GameFileReader

public GameFileReader()

GameFileReader

public GameFileReader(InputStream resource)
               throws IOException,
                      JDOMException
Erstell einen neues GameFileReader Objekt das auf jeden Fall den DTD File und die Karte "default" lädt.

Parameters:
resource - der Stream aus dem gelesen werden soll
Throws:
IOException - bei IO Fehlern
JDOMException - bei XML Fehlern

GameFileReader

public GameFileReader(InputStream resource,
                      boolean loaddtd)
               throws IOException,
                      JDOMException
Erstellt ein neues GameFileReader Objekt das die Karte "default" lädt

Parameters:
resource - der Stream der die XML Datei enthällt
loaddtd - Soll der DTD File geladen werden?
Throws:
IOException - Bei IO Fehlern
JDOMException - Bei XML Fehlern

GameFileReader

public GameFileReader(InputStream resource,
                      String mapName,
                      boolean loaddtd)
               throws IOException,
                      JDOMException
Erstell ein neues GameFileReader Objekt

Parameters:
resource - der Stream der die XML Datei enthällt
loaddtd - Soll der DTD File geladen werden
Throws:
IOException - Bei IO Fehlern
JDOMException - Bei XML Fehlern
Method Detail

parseTree

public void parseTree(Element e)

mapHandler

protected GameMap mapHandler(Element root,
                             String name)
                      throws NoSuchRoomException,
                             ConnectAllRoomsFailed
Wird benutzt um den Kartenteil der Datei zu parsen.

Parameters:
root - das Element aus dem Gamefile
name - der Name der Karte die geladen werden soll
Returns:
ein verifizierte GameMap bei Erfolg, eine leere GameMap bei fehlern
Throws:
NoSuchRoomException
ConnectAllRoomsFailed

historyHandler

protected List historyHandler(Element root)
Wird benutzt um den history Teil der Datei zu laden

Parameters:
root - das Element
Returns:
eine Liste von n (0 <=n) Befehlen bei Erfolg, null bei fehlern

playerHandler

protected Player playerHandler(Element root)
Wird benutzt um den Player aus der Datei zu laden

Parameters:
root - das Element
Returns:
ein Spielerobjekt

createInventory

protected Inventory createInventory(Element contentsElement,
                                    int size,
                                    Room currentRoom)
Wird benutzt um ein Inventar aus einem Block zu erstellen

Parameters:
contentsElement - der Block
size - die Größe des Inventars
currentRoom - der aktuelle Raum, entweder ein Raum falls ein Rauminventar aufgebaut wird oder der Raum des Spielers
Returns:
ein Inventar der Größe size mit allen in dem Block beschreibenen Objekten

getHistory

public List getHistory()
Zugriff auf die geladene History

Returns:
eine Liste von Strings (Befehle)

getMap

public GameMap getMap(String mapname)
               throws ConnectAllRoomsFailed,
                      NoSuchRoomException
Zugriff auf das geladene Kartenobjekt

Returns:
ein GameMap Objekt
Throws:
ConnectAllRoomsFailed
NoSuchRoomException

getPlayer

public Player getPlayer()
Zugriff auf den geladenen Spieler

Returns:
ein Player Objekt

dialogHandler

private Map dialogHandler(Element root)
Lädt die Dialoge aus der Datei

Parameters:
root - das Element
Returns:
eine Map die Character Objekt Namen auf Dialog Objekte abbildet

characterHandler

private Map characterHandler(Element characters)
Lädt die Character Objekte aus der Datei

Parameters:
characters - das Element einer Datei
Returns:
eine Map die Character Objekt Namen auf Character Objekte abbildet

itemsHandler

private Map itemsHandler(Element items)
Wird benutzt um den Teil einer Datei zu verarbeiten

Parameters:
items - das Element einer Datei
Returns:
eine Map die Item Objekt Namen auf Item Objekte abbildet

setGameObjectProperties

private void setGameObjectProperties(GameObject obj,
                                     List properties)
Wird benutzt um eine Liste von Eigenschafen in einem GameObject Object zu ändern

Parameters:
obj - das GameObject Objekt dessen eigenschaften geändert werden sollen
properties - die Elemente aus der XML Datei

createEventHandlerFrom

private EventHandler createEventHandlerFrom(Element actionsElement)
Wird verwendet um aus einem Teil der Datei einen EventHandler zu erzeugen.

Parameters:
actionsElement - Ein Element aus der XML Datei
Returns:
einen EventHandler
See Also:
EventHandler

setEventListenerEvents

private void setEventListenerEvents(EventListener obj,
                                    List events)
Wird verwendet um einem EventListener Objekt einen EventHandler zuzuweisen

Parameters:
obj - das EventListener Objekt dem der Handler zugewiesen werden soll
events - Eine Liste von Elementen aus der XML Datei

getObjectPool

public Map getObjectPool()
Zugriff auf die Liste aller GameObject Objekte in der Datei

Returns:
eine Liste von GameObject Objekten die aus der Datei gelesen wurden

checkLater

public String checkLater(String objName)
Enqueued den Namen eines Objektes um später zu überprüfen ob dieses auch erstellt wurde

Parameters:
objName - der Name eines Objekte
Returns:
das gleiche wie objName um einen einfachen wrapper zu haben

checkObjects

public void checkObjects()
Überprüft ob für alle GameObject Namen in objCheckStack auch ein Objekt existiert

Throws:
NoSuchGameObjectException - falls ein Name zu einem nicht existierenden Objekt in der Liste ist

readFromSavegame

public boolean readFromSavegame(String filename,
                                boolean loaddtd)
Läd ein Savegame Diese Methode lädt zusätzlich zu dem schon gelesenen Gamefile eine weiter Datei und überschreibt die Karte und den Spieler mit dem in der Datei vorhandenen. Da in einem Savegame nicht die ganzen Objekte und ihre Eigenschaften gespeichert werden ist dies notwendig, damit nicht nicht existierende Objekte benutzt werden.

Parameters:
filename - der Dateiname des Savegames
loaddtd - soll der DTD File geladen werden?
Returns:
true on success, false on failure

createTargetList

private TargetList createTargetList(List targetElements)
Erstellt ein TargetList Objekt aus einer Elementliste in der Datei

Parameters:
targetElements - eine Liste von Elementen aus der Datei
Returns:
ein TargetList Objekt das die TargetObject Objekte enthällt die in der Liste definiert sind

createTargetObject

public TargetObject createTargetObject(Element targetElement)
Erstell ein TargetObject Objekt aus einem Element in der Liste

Parameters:
targetElement - ein Element
Returns:
das daraus erstellte TargetObject Objekt

descriptionHandler

private String descriptionHandler(Element root)
Holt die Spielbeschreibung aus dem Gamefile

Parameters:
root - ein Element aus dem Gamefile
Returns:
den Inhalt des Elements

getDescription

public String getDescription()
Zugriff auf die Spielbeschreibung

Returns:
die Spielbeschreibung aus dem Gamefile


Copyright © 2004 JZuul.org All Rights Reserved.
This documentation may be distributed and/or modified under the terms of the FDL