

VERSION: v1.2.8
AUTHOR: Patrick A. Parsch
TESTED BY: E. Hertel
CONTACT: patrick.alex.parsch@gmail.com
____________________________________________________________________________________________________________________________________________________________________

Tasten(-kombinationen):

F3:
    Blendet Informationen ein:
    
    - Der Ursprung des Koordinatensystems wird mit einem kleinen, cyanen Kreis makiert. (Origin)
    - "Key-Code" gibt die Nummer der Taste an, die momentan gedrueckt und gehalten wird.
    - "FPS" gibt an, wie oft die Grafik pro Sekunde neu gezeichnet wird.
    - Unter dem Cursor werden die Koordinaten des Kursors angezeigt.
    - Alle Standardformen, deren Groesze von der linken, oberen Ecke eines gedachten Rechtecks um diese herum gemessen wird,
      werden eingerahmt und die linke, obere Ecke mit einem Kreis markiert.
    - Es werden je 2 Graphen angezeigt, die in Millisekunden anzeigen, wie lange es dauert, die Grafik zu updaten bzw wie lange es dauert,
        die Update Methode der Spiel Klasse einmal auszufuehren (Mit Strg + G kann zwischen den den Grafen gewechselt werden). Der graue
        Graf zeigt die absolute Dauer an. Der hellweiszcyane Graf, der wichtige von beiden, schlaegt aus, sobal der Prozess durch zu lange
        Ausfuehrzeiten verlangsamt wird (sobald der graue Graf eine graue Linie ueberschreitet).
        
F4:
    Dasselbe, wie F3, nur ohne Grafen (gut fuer langsamere PC Systeme).
      
Esc:
    Schlieszt die Java VM.
    
Konsole:
    Die Engine enthaelt zusaetzlich eine eigene Konsole. Mit Engine.print(text) kann
    der Konsole der auszugebende Text/Wert uebergeben werden. In dieser Konsole werden
    maximal 10 Texte gleichzeitig angezeigt, welche nach einiger Zeit langsam verschwinden.
    Mit Engine.print(text, color) kann ein zusaetzlicher String uebergeben werden, in welcher
    Farbe die Ausgabe erscheinen soll.
    
Strg + T:
    Blendet alle Ausgaben der eigenen Konsole wieder ein. Mit dem Mausrad kann dann gescrollt werden.

Strg + C:
    Die Engine leitet zusaetzlich die Standardausgabe von Java um und zeigt sie im Panel an. Da diese nicht von
    selbst verschwindet (was bei wichtigen Fehlermeldungen bloed waere), kann sie mit dieser Tastenkombination geloescht werden. Wie ueblich kann die Farbe nicht
    selbst gewaehlt werden - die Java Konsole dient auch ueberwiegend der Fehlersuche. Mit dem Mausrad kann wieder
    gescrollt werden.
    
Strg + G:
    Schaltet zwischen den einzelnen Zeit Grafen einzelner Threads/der Grafik um (siehe erklaerung der F3 Taste, letzer Unterpunkt).
____________________________________________________________________________________________________________________________________________________________________

Liste aller integrierten Farb-Strings (in der /engine/.properties/colors.properties Datei koennen weitere Farben definiert werden):
    
    "weisz"
    "weiszRot"
    "rot"
    "weiszOrange"
    "orange"
    "weiszGelb"
    "gelb"
    "weiszGruen"
    "gruen"
    "weiszCyan"
    "cyan"
    "weiszBlau"
    "blau"
    "weiszViolet"
    "violet"
    "weiszMagenta"
    "magenta"
    "grau"
    
    "hellWeiszRot"
    "hellRot"
    "hellWeiszGelb"
    "hellGelb"
    "hellWeiszOrange"
    "hellOrange"
    "hellWeiszGruen"
    "hellGruen"
    "hellWeiszCyan"
    "hellCyan"
    "hellWeiszBlau"
    "hellBlau"
    "hellWeiszViolet"
    "hellViolet"
    "hellWeiszMagenta"
    "hellMagenta"
    "hellGrau"
    
    "dunkelWeiszRot"
    "dunkelRot"
    "dunkelWeiszGelb"
    "dunkelGelb"
    "dunkelWeiszOrange"
    "dunkelOrange"
    "dunkelWeiszGruen"
    "dunkelGruen"
    "dunkelWeiszCyan"
    "dunkelCyan"
    "dunkelWeiszBlau"
    "dunkelBlau"
    "dunkelWeiszViolet"
    "dunkelViolet"
    "dunkelWeiszMagenta"
    "dunkelMagenta"
    "dunkelGrau"
    
    alles andere ergibt Schwarz.
____________________________________________________________________________________________________________________________________________________________________
    
Fenster/Panel Einstellungen und Parameter (Anstatt die Methoden der Engine zu verwenden, kann man viele Einstellungen auch in der 
/engine/.properties/settings.properties Datei vornehmen):
    
    - Engine.panel.setOrigin(xpos, ypos):
            Uebergabeparameter: int
            Rueckgabewert: void
            Beschreibung: Setzt den Ursprung des Koordinatensystems relativ zu dem eigentlichen
                Ursprung (linke, obere Ecke des Panels).
                
    - Engine.panel.setOrigin(point):
            Uebergabeparameter: Point Objekt
            Rueckgabewert: void
            Beschreibung: Setzt den Ursprung des Koordinatensystems relativ zu dem eigentlichen
                Ursprung (linke, obere Ecke des Panels).
                
    - Engine.panel.setLocation(xpos, ypos):
            Uebergabeparameter: int
            Rueckgabewert: void
            Beschreibung: Setzt die Position des Fensters auf dem Bildschirm.
            
    - Engine.panel.setLocation(point):
            Uebergabeparameter: Point Objekt
            Rueckgabewert: void
            Beschreibung: Setzt die Position des Fensters auf dem Bildschirm.
            
    - Engine.panel.setRotation(grad):
            Uebergabeparameter: int
            Rueckgabewert: void
            Beschreibung: Rotiert das ganze Panel im Uhrzeigersinn in Grad um den Ursprung.
            
    - Engine.panel.setSize(breite, hoehe):
            Uebergabeparameter: int
            Rueckgabewert: void
            Beschreibung: Setzt die Groesze des Panels.
            
    - Engine.panel.setSize(dimension):
            Uebergabeparameter: Dimension Objekt
            Rueckgabewert: void
            Beschreibung: Setzt die Groesze des Panels.
            
    - Engine.panel.setResizable(resizable):
            Uebergabeparameter: boolean
            Rueckgabewert: void
            Beschreibung: Legt Fest, ob das Fenster mit der Maus vergroeszert/
                verkleinert werden kann. Standard ist false.
                
    - Engine.panel.setBackgroundColor(color):
            Uebergabeparameter: String Objekt
            Rueckgabewert: void
            Beschreibung: Setzt die Hintergrundfarbe des Panels.
            
    - Engine.panel.setBackgroundColor(color):
            Uebergabeparameter: Color Objekt
            Rueckgabewert: void
            Beschreibung: Setzt die Hintergrundfarbe des Panels.
            
    - Engine.panel.getOrigin():
            Uebergabeparameter: keiner
            Rueckgabewert: Point Objekt
            Beschreibung: Gibt die Koordinaten des Ursprungs des Koordinatensystems relativ zu
                dem eigentlichen Ursprung (linke, obere Ecke des Panels) zurueck.
                
    - Engine.panel.getRotation():
            Uebergabeparameter: keiner
            Rueckgabewert: int
            Beschreibung: Gibt die Rotation des Panels in Grad zurueck.
            
    - Engine.panel.getWidth():
            Uebergabeparameter: keiner
            Rueckgabewert: int
            Beschreibung: Gibt die Breite des Panels zurueck.
            
    - Engine.panel.getHeight():
            Uebergabeparameter: keiner
            Rueckgabewert: int
            Beschreibung: Gibt die Hoehe des Panels zurueck.
            
    - Engine.panel.getSize():
            Uebergabeparameter: keiner
            Rueckgabewert: Dimension Objekt
            Beschreibung: Gibt die Groesze des Panels zurueck.
            
    - Engine.panel.getLocation():
            Uebergabeparameter: keiner
            Rueckgabewert: Point Objekt
            Beschreibung: Gibt die Position des Fensters auf dem Bilschirm zurueck.
____________________________________________________________________________________________________________________________________________________________________
            
Thread-Pool Methoden:
    
    - Engine.exec.pause():
            Uebergabeparameter: keiner
            Rueckgabewert: void
            Beschreibung: Beendet alle momentan im Executor ausgeführten Threads und 
                zwischenspeichert ihre Referenzen (Objekte des Datentypes Spiel waeren davon betroffen).
                
    - Engine.exec.resume():
            Uebergabeparameter: keiner
            Rueckgabewert: void
            Beschreibung: Startet die zwischengespeicherten Threads neu.
            
    - Engine.exec.stop():
            Uebergabeparameter: keiner
            Rueckgabewert: void
            Beschreibung: Beendet alle momentan im Executor ausgeführten Threads. Sie können,
                anders, als bei pause(), mit resume() nicht wieder neu gestartet werden. Da sich alle
                Objekte des Datentyps Update (somit auch Objekte der Spiel Klasse) mit Aufruf ihrer
                start() Methode selbst anmelden, kann man sie somit neu starten. Alternativ kann man sie direkt
                der run(update) Methode uebergeben.
                
    - Engine.exec.run(update)
            Uebergabewert: Update Objekt
            Rueckgabewert: void
            Beschreibung: Meldet ein Obje   kt des Datentyps Update bei dem Executor an, um es auszufuehren.
                Ist der Executor inaktiv, wird er gestartet.
____________________________________________________________________________________________________________________________________________________________________
                
FileReader Methoden:

    -Engine.reader.exists(pfad)
            Uebergabewert: String Objekt
            Rueckgabewert: boolean
            Beschreibung: Prueft, ob eine Datei an dem angegebenen Pfad existiert.
                Der Pfad ist der Pfad zu der Datei innerhalb des /engine/files Ordners (z.B. "/datei.txt" oder "/unterordner/datei.txt" usw.).

____________________________________________________________________________________________________________________________________________________________________

FileWriter Methoden:
            
    - Engine.writer.createFile(pfad)
            Uebergabewert: String Objekt
            Rueckgabewert: void
            Beschreibung: Erstellt eine neue, leere Datei an dem angegebenen Pfad. 
                Der Pfad ist der Pfad zu der Datei innerhalb des /engine/files Ordners (z.B. "/datei.txt" oder "/unterordner/datei.txt" usw.).
            
    - Engine.writer.deleteFile(pfad)
            Uebergabewert: String Objekt
            Rueckgabewert: void
            Beschreibung: Loescht die Datei an dem angegebenen Pfad. 
                Der Pfad ist der Pfad zu der Datei innerhalb des /engine/files Ordners (z.B. "/datei.txt" oder "/unterordner/datei.txt" usw.).
____________________________________________________________________________________________________________________________________________________________________

Fuer weitere statische Methoden und Informationen ueber die Klassen der Engine: siehe die Java
Dokumentation (/engine/doc/allclasses-frame.html).