diff --git a/Dokumente/BattleshipDiagramm.drawio b/Dokumente/BattleshipDiagramm.drawio
new file mode 100644
index 00000000..69d42cff
--- /dev/null
+++ b/Dokumente/BattleshipDiagramm.drawio
@@ -0,0 +1,1084 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/BackgroundMusic.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/BackgroundMusic.java
index 69a30d83..e1a95c65 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/BackgroundMusic.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/BackgroundMusic.java
@@ -12,6 +12,9 @@
import java.lang.System.Logger.Level;
import java.util.prefs.Preferences;
+/**
+ * Class to play Background music in game
+ */
public class BackgroundMusic implements GameEventListener {
private static final String VOLUME_PREF = "volume";
private static final String MUSIC_ENABLED_PREF = "musicEnabled";
@@ -32,7 +35,7 @@ public class BackgroundMusic implements GameEventListener {
private Application app;
/**
- * Initializes and controls the BackgroundMusic
+ * Constructor for BackgroundMusic class
*
* @param app The main Application
*/
@@ -50,13 +53,14 @@ public BackgroundMusic(Application app) {
stop(loseMusic);
lastPlayedMusic = menuMusic.getName();
- if(musicEnabled) {
+ if (musicEnabled) {
play(menuMusic);
}
}
/**
- * creates an audio node for the music
+ * Creates an audio node for the music
+ *
* @param musicFilePath the file path to the music
* @return the created audio node
*/
@@ -71,7 +75,8 @@ private AudioNode createMusicNode(String musicFilePath) {
}
/**
- * starts the music
+ * Starts the music
+ *
* @param audioNode the audio node to be played
*/
public void play(AudioNode audioNode) {
@@ -82,45 +87,47 @@ public void play(AudioNode audioNode) {
}
/**
- * pauses the music
+ * Pauses the music
+ *
* @param audioNode the audio node to be paused
*/
- public void pause(AudioNode audioNode){
- if(audioNode.getStatus() == Status.Playing){
+ public void pause(AudioNode audioNode) {
+ if (audioNode.getStatus() == Status.Playing) {
audioNode.pause();
}
}
/**
- * stops the music
+ * Stops the music
+ *
* @param audioNode the audio node to be stopped
*/
- public void stop(AudioNode audioNode){
+ public void stop(AudioNode audioNode) {
if (audioNode.getStatus() == Status.Playing) {
audioNode.stop();
}
}
/**
- * Toggle Method to control the music
+ * Controls which music should be played
*/
public void toggleMusic() {
this.musicEnabled = !this.musicEnabled;
if (musicEnabled) {
- switch (lastPlayedMusic){
- case MENU_MUSIC:
- play(menuMusic);
- break;
- case GAME_MUSIC:
- play(gameMusic);
- break;
- case VICTORY_MUSIC:
- play(victoryMusic);
- break;
- case LOSE_MUSIC:
- play(loseMusic);
- break;
- }
+ switch (lastPlayedMusic) {
+ case MENU_MUSIC:
+ play(menuMusic);
+ break;
+ case GAME_MUSIC:
+ play(gameMusic);
+ break;
+ case VICTORY_MUSIC:
+ play(victoryMusic);
+ break;
+ case LOSE_MUSIC:
+ play(loseMusic);
+ break;
+ }
}
else {
pause(menuMusic);
@@ -133,33 +140,36 @@ public void toggleMusic() {
}
/**
- * changes the music to the specified music if it isn't already playing
+ * Changes the music to the specified music if it isn't already playing
*
* @param music the music to play
*/
public void changeMusic(Music music) {
- if(music == Music.MENU_THEME && !lastPlayedMusic.equals(MENU_MUSIC)) {
+ if (music == Music.MENU_THEME && !lastPlayedMusic.equals(MENU_MUSIC)) {
LOGGER.log(Level.DEBUG, "Received Music change Event {0}", music.toString());
stop(gameMusic);
stop(victoryMusic);
stop(loseMusic);
play(menuMusic);
lastPlayedMusic = menuMusic.getName();
- } else if (music == Music.GAME_THEME && !lastPlayedMusic.equals(GAME_MUSIC)) {
+ }
+ else if (music == Music.GAME_THEME && !lastPlayedMusic.equals(GAME_MUSIC)) {
LOGGER.log(Level.DEBUG, "Received Music change Event {0}", music.toString());
stop(menuMusic);
stop(loseMusic);
stop(victoryMusic);
play(gameMusic);
lastPlayedMusic = gameMusic.getName();
- } else if (music == Music.VICTORY_THEME && !lastPlayedMusic.equals(VICTORY_MUSIC)) {
+ }
+ else if (music == Music.VICTORY_THEME && !lastPlayedMusic.equals(VICTORY_MUSIC)) {
LOGGER.log(Level.DEBUG, "Received Music change Event {0}", music.toString());
stop(menuMusic);
stop(gameMusic);
stop(loseMusic);
play(victoryMusic);
lastPlayedMusic = victoryMusic.getName();
- } else if (music == Music.LOSE_THEME && !lastPlayedMusic.equals(LOSE_MUSIC)){
+ }
+ else if (music == Music.LOSE_THEME && !lastPlayedMusic.equals(LOSE_MUSIC)) {
LOGGER.log(Level.DEBUG, "Received Music change Event {0}", music.toString());
stop(menuMusic);
stop(gameMusic);
@@ -170,14 +180,14 @@ public void changeMusic(Music music) {
}
/**
- * the method which receives the Event
+ * Receives the different MusicEvents
*
* @param music the received Event
*/
@Override
- public void receivedEvent (MusicEvent music){
+ public void receivedEvent(MusicEvent music) {
LOGGER.log(Level.DEBUG, "Received Music change Event {0}", music.toString());
- switch (music.music()){
+ switch (music.music()) {
case MENU_THEME:
changeMusic(Music.MENU_THEME);
break;
@@ -193,9 +203,8 @@ public void receivedEvent (MusicEvent music){
}
}
-
/**
- * Method to set the volume for the music
+ * Set the volume for the music
*
* @param volume float to transfer the new volume
*/
@@ -210,7 +219,7 @@ public void setVolume(float volume) {
}
/**
- * This method returns the volume
+ * Returns the volume
*
* @return the current volume as a float
*/
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipApp.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipApp.java
index 76474e23..a6754aad 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipApp.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipApp.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.client;
import com.jme3.app.DebugKeysAppState;
@@ -232,7 +225,6 @@ public void simpleInitApp() {
serverConnection.connect();
backgroundMusic = new BackgroundMusic(this);
logic.addListener(backgroundMusic);
-
}
/**
@@ -323,7 +315,7 @@ public Draw getDraw() {
return draw;
}
- public BackgroundMusic getBackgroundMusic(){
+ public BackgroundMusic getBackgroundMusic() {
return backgroundMusic;
}
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipAppConfig.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipAppConfig.java
index 6e32c8c5..0cce09fd 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipAppConfig.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipAppConfig.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.client;
import com.jme3.math.ColorRGBA;
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipAppState.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipAppState.java
index 00945163..cb1111a1 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipAppState.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/BattleshipAppState.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.client;
import com.jme3.app.Application;
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/GameSound.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/GameSound.java
index 36256884..2b18c2f8 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/GameSound.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/GameSound.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.client;
import com.jme3.app.Application;
@@ -135,6 +128,11 @@ public void shipDestroyed() {
shipDestroyedSound.playInstance();
}
+ /**
+ * Plays sound according to the received SoundEvent
+ *
+ * @param event the received SoundEvent
+ */
@Override
public void receivedEvent(SoundEvent event) {
switch (event.sound()) {
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/Menu.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/Menu.java
index fe3bccb5..8c2cb0fd 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/Menu.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/Menu.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.client;
import com.simsilica.lemur.Button;
@@ -56,13 +49,12 @@ public Menu(BattleshipApp app) {
addChild(new Label(lookup("menu.music.volume"), new ElementId("slider_label")));
Slider volumeSlider = new Slider();
- volumeSlider.setModel(new DefaultRangedValueModel(0.00 , 1.00, app.getBackgroundMusic().getVolume()));
+ volumeSlider.setModel(new DefaultRangedValueModel(0.00, 1.00, app.getBackgroundMusic().getVolume()));
volumeSlider.setDelta(0.05);
addChild(volumeSlider);
volumeRef = volumeSlider.getModel().createReference();
-
addChild(loadButton)
.addClickCommands(s -> ifTopDialog(this::loadDialog));
addChild(saveButton)
@@ -76,19 +68,20 @@ public Menu(BattleshipApp app) {
}
/**
- * this method is used update the volume when the slider is used
+ * Updates the volume when the slider is moved
+ *
* @param tpf time per frame
*/
@Override
- public void update(float tpf){
- if(volumeRef.update()){
+ public void update(float tpf) {
+ if (volumeRef.update()) {
double newVolume = volumeRef.get();
adjustVolume(newVolume);
}
}
/**
- * this method adjust the volume for the background music
+ * Adjusts the volume for the background music
*
* @param volume is the double value of the volume
*/
@@ -97,13 +90,12 @@ private void adjustVolume(double volume) {
}
/**
- * this method toggles the background music on and off
+ * Toggles the background music on and off
*/
private void toggleMusic() {
app.getBackgroundMusic().toggleMusic();
}
-
/**
* Updates the state of the load and save buttons based on the game logic.
*/
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/NetworkDialog.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/NetworkDialog.java
index 6e18db31..259c836f 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/NetworkDialog.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/NetworkDialog.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.client;
import com.simsilica.lemur.Checkbox;
@@ -55,7 +48,7 @@ class NetworkDialog extends SimpleDialog {
Checkbox hostServer = new Checkbox(lookup("start.own.server"));
hostServer.setChecked(false);
- hostServer.addClickCommands(s->toggleOwnServer());
+ hostServer.addClickCommands(s -> toggleOwnServer());
final BattleshipApp app = network.getApp();
final Container input = new Container(new SpringGridLayout());
@@ -164,38 +157,40 @@ private void failure(Throwable e) {
* If hostServer-Checkbox is active, starts a new Server on the clients machine, else tries to connect to existing server
*/
private void connect() {
- if(hostServer){
+ if (hostServer) {
startServer();
try {
Thread.sleep(1000);
- } catch (InterruptedException e) {
+ }
+ catch (InterruptedException e) {
LOGGER.log(Level.WARNING, e.getMessage(), e);
}
connectToServer();
- } else {
+ }
+ else {
connectToServer();
}
}
/**
- * starts a server on the clients machine
+ * Starts a server on the clients machine
*/
private void startServer() {
new Thread(() -> {
- try{
+ try {
BattleshipServer battleshipServer = new BattleshipServer(Integer.parseInt(port.getText()));
battleshipServer.run();
- } catch (Exception e) {
- LOGGER.log(Level.ERROR,e);
+ }
+ catch (Exception e) {
+ LOGGER.log(Level.ERROR, e);
}
}).start();
}
/**
- * handles the action for the hostServer-Checkbox
+ * Handles the action for the hostServer-Checkbox
*/
- private void toggleOwnServer(){
+ private void toggleOwnServer() {
hostServer = !hostServer;
}
-
}
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/NetworkSupport.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/NetworkSupport.java
index 71eb22b5..7380ee04 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/NetworkSupport.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/NetworkSupport.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.client;
import com.jme3.network.Client;
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/BattleAppState.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/BattleAppState.java
index 1a0fb8a6..7d6eb031 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/BattleAppState.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/BattleAppState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.client.gui;
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/EditorAppState.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/EditorAppState.java
index 33412384..1cecce6f 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/EditorAppState.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/EditorAppState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.client.gui;
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/HitEffectHandler.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/HitEffectHandler.java
index fc930337..71780f27 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/HitEffectHandler.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/HitEffectHandler.java
@@ -14,25 +14,26 @@
import java.lang.System.Logger;
import java.lang.System.Logger.Level;
-
public class HitEffectHandler {
private final AssetManager assetManager;
private static final Logger LOGGER = System.getLogger(HitEffectHandler.class.getName());
/**
* Constructor for the HitEffectHandler class
+ *
* @param app the main application
*/
- public HitEffectHandler(Application app){
+ public HitEffectHandler(Application app) {
assetManager = app.getAssetManager();
}
/**
- * Creates an explosion effect when ship gets hit
+ * Creates explosion, debris and fire effects when ship gets hit
+ *
* @param battleshipNode the node of the ship that gets hit and the effect should be attached to
- * @param shot The shot taken on a field
+ * @param shot The shot taken on a field
*/
- public void hitEffect(Node battleshipNode, Shot shot){
+ public void hitEffect(Node battleshipNode, Shot shot) {
//Explosion
ParticleEmitter explosion = new ParticleEmitter("Explosion", Type.Triangle, 30);
explosion.setMaterial(new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"));
@@ -47,10 +48,10 @@ public void hitEffect(Node battleshipNode, Shot shot){
explosion.setLowLife(1f);
explosion.setHighLife(3.5f);
explosion.setParticlesPerSec(0);
- explosion.setLocalTranslation(shot.getY() + 0.5f, 0 , shot.getX() + 0.5f);
+ explosion.setLocalTranslation(shot.getY() + 0.5f, 0, shot.getX() + 0.5f);
explosion.emitAllParticles();
- //Debris
+ //Debris
ParticleEmitter debris = new ParticleEmitter("Debris", Type.Triangle, 6);
Material debrisMaterial = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md");
debrisMaterial.setTexture("Texture", assetManager.loadTexture("Textures/Debris/debris.png"));
@@ -67,7 +68,7 @@ public void hitEffect(Node battleshipNode, Shot shot){
debris.setLowLife(1f);
debris.setHighLife(3.5f);
debris.setParticlesPerSec(0);
- debris.setLocalTranslation(shot.getY() + 0.5f, 0 , shot.getX() + 0.5f);
+ debris.setLocalTranslation(shot.getY() + 0.5f, 0, shot.getX() + 0.5f);
debris.emitAllParticles();
//Fire
@@ -92,8 +93,7 @@ public void hitEffect(Node battleshipNode, Shot shot){
// LOGGER.log(Level.DEBUG, "Created HitEffect at {0}", explosion.getLocalTranslation().toString());
// LOGGER.log(Level.DEBUG, "Created HitEffect at {0}", debris.getLocalTranslation().toString());
- LOGGER.log(Level.INFO, "Created HitEffect at {0}", fire.getLocalTranslation().toString());
-
+// LOGGER.log(Level.INFO, "Created HitEffect at {0}", fire.getLocalTranslation().toString());
battleshipNode.attachChild(explosion);
explosion.addControl(new EffectControl(explosion, battleshipNode));
@@ -103,10 +103,11 @@ public void hitEffect(Node battleshipNode, Shot shot){
}
/**
- * Creates a splash effect if shot hits the water
+ * Creates a splash effect if the shot hits the water
+ *
* @param shot The shot taken on a field
*/
- public ParticleEmitter missEffect(Shot shot){
+ public ParticleEmitter missEffect(Shot shot) {
ParticleEmitter missEffect = new ParticleEmitter("HitEffect", Type.Triangle, 45);
missEffect.setMaterial(new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"));
missEffect.setImagesX(2);
@@ -120,7 +121,7 @@ public ParticleEmitter missEffect(Shot shot){
missEffect.setLowLife(0.7f);
missEffect.setHighLife(1.8f);
missEffect.setParticlesPerSec(0);
- missEffect.setLocalTranslation(shot.getY() + 0.5f, 0 , shot.getX() + 0.5f);
+ missEffect.setLocalTranslation(shot.getY() + 0.5f, 0, shot.getX() + 0.5f);
LOGGER.log(Level.DEBUG, "Created MissEffect at {0}", missEffect.getLocalTranslation().toString());
@@ -139,7 +140,7 @@ private static class EffectControl extends AbstractControl {
/**
* Constructor used to attach effect to a node
*
- * @param emitter the particle emitter to be controlled
+ * @param emitter the particle emitter to be controlled
* @param parentNode the node to be attached
*/
public EffectControl(ParticleEmitter emitter, Node parentNode) {
@@ -152,7 +153,7 @@ public EffectControl(ParticleEmitter emitter, Node parentNode) {
*
* @param emitter the particle emitter to be controlled
*/
- public EffectControl(ParticleEmitter emitter){
+ public EffectControl(ParticleEmitter emitter) {
this.emitter = emitter;
this.parentNode = null;
}
@@ -177,5 +178,4 @@ protected void controlUpdate(float tpf) {
@Override
protected void controlRender(com.jme3.renderer.RenderManager rm, com.jme3.renderer.ViewPort vp) {}
}
-
}
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/MapView.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/MapView.java
index bd16c833..0cfb9fdf 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/MapView.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/MapView.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.client.gui;
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/MapViewSynchronizer.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/MapViewSynchronizer.java
index 56b7f02a..97314eac 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/MapViewSynchronizer.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/MapViewSynchronizer.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.client.gui;
@@ -117,6 +112,12 @@ public Spatial visit(Battleship ship) {
return shipNode;
}
+ /**
+ * Creates a visual representation on the map
+ *
+ * @param shell the Shell element to visit
+ * @return the node the visual representation gets attached to.
+ */
@Override
public Spatial visit(Shell shell) {
LOGGER.log(Logger.Level.DEBUG, "Visiting {0}", shell);
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/SeaAppState.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/SeaAppState.java
index c9bc8218..317e1314 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/SeaAppState.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/SeaAppState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.client.gui;
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/SeaSynchronizer.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/SeaSynchronizer.java
index eecf8abc..c43a16fb 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/SeaSynchronizer.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/SeaSynchronizer.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.client.gui;
@@ -51,7 +46,7 @@ class SeaSynchronizer extends ShipMapSynchronizer {
private static final ColorRGBA BOX_COLOR = ColorRGBA.Gray;
private static final ColorRGBA SPLASH_COLOR = new ColorRGBA(0f, 0f, 1f, 0.4f);
private static final ColorRGBA HIT_COLOR = new ColorRGBA(1f, 0f, 0f, 0.4f);
- private HitEffectHandler hitEffectHandler;
+ private final HitEffectHandler hitEffectHandler;
private final ShipMap map;
private final BattleshipApp app;
@@ -146,8 +141,8 @@ public Spatial visit(Battleship ship) {
/**
* Visits a Shell and creates a graphical representation of it.
*
- * @param shell the battleship to be represented
- * @return the node containing the graphical representation of the battleship
+ * @param shell the Shell to be represented
+ * @return the node containing the graphical representation of the Shell
*/
@Override
public Spatial visit(Shell shell) {
@@ -156,12 +151,11 @@ public Spatial visit(Shell shell) {
final float x = shell.getY();
final float z = shell.getX();
- node.setLocalTranslation(x+0.5f, 10f, z+0.5f);
+ node.setLocalTranslation(x + 0.5f, 10f, z + 0.5f);
node.addControl(new ShellControl(shell, app));
return node;
}
-
/**
* Creates the appropriate graphical representation of the specified battleship.
* The representation is either a detailed model or a simple box based on the length of the ship.
@@ -170,7 +164,7 @@ public Spatial visit(Shell shell) {
* @return the spatial representing the battleship
*/
private Spatial createShip(Battleship ship) {
- return switch (ship.getLength()){
+ return switch (ship.getLength()) {
case 1 -> createPatrolBoat(ship);
case 2 -> createModernBattleship(ship);
case 3 -> createUboat(ship);
@@ -250,7 +244,7 @@ private Spatial createModernBattleship(Battleship ship) {
model.rotate(-HALF_PI, calculateRotationAngle(ship.getRot()) + HALF_PI, 0f);
model.scale(0.000075f);
model.setShadowMode(ShadowMode.CastAndReceive);
- model.move(0,0.2f,0);
+ model.move(0, 0.2f, 0);
return model;
}
@@ -269,15 +263,13 @@ private Spatial createMissile() {
model.setQueueBucket(RenderQueue.Bucket.Opaque);
- model.rotate(-HALF_PI,0,0);
+ model.rotate(-HALF_PI, 0, 0);
model.scale(0.009f);
model.setShadowMode(ShadowMode.CastAndReceive);
- model.move(0,0f,0);
+ model.move(0, 0f, 0);
return model;
}
-
-
/**
* Creates a detailed 3D model to represent a Uboat.
*
@@ -291,7 +283,7 @@ private Spatial createUboat(Battleship ship) {
model.rotate(-HALF_PI, calculateRotationAngle(ship.getRot()), 0f);
model.scale(0.45f);
model.setShadowMode(ShadowMode.CastAndReceive);
- model.move(0,-0.25f,0);
+ model.move(0, -0.25f, 0);
return model;
}
@@ -313,7 +305,6 @@ private Spatial createPatrolBoat(Battleship ship) {
return model;
}
-
/**
* Calculates the rotation angle for the specified rotation.
*
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShellControl.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShellControl.java
index 10eecd6a..a655859e 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShellControl.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShellControl.java
@@ -11,6 +11,9 @@
import java.lang.System.Logger;
import java.lang.System.Logger.Level;
+/**
+ * Class to control the 3D representation of a shell
+ */
public class ShellControl extends AbstractControl {
private final Shell shell;
@@ -18,24 +21,42 @@ public class ShellControl extends AbstractControl {
private static final float TRAVEL_SPEED = 8.5f;
static final Logger LOGGER = System.getLogger(BattleshipApp.class.getName());
+ /**
+ * Constructor for ShellControl class
+ *
+ * @param shell The Shell to be displayed
+ * @param app the main application
+ */
public ShellControl(Shell shell, BattleshipApp app) {
this.shell = shell;
this.app = app;
}
+ /**
+ * Method to control movement of the Shell and remove it when target is reached
+ *
+ * @param tpf time per frame (in seconds)
+ */
@Override
public void controlUpdate(float tpf) {
//LOGGER.log(Level.DEBUG, "missile at x=" + shell.getX() + ", y=" + shell.getY());
- spatial.move(0, -TRAVEL_SPEED*tpf, 0);
- if(spatial.getLocalTranslation().getY() <= 0.2){
+ spatial.move(0, -TRAVEL_SPEED * tpf, 0);
+ if (spatial.getLocalTranslation().getY() <= 0.2) {
spatial.getParent().detachChild(spatial);
app.getGameLogic().send(new EndAnimationMessage(new IntPoint(shell.getX(), shell.getY())));
}
}
+ /**
+ * This method is called during the rendering phase, but it does not perform any
+ * operations in this implementation as the control only influences the spatial's
+ * transformation, not its rendering process.
+ *
+ * @param rm the RenderManager rendering the controlled Spatial (not null)
+ * @param vp the ViewPort being rendered (not null)
+ */
@Override
protected void controlRender(RenderManager rm, ViewPort vp) {
}
-
}
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShellMapControl.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShellMapControl.java
index 1cc3fb2e..a7f9fdaa 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShellMapControl.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShellMapControl.java
@@ -9,29 +9,52 @@
import pp.battleship.model.IntPoint;
import pp.util.Position;
+/**
+ * Class to control the 2D representation of a shell
+ */
public class ShellMapControl extends AbstractControl {
private final Position position;
private final IntPoint pos;
- private static final Vector3f vector = new Vector3f();
+ private static final Vector3f VECTOR_3_F = new Vector3f();
private final BattleshipApp app;
+ /**
+ * Constructor for ShellMapControl
+ *
+ * @param position the target position of the shell
+ * @param app the main application
+ * @param pos the position the then to render shot goes to
+ */
public ShellMapControl(Position position, BattleshipApp app, IntPoint pos) {
super();
this.position = position;
this.pos = pos;
this.app = app;
- vector.set(new Vector3f(position.getX(), position.getY(), 0));
+ VECTOR_3_F.set(new Vector3f(position.getX(), position.getY(), 0));
}
+ /**
+ * Method to control movement of the Shell on the map and remove it when target is reached
+ *
+ * @param tpf time per frame (in seconds)
+ */
@Override
protected void controlUpdate(float tpf) {
- spatial.move(vector.mult(tpf));
+ spatial.move(VECTOR_3_F.mult(tpf));
if (spatial.getLocalTranslation().getX() >= position.getX() && spatial.getLocalTranslation().getY() >= position.getY()) {
spatial.getParent().detachChild(spatial);
app.getGameLogic().send(new EndAnimationMessage(pos));
}
}
+ /**
+ * This method is called during the rendering phase, but it does not perform any
+ * operations in this implementation as the control only influences the spatial's
+ * transformation, not its rendering process.
+ *
+ * @param rm the RenderManager rendering the controlled Spatial (not null)
+ * @param vp the ViewPort being rendered (not null)
+ */
@Override
protected void controlRender(RenderManager rm, ViewPort vp) {
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShipControl.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShipControl.java
index 0c0ad845..7f2e7241 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShipControl.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShipControl.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.client.gui;
@@ -88,12 +83,12 @@ protected void controlUpdate(float tpf) {
// If spatial is null, do nothing
if (spatial == null) return;
- if(battleship.isDestroyed() && spatial.getLocalTranslation().getY() < -0.6f){
+ if (battleship.isDestroyed() && spatial.getLocalTranslation().getY() < -0.6f) {
LOGGER.log(Level.INFO, "Ship removed {0}", spatial.getName());
spatial.getParent().detachChild(spatial);
}
else if (battleship.isDestroyed()) {
- spatial.move(0,-0.2f*tpf,0);
+ spatial.move(0, -0.2f * tpf, 0);
}
else {
// Update the time within the oscillation cycle
diff --git a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShipMapSynchronizer.java b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShipMapSynchronizer.java
index 6af0c80f..c46f7493 100644
--- a/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShipMapSynchronizer.java
+++ b/Projekte/battleship/client/src/main/java/pp/battleship/client/gui/ShipMapSynchronizer.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.client.gui;
diff --git a/Projekte/battleship/client/src/main/java/server/BattleshipServer.java b/Projekte/battleship/client/src/main/java/server/BattleshipServer.java
index 5c4d5504..ebb7bb3a 100644
--- a/Projekte/battleship/client/src/main/java/server/BattleshipServer.java
+++ b/Projekte/battleship/client/src/main/java/server/BattleshipServer.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package server;
@@ -77,12 +72,18 @@ public BattleshipServer(int port) {
logic = new ServerGameLogic(this, config);
}
+ /**
+ * Runs a server
+ */
public void run() {
startServer();
while (true)
processNextMessage();
}
+ /**
+ * Starts a server
+ */
private void startServer() {
try {
LOGGER.log(Level.INFO, "Starting server..."); //NON-NLS
@@ -98,6 +99,9 @@ private void startServer() {
}
}
+ /**
+ * Processes next received message
+ */
private void processNextMessage() {
try {
pendingMessages.take().process(logic);
@@ -108,6 +112,9 @@ private void processNextMessage() {
}
}
+ /**
+ * Registers all serializable classes
+ */
private void initializeSerializables() {
Serializer.registerClass(GameDetails.class);
Serializer.registerClass(StartBattleMessage.class);
@@ -122,6 +129,9 @@ private void initializeSerializables() {
Serializer.registerClass(SwitchToBattleState.class);
}
+ /**
+ * Registers all listeners
+ */
private void registerListeners() {
myServer.addMessageListener(this, MapMessage.class);
myServer.addMessageListener(this, ShootMessage.class);
@@ -129,6 +139,11 @@ private void registerListeners() {
myServer.addConnectionListener(this);
}
+ /**
+ * Handles a received message
+ * @param source the connection the message comes from
+ * @param message the received message
+ */
@Override
public void messageReceived(HostedConnection source, Message message) {
LOGGER.log(Level.INFO, "message received from {0}: {1}", source.getId(), message); //NON-NLS
@@ -136,12 +151,22 @@ public void messageReceived(HostedConnection source, Message message) {
pendingMessages.add(new ReceivedMessage(clientMessage, source.getId()));
}
+ /**
+ * Adds a new connection to a server
+ * @param server the server to add the connection to
+ * @param hostedConnection the connection to be added
+ */
@Override
public void connectionAdded(Server server, HostedConnection hostedConnection) {
LOGGER.log(Level.INFO, "new connection {0}", hostedConnection); //NON-NLS
logic.addPlayer(hostedConnection.getId());
}
+ /**
+ * Removes a standing connection from a server
+ * @param server the server to add the connection to
+ * @param hostedConnection the connection to be added
+ */
@Override
public void connectionRemoved(Server server, HostedConnection hostedConnection) {
LOGGER.log(Level.INFO, "connection closed: {0}", hostedConnection); //NON-NLS
@@ -154,6 +179,10 @@ public void connectionRemoved(Server server, HostedConnection hostedConnection)
}
}
+ /**
+ * Shuts down the server and terminates the application with the given exit code
+ * @param exitValue the exit status code
+ */
private void exit(int exitValue) { //NON-NLS
LOGGER.log(Level.INFO, "close request"); //NON-NLS
if (myServer != null)
diff --git a/Projekte/battleship/client/src/main/java/server/ReceivedMessage.java b/Projekte/battleship/client/src/main/java/server/ReceivedMessage.java
index f34c645b..fcf71d7b 100644
--- a/Projekte/battleship/client/src/main/java/server/ReceivedMessage.java
+++ b/Projekte/battleship/client/src/main/java/server/ReceivedMessage.java
@@ -1,15 +1,15 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package server;
import pp.battleship.message.client.ClientInterpreter;
import pp.battleship.message.client.ClientMessage;
+/**
+ * Represents a message received from a client
+ * @param message the received message
+ * @param from the ID of the client that sent the message
+ */
record ReceivedMessage(ClientMessage message, int from) {
void process(ClientInterpreter interpreter) {
message.accept(interpreter, from);
diff --git a/Projekte/battleship/client/src/main/resources/Models/PATROL_BOAT/12219_boat_v2_L2.mtl b/Projekte/battleship/client/src/main/resources/Models/PATROL_BOAT/12219_boat_v2_L2.mtl
index 028a0dd4..3b2fec53 100644
--- a/Projekte/battleship/client/src/main/resources/Models/PATROL_BOAT/12219_boat_v2_L2.mtl
+++ b/Projekte/battleship/client/src/main/resources/Models/PATROL_BOAT/12219_boat_v2_L2.mtl
@@ -6,7 +6,7 @@ newmtl white
Ni 1.5000
d 1.0000
Tr 0.0000
- Tf 1.0000 1.0000 1.0000
+ Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.6667 0.6667 0.6667
Kd 0.6667 0.6667 0.6667
@@ -18,7 +18,7 @@ newmtl boat_elements_black
Ni 1.5000
d 1.0000
Tr 0.0000
- Tf 1.0000 1.0000 1.0000
+ Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.0000 0.0000 0.0000
Kd 0.0000 0.0000 0.0000
@@ -30,7 +30,7 @@ newmtl boat_glass
Ni 7.0000
d 0.4000
Tr 0.6000
- Tf 0.4000 0.4000 0.4000
+ Tf 0.4000 0.4000 0.4000
illum 2
Ka 0.1059 0.1569 0.1451
Kd 0.1059 0.1569 0.1451
@@ -42,7 +42,7 @@ newmtl boat_screw_hooks_bronze
Ni 1.5000
d 1.0000
Tr 0.0000
- Tf 1.0000 1.0000 1.0000
+ Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.2941 0.2157 0.0510
Kd 0.2941 0.2157 0.0510
@@ -54,7 +54,7 @@ newmtl boat_silver
Ni 1.5000
d 1.0000
Tr 0.0000
- Tf 1.0000 1.0000 1.0000
+ Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.3333 0.3333 0.3333
Kd 0.3333 0.3333 0.3333
@@ -66,7 +66,7 @@ newmtl boat_buffer
Ni 1.5000
d 1.0000
Tr 0.0000
- Tf 1.0000 1.0000 1.0000
+ Tf 1.0000 1.0000 1.0000
illum 2
Ka 1.0000 1.0000 1.0000
Kd 1.0000 1.0000 1.0000
@@ -80,7 +80,7 @@ newmtl boat_roof_accessory
Ni 1.5000
d 1.0000
Tr 0.0000
- Tf 1.0000 1.0000 1.0000
+ Tf 1.0000 1.0000 1.0000
illum 2
Ka 1.0000 1.0000 1.0000
Kd 1.0000 1.0000 1.0000
@@ -94,7 +94,7 @@ newmtl boat_body
Ni 1.5000
d 1.0000
Tr 0.0000
- Tf 1.0000 1.0000 1.0000
+ Tf 1.0000 1.0000 1.0000
illum 2
Ka 1.0000 1.0000 1.0000
Kd 1.0000 1.0000 1.0000
diff --git a/Projekte/battleship/client/src/main/resources/Models/UBOAT/14084_WWII_Ship_German_Type_II_U-boat_v2_L1.mtl b/Projekte/battleship/client/src/main/resources/Models/UBOAT/14084_WWII_Ship_German_Type_II_U-boat_v2_L1.mtl
index 8337cf7e..4d0fed11 100644
--- a/Projekte/battleship/client/src/main/resources/Models/UBOAT/14084_WWII_Ship_German_Type_II_U-boat_v2_L1.mtl
+++ b/Projekte/battleship/client/src/main/resources/Models/UBOAT/14084_WWII_Ship_German_Type_II_U-boat_v2_L1.mtl
@@ -6,7 +6,7 @@ newmtl default
Ni 1.5000
d 1.0000
Tr 0.0000
- Tf 1.0000 1.0000 1.0000
+ Tf 1.0000 1.0000 1.0000
illum 2
Ka 1.0000 1.0000 1.0000
Kd 1.0000 1.0000 1.0000
diff --git a/Projekte/battleship/client/src/main/resources/Sound/Music/menu/Crerdits.txt b/Projekte/battleship/client/src/main/resources/Sound/Music/menu/Crerdits.txt
index f8fd90f2..3ab5c100 100644
--- a/Projekte/battleship/client/src/main/resources/Sound/Music/menu/Crerdits.txt
+++ b/Projekte/battleship/client/src/main/resources/Sound/Music/menu/Crerdits.txt
@@ -2,4 +2,3 @@ Epic Cinematic Trailer | ELITE by Alex-Productions | https://onsound.eu/
Music promoted by https://www.chosic.com/free-music/all/
Creative Commons CC BY 3.0
https://creativecommons.org/licenses/by/3.0/
-
\ No newline at end of file
diff --git a/Projekte/battleship/converter/src/main/java/pp/battleship/exporter/ModelExporter.java b/Projekte/battleship/converter/src/main/java/pp/battleship/exporter/ModelExporter.java
index 2c9f279d..df338491 100644
--- a/Projekte/battleship/converter/src/main/java/pp/battleship/exporter/ModelExporter.java
+++ b/Projekte/battleship/converter/src/main/java/pp/battleship/exporter/ModelExporter.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.exporter;
diff --git a/Projekte/battleship/converter/src/main/resources/Models/KingGeorgeV/King_George_V.mtl b/Projekte/battleship/converter/src/main/resources/Models/KingGeorgeV/King_George_V.mtl
index cc365633..b5271d8a 100644
--- a/Projekte/battleship/converter/src/main/resources/Models/KingGeorgeV/King_George_V.mtl
+++ b/Projekte/battleship/converter/src/main/resources/Models/KingGeorgeV/King_George_V.mtl
@@ -6,7 +6,7 @@ newmtl _King_George_V
Ni 1.5000
d 1.0000
Tr 0.0000
- Tf 1.0000 1.0000 1.0000
+ Tf 1.0000 1.0000 1.0000
illum 2
Ka 1.0000 1.0000 1.0000
Kd 1.0000 1.0000 1.0000
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/BattleshipConfig.java b/Projekte/battleship/model/src/main/java/pp/battleship/BattleshipConfig.java
index f6b4cf20..e7c18e6a 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/BattleshipConfig.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/BattleshipConfig.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship;
import pp.util.config.Config;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/Resources.java b/Projekte/battleship/model/src/main/java/pp/battleship/Resources.java
index f2903c83..9f807b54 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/Resources.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/Resources.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship;
import java.util.ResourceBundle;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/AnimationState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/AnimationState.java
index 01336fd5..e4da00c4 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/AnimationState.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/AnimationState.java
@@ -11,15 +11,25 @@
import java.lang.System.Logger.Level;
-public class AnimationState extends ClientState{
+/**
+ * Represents the state in which the animation is played
+ */
+public class AnimationState extends ClientState {
private boolean myTurn;
+ /**
+ * Constructor for the AnimationState class
+ *
+ * @param logic the client logic
+ * @param turn a boolean containing if it's the client's turn
+ * @param position the position a Shell gets created
+ */
public AnimationState(ClientGameLogic logic, boolean turn, IntPoint position) {
super(logic);
logic.playMusic(Music.GAME_THEME);
myTurn = turn;
- if (myTurn){
+ if (myTurn) {
logic.getOpponentMap().add(new Shell(position));
}
else {
@@ -27,8 +37,13 @@ public AnimationState(ClientGameLogic logic, boolean turn, IntPoint position) {
}
}
+ /**
+ * Makes sure the client renders the correct view
+ *
+ * @return true
+ */
@Override
- boolean showBattle(){
+ boolean showBattle() {
return true;
}
@@ -52,8 +67,13 @@ public void receivedEffect(EffectMessage msg) {
}
}
+ /**
+ * Sets the client back to the battle state
+ *
+ * @param msg the received SwitchToBattleState message
+ */
@Override
- public void receivedSwitchToBattleState(SwitchToBattleState msg){
+ public void receivedSwitchToBattleState(SwitchToBattleState msg) {
logic.setState(new BattleState(logic, msg.getTurn()));
}
@@ -89,6 +109,7 @@ private void playSound(EffectMessage msg) {
else if (msg.getDestroyedShip() == null)
logic.playSound(Sound.EXPLOSION);
else
- logic.playSound(Sound.DESTROYED_SHIP);
+ logic.playSound(Sound.EXPLOSION);
+ logic.playSound(Sound.DESTROYED_SHIP);
}
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/BattleState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/BattleState.java
index 60339373..e9891408 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/BattleState.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/BattleState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
@@ -35,11 +30,21 @@ public BattleState(ClientGameLogic logic, boolean myTurn) {
this.myTurn = myTurn;
}
+ /**
+ * Makes sure the client renders the correct view
+ *
+ * @return true
+ */
@Override
public boolean showBattle() {
return true;
}
+ /**
+ * Triggers a shoot event if it's client's turn
+ *
+ * @param pos the position where the click occurred
+ */
@Override
public void clickOpponentMap(IntPoint pos) {
if (!myTurn)
@@ -48,9 +53,14 @@ else if (logic.getOpponentMap().isValid(pos))
logic.send(new ShootMessage(pos));
}
+ /**
+ * Triggers an animation if StartAnimationMessage is received
+ *
+ * @param msg the received Startanimation message
+ */
@Override
- public void receivedStartAnimation(StartAnimationMessage msg){
- logic.setState(new AnimationState(logic, msg.isMyTurn(), msg.getPosition() ));
+ public void receivedStartAnimation(StartAnimationMessage msg) {
+ logic.setState(new AnimationState(logic, msg.isMyTurn(), msg.getPosition()));
logic.playSound(Sound.MISSILE_LAUNCH);
}
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/BattleshipClient.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/BattleshipClient.java
index 16bee440..d85369fa 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/BattleshipClient.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/BattleshipClient.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientGameLogic.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientGameLogic.java
index e5c7768c..3c898a32 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientGameLogic.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientGameLogic.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
@@ -231,6 +226,8 @@ public void received(EffectMessage msg) {
}
/**
+ * Reports that client should play an animation
+ *
* @param msg
*/
@Override
@@ -239,6 +236,8 @@ public void received(StartAnimationMessage msg) {
}
/**
+ * Reports that client should switch to the battle state
+ *
* @param msg
*/
@Override
@@ -375,9 +374,10 @@ public void update(float delta) {
/**
* Triggers an event to play specified music
+ *
* @param music the music to be played
*/
- public void playMusic(Music music){
+ public void playMusic(Music music) {
notifyListeners(new MusicEvent(music));
}
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientSender.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientSender.java
index a066bfd6..c383a872 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientSender.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientSender.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientState.java
index b145bdbb..6514acc2 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientState.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ClientState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
@@ -167,10 +162,20 @@ void receivedEffect(EffectMessage msg) {
ClientGameLogic.LOGGER.log(Level.ERROR, "receivedEffect not allowed in {0}", getName()); //NON-NLS
}
+ /**
+ * Reports that client should switch to battle state
+ *
+ * @param msg the received SwitchToBattleState message
+ */
void receivedSwitchToBattleState(SwitchToBattleState msg) {
ClientGameLogic.LOGGER.log(Level.ERROR, "receivedSwitchToBattleState not allowed in {0}", getName());
}
+ /**
+ * Reports that the client should start an animation
+ *
+ * @param msg the received StartAnimation message
+ */
void receivedStartAnimation(StartAnimationMessage msg) {
ClientGameLogic.LOGGER.log(Level.ERROR, "receivedStartAnimation not allowed in {0}", getName());
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/EditorState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/EditorState.java
index d49d8c17..438a1ac0 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/EditorState.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/EditorState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
@@ -251,6 +246,12 @@ else if (!checkMapToLoad(dto)) {
selectedInHarbor = null;
}
+ /**
+ * Checks if the provided map meets the requirements
+ *
+ * @param dto the data transfer object to check
+ * @return boolean if the map meets the requirements
+ */
private boolean checkMapToLoad(ShipMapDTO dto) {
int mapWidth = dto.getWidth();
int mapHeight = dto.getHeight();
@@ -266,7 +267,7 @@ private boolean checkMapToLoad(ShipMapDTO dto) {
// check if ships overlap
List ships = dto.getShips();
- for(Battleship ship:ships) {
+ for (Battleship ship : ships) {
for (Battleship compareShip : ships) {
if (!(ship == compareShip)) {
if (ship.collidesWith(compareShip)) {
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/GameOverState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/GameOverState.java
index c54040fd..c619fa59 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/GameOverState.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/GameOverState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
@@ -20,7 +15,7 @@ class GameOverState extends ClientState {
*/
GameOverState(ClientGameLogic logic, boolean loser) {
super(logic);
- if(loser){
+ if (loser) {
logic.playMusic(Music.LOSE_THEME);
}
else {
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/InitialState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/InitialState.java
index 4acc9278..299ffdf2 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/InitialState.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/InitialState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
@@ -58,6 +53,11 @@ private void fillHarbor(GameDetails details) {
}
}
+ /**
+ * Checks if map may be saved to file
+ *
+ * @return false
+ */
@Override
public boolean maySaveMap() {
return false;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ServerConnection.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ServerConnection.java
index 93872520..ea4b833d 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ServerConnection.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/ServerConnection.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/WaitState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/WaitState.java
index 06d266df..c4561726 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/WaitState.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/WaitState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
@@ -40,6 +35,11 @@ public void receivedStartBattle(StartBattleMessage msg) {
logic.setState(new BattleState(logic, msg.isMyTurn()));
}
+ /**
+ * Reverts the client back to the editor state if an invalid map is provided
+ *
+ * @param details the game details including map size and ships
+ */
@Override
public void receivedGameDetails(GameDetails details) {
ClientGameLogic.LOGGER.log(Level.WARNING, "Invalid Map"); //NON-NLS
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/Player.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/Player.java
index 71aeea5f..3ae9c05b 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/Player.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/Player.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.server;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java
index c5d6db98..e0322c51 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.game.server;
import pp.battleship.BattleshipConfig;
@@ -157,33 +150,32 @@ else if (!checkMap(msg, from)) {
}
/**
- * @param msg
+ * Handles the reception of an EndAnimation message
+ * @param msg received EndAnimation message
*/
@Override
- public void received(EndAnimationMessage msg, int from){
- if(state != ServerState.WAIT_ANIMATION)
+ public void received(EndAnimationMessage msg, int from) {
+ if (state != ServerState.WAIT_ANIMATION)
LOGGER.log(Level.ERROR, "animation not allowed in {0}", state);
- else
- if(getPlayerById(from) == players.get(0)){
- LOGGER.log(Level.DEBUG, "{0} set to true", getPlayerById(from));
- p1AnimationFinished = true;
- shoot(getPlayerById(from), msg.getPosition());
- }
- else if (getPlayerById(from) == players.get(1)){
- LOGGER.log(Level.DEBUG, "{0} set to true {1}", getPlayerById(from), getPlayerById(from).toString());
- p2AnimationFinished = true;
- shoot(getPlayerById(from), msg.getPosition());
- }
- if(p1AnimationFinished && p2AnimationFinished) {
- setState(ServerState.BATTLE);
- for (Player player : players)
- send(player, new SwitchToBattleState(player == activePlayer));
- p1AnimationFinished = false;
- p2AnimationFinished = false;
- }
+ else if (getPlayerById(from) == players.get(0)) {
+ LOGGER.log(Level.DEBUG, "{0} set to true", getPlayerById(from));
+ p1AnimationFinished = true;
+ shoot(getPlayerById(from), msg.getPosition());
+ }
+ else if (getPlayerById(from) == players.get(1)) {
+ LOGGER.log(Level.DEBUG, "{0} set to true {1}", getPlayerById(from), getPlayerById(from).toString());
+ p2AnimationFinished = true;
+ shoot(getPlayerById(from), msg.getPosition());
+ }
+ if (p1AnimationFinished && p2AnimationFinished) {
+ setState(ServerState.BATTLE);
+ for (Player player : players)
+ send(player, new SwitchToBattleState(player == activePlayer));
+ p1AnimationFinished = false;
+ p2AnimationFinished = false;
+ }
}
-
/**
* Returns true if the map contains correct ship placement and is of the correct size
*
@@ -258,6 +250,11 @@ void playerReady(Player player, List ships) {
}
}
+ /**
+ * Handles what Effect should be triggered based on the shot
+ * @param player the player receiving the message
+ * @param position the position the shot hit
+ */
void shoot(Player player, IntPoint position) {
final Battleship selectedShip;
selectedShip = getSelectedShip(player, position);
@@ -269,6 +266,12 @@ void shoot(Player player, IntPoint position) {
}
}
+ /**
+ * Returns the ship at a given position
+ * @param player the player whose map will be checked for a ship
+ * @param position the position to be checked for a ship
+ * @return if there is a ship at the given position, returns the ship, else null
+ */
Battleship getSelectedShip(Player player, IntPoint position) {
if (player != activePlayer) {
return player.getMap().findShipAt(position);
@@ -278,6 +281,11 @@ Battleship getSelectedShip(Player player, IntPoint position) {
}
}
+ /**
+ * Sends a message to the client that the shot missed
+ * @param player the player receiving the message
+ * @param position the position at which the shot hit in the water
+ */
void shotMissed(Player player, IntPoint position) {
if (player != activePlayer) {
send(player, EffectMessage.miss(false, position));
@@ -292,6 +300,12 @@ void shotMissed(Player player, IntPoint position) {
activePlayer = player;
}
+ /**
+ * Sends a message to the client that the shot missed
+ * @param player the player receiving the message
+ * @param position the position at which the shot hit in the ship
+ * @param ship the ship that has been hit
+ */
void shotHit(Player player, IntPoint position, Battleship ship) {
ship.hit(position);
if (getOpponent(activePlayer).getMap().getRemainingShips().isEmpty()) {
@@ -319,5 +333,4 @@ else if (ship.isDestroyed()) {
}
}
}
-
}
\ No newline at end of file
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerSender.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerSender.java
index 426c31ff..aebbd589 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerSender.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerSender.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.game.server;
import pp.battleship.message.server.ServerMessage;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerState.java
index 074adb2e..9833432b 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerState.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerState.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.server;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/BattleshipClientConfig.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/BattleshipClientConfig.java
index 7acdf3fb..41451de5 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/BattleshipClientConfig.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/BattleshipClientConfig.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.game.singlemode;
import pp.battleship.BattleshipConfig;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/Copycat.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/Copycat.java
index a80e8fc1..31ff6854 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/Copycat.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/Copycat.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.singlemode;
@@ -65,8 +60,9 @@ public void received(MapMessage msg, int from) {
}
/**
- * @param msg
- * @param from
+ * Creates a copy of the provided EndAnimation message
+ * @param msg thr received EndAnimation message
+ * @param from the identifier of the sender
*/
@Override
public void received(EndAnimationMessage msg, int from) {
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/InterpreterProxy.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/InterpreterProxy.java
index 365b5936..2ecae1f6 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/InterpreterProxy.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/InterpreterProxy.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.game.singlemode;
import pp.battleship.game.client.BattleshipClient;
@@ -21,6 +14,7 @@ class InterpreterProxy implements ServerInterpreter {
private final BattleshipClient playerClient;
static final System.Logger LOGGER = System.getLogger(InterpreterProxy.class.getName());
+
/**
* Constructs an InterpreterProxy with the specified BattleshipClient.
*
@@ -96,7 +90,7 @@ public void received(StartAnimationMessage msg) {
* @param msg the SwitchBattleState received from the server
*/
@Override
- public void received(SwitchToBattleState msg){
+ public void received(SwitchToBattleState msg) {
LOGGER.log(System.Logger.Level.INFO, "Received SwitchBattleState");
forward(msg);
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/RobotClient.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/RobotClient.java
index 729cf41d..a48b9566 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/RobotClient.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/RobotClient.java
@@ -137,7 +137,7 @@ public void received(StartAnimationMessage msg) {
* @param msg the SwitchBattleState received
*/
@Override
- public void received(SwitchToBattleState msg){
+ public void received(SwitchToBattleState msg) {
LOGGER.log(Level.INFO, "Received SwitchBattleStateMessage: {0}", msg);
if (msg.getTurn())
shoot();
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/ServerConnectionMockup.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/ServerConnectionMockup.java
index de63a612..22be2fd5 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/ServerConnectionMockup.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/singlemode/ServerConnectionMockup.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.singlemode;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ClientInterpreter.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ClientInterpreter.java
index 5cfae5d8..79565ab7 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ClientInterpreter.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ClientInterpreter.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.message.client;
/**
@@ -27,5 +20,10 @@ public interface ClientInterpreter {
*/
void received(MapMessage msg, int from);
+ /**
+ * Processes a received EndAnimation message
+ * @param msg the received EndAnimation message
+ * @param from the connection ID from which the message was received
+ */
void received(EndAnimationMessage msg, int from);
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ClientMessage.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ClientMessage.java
index 71c0f3e8..79d1d376 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ClientMessage.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ClientMessage.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.message.client;
import com.jme3.network.AbstractMessage;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/EndAnimationMessage.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/EndAnimationMessage.java
index d156fb53..a71d9992 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/EndAnimationMessage.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/EndAnimationMessage.java
@@ -3,14 +3,24 @@
import com.jme3.network.serializing.Serializable;
import pp.battleship.model.IntPoint;
+/**
+ * A message sent by the client telling the server the animation is finished
+ */
@Serializable
-public class EndAnimationMessage extends ClientMessage{
+public class EndAnimationMessage extends ClientMessage {
private IntPoint position;
- private EndAnimationMessage(){/*do nothing */}
+ /**
+ * Default constructor for serialization purposes.
+ */
+ private EndAnimationMessage() {/*do nothing */}
- public EndAnimationMessage(final IntPoint position){
+ /**
+ * Constructs an EndAnimation message
+ * @param position the position to be effected
+ */
+ public EndAnimationMessage(final IntPoint position) {
this.position = position;
}
@@ -25,9 +35,11 @@ public void accept(ClientInterpreter interpreter, int from) {
interpreter.received(this, from);
}
+ /**
+ * Getter for the position
+ * @return IntPoint position
+ */
public IntPoint getPosition() {
return position;
}
-
-
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/MapMessage.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/MapMessage.java
index 1e60ecf3..d070e1e8 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/MapMessage.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/MapMessage.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.message.client;
import com.jme3.network.serializing.Serializable;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ShootMessage.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ShootMessage.java
index 6aa73f75..8feb24ea 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ShootMessage.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/client/ShootMessage.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.message.client;
import com.jme3.network.serializing.Serializable;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/EffectMessage.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/EffectMessage.java
index 98c74761..a9d14ee1 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/EffectMessage.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/EffectMessage.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.message.server;
import com.jme3.network.serializing.Serializable;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/GameDetails.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/GameDetails.java
index f5c5a2cc..d9e8eb90 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/GameDetails.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/GameDetails.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.message.server;
import com.jme3.network.serializing.Serializable;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/ServerInterpreter.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/ServerInterpreter.java
index ad66000e..6b8145f4 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/ServerInterpreter.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/ServerInterpreter.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.message.server;
import pp.battleship.message.client.EndAnimationMessage;
@@ -36,7 +29,15 @@ public interface ServerInterpreter {
*/
void received(EffectMessage msg);
+ /**
+ * Handles a StartAnimation message received from the server
+ * @param msg the received StartAnimation message
+ */
void received(StartAnimationMessage msg);
+ /**
+ * Handles a SwitchToBattleState message received from the server
+ * @param msg the received SwitchToBattleState message
+ */
void received(SwitchToBattleState msg);
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/ServerMessage.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/ServerMessage.java
index c9653ad4..71949c08 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/ServerMessage.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/ServerMessage.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.message.server;
import com.jme3.network.AbstractMessage;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/StartAnimationMessage.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/StartAnimationMessage.java
index 1a91f6e2..137fc8c3 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/StartAnimationMessage.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/StartAnimationMessage.java
@@ -3,14 +3,25 @@
import com.jme3.network.serializing.Serializable;
import pp.battleship.model.IntPoint;
+/**
+ * A message sent by the server to inform clients about the start of an animation
+ */
@Serializable
public class StartAnimationMessage extends ServerMessage {
private IntPoint position;
private boolean myTurn;
- private StartAnimationMessage(){/*do nothing */}
+ /**
+ * Default constructor for serialization purposes.
+ */
+ private StartAnimationMessage() {/*do nothing */}
+ /**
+ * Constructs a StartAnimation message
+ * @param position the position a Shell will affect
+ * @param myTurn boolean if it's client's turn
+ */
public StartAnimationMessage(IntPoint position, boolean myTurn) {
this.position = position;
this.myTurn = myTurn;
@@ -37,9 +48,15 @@ public String getInfoTextKey() {
return "started animation at " + position;
}
+ /**
+ * Getter for the position
+ * @return IntPoint position
+ */
public IntPoint getPosition() {return position;}
+ /**
+ * Getter for myTurn
+ * @return boolean myTurn
+ */
public boolean isMyTurn() {return myTurn;}
-
-
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/StartBattleMessage.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/StartBattleMessage.java
index 5a0ca692..a34fd0b0 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/StartBattleMessage.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/StartBattleMessage.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.message.server;
import com.jme3.network.serializing.Serializable;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/SwitchToBattleState.java b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/SwitchToBattleState.java
index 2de7deca..e3cc91e4 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/message/server/SwitchToBattleState.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/message/server/SwitchToBattleState.java
@@ -2,14 +2,24 @@
import com.jme3.network.serializing.Serializable;
+/**
+ * A message sent by the server to tell client to switch to battle state
+ */
@Serializable
-public class SwitchToBattleState extends ServerMessage{
+public class SwitchToBattleState extends ServerMessage {
private boolean myTurn;
- private SwitchToBattleState(){/*do nothing */}
+ /**
+ * Default constructor for serialization purposes.
+ */
+ private SwitchToBattleState() {/*do nothing */}
- public SwitchToBattleState(boolean turn){
+ /**
+ * Constructs a SwitchToBattleState message
+ * @param turn boolean it's client's turn
+ */
+ public SwitchToBattleState(boolean turn) {
myTurn = turn;
}
@@ -34,7 +44,9 @@ public String getInfoTextKey() {
return "switched to battle state";
}
- public boolean getTurn(){return myTurn;}
-
-
+ /**
+ * Getter for myTurn
+ * @return boolean myTurn
+ */
+ public boolean getTurn() {return myTurn;}
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/Battleship.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/Battleship.java
index 7b9e583b..c34fe6a6 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/Battleship.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/Battleship.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model;
import com.jme3.network.serializing.Serializable;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/IntPoint.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/IntPoint.java
index a7b148ff..33818620 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/IntPoint.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/IntPoint.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model;
import com.jme3.network.serializing.Serializable;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/IntPosition.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/IntPosition.java
index 59771b7a..e4669758 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/IntPosition.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/IntPosition.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model;
/**
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/Item.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/Item.java
index a2ef8690..b099326e 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/Item.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/Item.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model;
/**
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/Rotation.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/Rotation.java
index 3107de71..696071e5 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/Rotation.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/Rotation.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model;
import java.io.Serializable;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/Shell.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/Shell.java
index f4b8c700..d119154d 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/Shell.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/Shell.java
@@ -8,7 +8,7 @@ public class Shell implements Item {
private int y;
/**
- * constructs a new shell object
+ * Constructs a new Shell object
*
* @param position the end position of the shell
*/
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/ShipMap.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/ShipMap.java
index 79087f78..ece36a31 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/ShipMap.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/ShipMap.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model;
import pp.battleship.notification.GameEvent;
@@ -92,8 +85,9 @@ public void add(Shot shot) {
}
/**
- * Registers a shell on the map
- * @param shell the shell to be registered
+ * Registers a Shell on the map
+ *
+ * @param shell the Shell to be registered
*/
public void add(Shell shell) {
addItem(shell);
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/Shot.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/Shot.java
index c999feed..d8e876c0 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/Shot.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/Shot.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model;
import com.jme3.network.serializing.Serializable;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/Visitor.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/Visitor.java
index 1046142b..78f6c142 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/Visitor.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/Visitor.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model;
/**
@@ -29,5 +22,10 @@ public interface Visitor {
*/
T visit(Battleship ship);
+ /**
+ * Visits a Shell element
+ * @param shell the Shell element to visit
+ * @return the result of visiting the Shell element
+ */
T visit(Shell shell);
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/VoidVisitor.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/VoidVisitor.java
index 3bde11a1..695069e5 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/VoidVisitor.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/VoidVisitor.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model;
/**
@@ -26,5 +19,9 @@ public interface VoidVisitor {
*/
void visit(Battleship ship);
+ /**
+ * Visits a Shell element
+ * @param shell the Shell to be visited
+ */
void visit(Shell shell);
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/dto/BattleshipDTO.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/dto/BattleshipDTO.java
index 66f45bf7..a6d73cb0 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/dto/BattleshipDTO.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/dto/BattleshipDTO.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model.dto;
import pp.battleship.model.Battleship;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/model/dto/ShipMapDTO.java b/Projekte/battleship/model/src/main/java/pp/battleship/model/dto/ShipMapDTO.java
index 294b6e94..32c73ef2 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/model/dto/ShipMapDTO.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/model/dto/ShipMapDTO.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.model.dto;
import com.google.gson.Gson;
@@ -117,15 +110,15 @@ public static ShipMapDTO loadFrom(File file) throws IOException {
/**
* This method returns the width of the DTO
+ *
* @return with of DTO
*/
-
public int getWidth() {return width;}
/**
* This method returns the height of the DTO
+ *
* @return height of DTO
*/
-
- public int getHeight(){return height;}
+ public int getHeight() {return height;}
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/ClientStateEvent.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/ClientStateEvent.java
index dbb0fcd7..8d88f105 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/ClientStateEvent.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/ClientStateEvent.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.notification;
/**
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEvent.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEvent.java
index 649e9c24..7da85760 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEvent.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEvent.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.notification;
/**
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEventBroker.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEventBroker.java
index 818a16b1..5866fd30 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEventBroker.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEventBroker.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.notification;
/**
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEventListener.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEventListener.java
index 5b431546..182d5e9a 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEventListener.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/GameEventListener.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.notification;
/**
@@ -52,5 +45,4 @@ default void receivedEvent(ClientStateEvent event) { /* do nothing */ }
* @param event the received Event
*/
default void receivedEvent(MusicEvent event) { /* do nothing */ }
-
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/InfoTextEvent.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/InfoTextEvent.java
index 28ffe9ef..7e72940f 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/InfoTextEvent.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/InfoTextEvent.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.notification;
/**
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/ItemAddedEvent.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/ItemAddedEvent.java
index 57e3d4c9..dee034f1 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/ItemAddedEvent.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/ItemAddedEvent.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.notification;
import pp.battleship.model.Item;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/ItemRemovedEvent.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/ItemRemovedEvent.java
index e42c7baf..1cf40e36 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/ItemRemovedEvent.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/ItemRemovedEvent.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.notification;
import pp.battleship.model.Item;
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/Music.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/Music.java
index 7c1d9036..7ce0d496 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/Music.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/Music.java
@@ -5,19 +5,19 @@
*/
public enum Music {
/**
- * menu music
+ * Menu music
*/
MENU_THEME,
/**
- * ingame music
+ * In game music
*/
GAME_THEME,
/**
- * music for a victory
+ * Victory music
*/
VICTORY_THEME,
/**
- * music for a loss
+ * Loss music
*/
LOSE_THEME,
}
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/Sound.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/Sound.java
index b3acb2c8..52691a46 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/Sound.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/Sound.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.notification;
/**
diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/notification/SoundEvent.java b/Projekte/battleship/model/src/main/java/pp/battleship/notification/SoundEvent.java
index c4d5fbdd..165cdee0 100644
--- a/Projekte/battleship/model/src/main/java/pp/battleship/notification/SoundEvent.java
+++ b/Projekte/battleship/model/src/main/java/pp/battleship/notification/SoundEvent.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.notification;
/**
diff --git a/Projekte/battleship/model/src/main/resources/battleship.properties b/Projekte/battleship/model/src/main/resources/battleship.properties
index c21bc46c..7838e916 100644
--- a/Projekte/battleship/model/src/main/resources/battleship.properties
+++ b/Projekte/battleship/model/src/main/resources/battleship.properties
@@ -37,9 +37,9 @@ dialog.error=Error
dialog.question=Question
port.must.be.integer=Port must be an integer number
map.doesnt.fit=The map doesn't fit to this game
-map.invalid = map is invalid
+map.invalid=map is invalid
ships.dont.fit.the.map=Ships are out of bounds
-menu.music.toggle = Music on/off
-menu.music.volume = Volume
-start.own.server = start server
+menu.music.toggle=Music on/off
+menu.music.volume=Volume
+start.own.server=start server
diff --git a/Projekte/battleship/model/src/main/resources/battleship_de.properties b/Projekte/battleship/model/src/main/resources/battleship_de.properties
index 5892577d..bd91d6a8 100644
--- a/Projekte/battleship/model/src/main/resources/battleship_de.properties
+++ b/Projekte/battleship/model/src/main/resources/battleship_de.properties
@@ -37,9 +37,9 @@ dialog.error=Fehler
dialog.question=Frage
port.must.be.integer=Der Port muss eine ganze Zahl sein
map.doesnt.fit=Diese Karte passt nicht zu diesem Spiel
-map.invalid = Karte ungültig
+map.invalid=Karte ungültig
ships.dont.fit.the.map=Schiffe sind außerhalb der Map
-menu.music.toggle = Musik an/aus
-menu.music.volume = Lautstärke
-start.own.server = Server starten
+menu.music.toggle=Musik an/aus
+menu.music.volume=Lautstärke
+start.own.server=Server starten
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/client/EditorTest.java b/Projekte/battleship/model/src/test/java/pp/battleship/client/EditorTest.java
index 4efb0843..ce30ed8d 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/client/EditorTest.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/client/EditorTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.client;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/AbstractClientGameTest.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/AbstractClientGameTest.java
index b2f7e739..5dfb562e 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/AbstractClientGameTest.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/AbstractClientGameTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame1Player1Test.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame1Player1Test.java
index 3cc236bd..144944c5 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame1Player1Test.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame1Player1Test.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame1Player2Test.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame1Player2Test.java
index 90d6ec57..8e4a58ab 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame1Player2Test.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame1Player2Test.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame2Player1Test.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame2Player1Test.java
index 06677666..84ce5fa8 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame2Player1Test.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame2Player1Test.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame2Player2Test.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame2Player2Test.java
index 6f42cc50..ee8c85a9 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame2Player2Test.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGame2Player2Test.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGameLogicTest.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGameLogicTest.java
index 0806bed9..25a3cebf 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGameLogicTest.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/client/ClientGameLogicTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.client;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/server/AbstractServerGameTest.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/server/AbstractServerGameTest.java
index a5fb4af3..8fdaff8c 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/server/AbstractServerGameTest.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/server/AbstractServerGameTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.server;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGame1Test.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGame1Test.java
index 81256220..34f67b11 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGame1Test.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGame1Test.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.server;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGame2Test.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGame2Test.java
index c90ae8b7..49742928 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGame2Test.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGame2Test.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.server;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGameLogicTest.java b/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGameLogicTest.java
index a0a83f8a..b20ea26c 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGameLogicTest.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/game/server/ServerGameLogicTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.game.server;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/model/BattleshipTest.java b/Projekte/battleship/model/src/test/java/pp/battleship/model/BattleshipTest.java
index 3bdc9f6b..5e92b974 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/model/BattleshipTest.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/model/BattleshipTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.model;
diff --git a/Projekte/battleship/model/src/test/java/pp/battleship/model/ShipMapTest.java b/Projekte/battleship/model/src/test/java/pp/battleship/model/ShipMapTest.java
index fc3b6bc0..3b5a196c 100644
--- a/Projekte/battleship/model/src/test/java/pp/battleship/model/ShipMapTest.java
+++ b/Projekte/battleship/model/src/test/java/pp/battleship/model/ShipMapTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.battleship.model;
diff --git a/Projekte/battleship/server/server.properties b/Projekte/battleship/server/server.properties
index 9f168a68..9fd1318a 100644
--- a/Projekte/battleship/server/server.properties
+++ b/Projekte/battleship/server/server.properties
@@ -1,5 +1,4 @@
-########################################
-## Programming project code
+########################################## Programming project code
## UniBw M, 2022, 2023, 2024
## www.unibw.de/inf2
## (c) Mark Minas (mark.minas@unibw.de)
diff --git a/Projekte/battleship/server/src/main/java/pp/battleship/server/BattleshipServer.java b/Projekte/battleship/server/src/main/java/pp/battleship/server/BattleshipServer.java
index b4b276bc..cba4b76b 100644
--- a/Projekte/battleship/server/src/main/java/pp/battleship/server/BattleshipServer.java
+++ b/Projekte/battleship/server/src/main/java/pp/battleship/server/BattleshipServer.java
@@ -1,10 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.server;
import com.jme3.network.ConnectionListener;
@@ -81,12 +74,18 @@ public static void main(String[] args) {
logic = new ServerGameLogic(this, config);
}
+ /**
+ * Runs a server
+ */
public void run() {
startServer();
while (true)
processNextMessage();
}
+ /**
+ * Starts a server
+ */
private void startServer() {
try {
LOGGER.log(Level.INFO, "Starting server..."); //NON-NLS
@@ -102,6 +101,9 @@ private void startServer() {
}
}
+ /**
+ * Processes next received message
+ */
private void processNextMessage() {
try {
pendingMessages.take().process(logic);
@@ -112,6 +114,9 @@ private void processNextMessage() {
}
}
+ /**
+ * Registers all serializable classes
+ */
private void initializeSerializables() {
Serializer.registerClass(GameDetails.class);
Serializer.registerClass(StartBattleMessage.class);
@@ -126,6 +131,9 @@ private void initializeSerializables() {
Serializer.registerClass(SwitchToBattleState.class);
}
+ /**
+ * Registers all listeners
+ */
private void registerListeners() {
myServer.addMessageListener(this, MapMessage.class);
myServer.addMessageListener(this, ShootMessage.class);
@@ -133,6 +141,11 @@ private void registerListeners() {
myServer.addConnectionListener(this);
}
+ /**
+ * Handles a received message
+ * @param source the connection the message comes from
+ * @param message the received message
+ */
@Override
public void messageReceived(HostedConnection source, Message message) {
LOGGER.log(Level.INFO, "message received from {0}: {1}", source.getId(), message); //NON-NLS
@@ -140,12 +153,22 @@ public void messageReceived(HostedConnection source, Message message) {
pendingMessages.add(new ReceivedMessage(clientMessage, source.getId()));
}
+ /**
+ * Adds a new connection to a server
+ * @param server the server to add the connection to
+ * @param hostedConnection the connection to be added
+ */
@Override
public void connectionAdded(Server server, HostedConnection hostedConnection) {
LOGGER.log(Level.INFO, "new connection {0}", hostedConnection); //NON-NLS
logic.addPlayer(hostedConnection.getId());
}
+ /**
+ * Removes a standing connection from a server
+ * @param server the server to add the connection to
+ * @param hostedConnection the connection to be added
+ */
@Override
public void connectionRemoved(Server server, HostedConnection hostedConnection) {
LOGGER.log(Level.INFO, "connection closed: {0}", hostedConnection); //NON-NLS
@@ -158,6 +181,10 @@ public void connectionRemoved(Server server, HostedConnection hostedConnection)
}
}
+ /**
+ * Shuts down the server and terminates the application with the given exit code
+ * @param exitValue the exit status code
+ */
private void exit(int exitValue) { //NON-NLS
LOGGER.log(Level.INFO, "close request"); //NON-NLS
if (myServer != null)
diff --git a/Projekte/battleship/server/src/main/java/pp/battleship/server/ReceivedMessage.java b/Projekte/battleship/server/src/main/java/pp/battleship/server/ReceivedMessage.java
index dedbda23..ea542d2d 100644
--- a/Projekte/battleship/server/src/main/java/pp/battleship/server/ReceivedMessage.java
+++ b/Projekte/battleship/server/src/main/java/pp/battleship/server/ReceivedMessage.java
@@ -1,15 +1,13 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
-
package pp.battleship.server;
import pp.battleship.message.client.ClientInterpreter;
import pp.battleship.message.client.ClientMessage;
+/**
+ * Represents a message received from a client
+ * @param message the received message
+ * @param from the ID of the client that sent the message
+ */
record ReceivedMessage(ClientMessage message, int from) {
void process(ClientInterpreter interpreter) {
message.accept(interpreter, from);
diff --git a/Projekte/common/src/main/java/pp/util/Angle.java b/Projekte/common/src/main/java/pp/util/Angle.java
index f3399a78..bbfcc9d1 100644
--- a/Projekte/common/src/main/java/pp/util/Angle.java
+++ b/Projekte/common/src/main/java/pp/util/Angle.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/FloatMath.java b/Projekte/common/src/main/java/pp/util/FloatMath.java
index 3e00a284..27720587 100644
--- a/Projekte/common/src/main/java/pp/util/FloatMath.java
+++ b/Projekte/common/src/main/java/pp/util/FloatMath.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/FloatPoint.java b/Projekte/common/src/main/java/pp/util/FloatPoint.java
index c43a3f31..b4017f0c 100644
--- a/Projekte/common/src/main/java/pp/util/FloatPoint.java
+++ b/Projekte/common/src/main/java/pp/util/FloatPoint.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/Interval.java b/Projekte/common/src/main/java/pp/util/Interval.java
index 77c7ff9d..720a13ad 100644
--- a/Projekte/common/src/main/java/pp/util/Interval.java
+++ b/Projekte/common/src/main/java/pp/util/Interval.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/Position.java b/Projekte/common/src/main/java/pp/util/Position.java
index c46928f4..8ac7043b 100644
--- a/Projekte/common/src/main/java/pp/util/Position.java
+++ b/Projekte/common/src/main/java/pp/util/Position.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/PreferencesUtils.java b/Projekte/common/src/main/java/pp/util/PreferencesUtils.java
index 40f032a6..d27a25c1 100644
--- a/Projekte/common/src/main/java/pp/util/PreferencesUtils.java
+++ b/Projekte/common/src/main/java/pp/util/PreferencesUtils.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/RandomPositionIterator.java b/Projekte/common/src/main/java/pp/util/RandomPositionIterator.java
index 9d6d00a1..54c4c52f 100644
--- a/Projekte/common/src/main/java/pp/util/RandomPositionIterator.java
+++ b/Projekte/common/src/main/java/pp/util/RandomPositionIterator.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/Segment.java b/Projekte/common/src/main/java/pp/util/Segment.java
index c5f42525..18438df8 100644
--- a/Projekte/common/src/main/java/pp/util/Segment.java
+++ b/Projekte/common/src/main/java/pp/util/Segment.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/SegmentLike.java b/Projekte/common/src/main/java/pp/util/SegmentLike.java
index 41edea26..5ef7c167 100644
--- a/Projekte/common/src/main/java/pp/util/SegmentLike.java
+++ b/Projekte/common/src/main/java/pp/util/SegmentLike.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/Util.java b/Projekte/common/src/main/java/pp/util/Util.java
index acebd346..3e6eabb0 100644
--- a/Projekte/common/src/main/java/pp/util/Util.java
+++ b/Projekte/common/src/main/java/pp/util/Util.java
@@ -1,9 +1,3 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
package pp.util;
diff --git a/Projekte/common/src/main/java/pp/util/config/Config.java b/Projekte/common/src/main/java/pp/util/config/Config.java
index 57121989..3825de8b 100644
--- a/Projekte/common/src/main/java/pp/util/config/Config.java
+++ b/Projekte/common/src/main/java/pp/util/config/Config.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util.config;
diff --git a/Projekte/common/src/test/java/pp/util/AngleTest.java b/Projekte/common/src/test/java/pp/util/AngleTest.java
index 28f333e3..85004d2f 100644
--- a/Projekte/common/src/test/java/pp/util/AngleTest.java
+++ b/Projekte/common/src/test/java/pp/util/AngleTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/test/java/pp/util/IntervalTest.java b/Projekte/common/src/test/java/pp/util/IntervalTest.java
index 2f367020..dc998ba6 100644
--- a/Projekte/common/src/test/java/pp/util/IntervalTest.java
+++ b/Projekte/common/src/test/java/pp/util/IntervalTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/test/java/pp/util/RandomPositionIteratorTest.java b/Projekte/common/src/test/java/pp/util/RandomPositionIteratorTest.java
index 44eee8e7..a359a623 100644
--- a/Projekte/common/src/test/java/pp/util/RandomPositionIteratorTest.java
+++ b/Projekte/common/src/test/java/pp/util/RandomPositionIteratorTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/test/java/pp/util/SegmentTest.java b/Projekte/common/src/test/java/pp/util/SegmentTest.java
index edae4faa..3e7ba871 100644
--- a/Projekte/common/src/test/java/pp/util/SegmentTest.java
+++ b/Projekte/common/src/test/java/pp/util/SegmentTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util;
diff --git a/Projekte/common/src/test/java/pp/util/config/ConfigTest.java b/Projekte/common/src/test/java/pp/util/config/ConfigTest.java
index 99fefbbe..1ed1a982 100644
--- a/Projekte/common/src/test/java/pp/util/config/ConfigTest.java
+++ b/Projekte/common/src/test/java/pp/util/config/ConfigTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util.config;
diff --git a/Projekte/common/src/test/java/pp/util/config/TestConfig.java b/Projekte/common/src/test/java/pp/util/config/TestConfig.java
index 0ede0bda..21625b8b 100644
--- a/Projekte/common/src/test/java/pp/util/config/TestConfig.java
+++ b/Projekte/common/src/test/java/pp/util/config/TestConfig.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.util.config;
diff --git a/Projekte/jme-common/src/main/java/pp/dialog/Dialog.java b/Projekte/jme-common/src/main/java/pp/dialog/Dialog.java
index 188952af..214a2424 100644
--- a/Projekte/jme-common/src/main/java/pp/dialog/Dialog.java
+++ b/Projekte/jme-common/src/main/java/pp/dialog/Dialog.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.dialog;
diff --git a/Projekte/jme-common/src/main/java/pp/dialog/DialogBuilder.java b/Projekte/jme-common/src/main/java/pp/dialog/DialogBuilder.java
index 33228bc3..71497a10 100644
--- a/Projekte/jme-common/src/main/java/pp/dialog/DialogBuilder.java
+++ b/Projekte/jme-common/src/main/java/pp/dialog/DialogBuilder.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.dialog;
diff --git a/Projekte/jme-common/src/main/java/pp/dialog/DialogManager.java b/Projekte/jme-common/src/main/java/pp/dialog/DialogManager.java
index ca0069e9..1733bd9c 100644
--- a/Projekte/jme-common/src/main/java/pp/dialog/DialogManager.java
+++ b/Projekte/jme-common/src/main/java/pp/dialog/DialogManager.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.dialog;
diff --git a/Projekte/jme-common/src/main/java/pp/dialog/SimpleDialog.java b/Projekte/jme-common/src/main/java/pp/dialog/SimpleDialog.java
index 8dd3be37..a5b5589c 100644
--- a/Projekte/jme-common/src/main/java/pp/dialog/SimpleDialog.java
+++ b/Projekte/jme-common/src/main/java/pp/dialog/SimpleDialog.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.dialog;
diff --git a/Projekte/jme-common/src/main/java/pp/dialog/StateCheckboxModel.java b/Projekte/jme-common/src/main/java/pp/dialog/StateCheckboxModel.java
index 7cee7ddf..369b32a2 100644
--- a/Projekte/jme-common/src/main/java/pp/dialog/StateCheckboxModel.java
+++ b/Projekte/jme-common/src/main/java/pp/dialog/StateCheckboxModel.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.dialog;
diff --git a/Projekte/jme-common/src/main/java/pp/dialog/TextInputDialog.java b/Projekte/jme-common/src/main/java/pp/dialog/TextInputDialog.java
index bed26dcb..a98408fa 100644
--- a/Projekte/jme-common/src/main/java/pp/dialog/TextInputDialog.java
+++ b/Projekte/jme-common/src/main/java/pp/dialog/TextInputDialog.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.dialog;
diff --git a/Projekte/jme-common/src/main/java/pp/graphics/Draw.java b/Projekte/jme-common/src/main/java/pp/graphics/Draw.java
index 52b017e0..538a872b 100644
--- a/Projekte/jme-common/src/main/java/pp/graphics/Draw.java
+++ b/Projekte/jme-common/src/main/java/pp/graphics/Draw.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.graphics;
diff --git a/Projekte/jme-common/src/main/java/pp/view/ModelViewSynchronizer.java b/Projekte/jme-common/src/main/java/pp/view/ModelViewSynchronizer.java
index 02538ce8..c53d1466 100644
--- a/Projekte/jme-common/src/main/java/pp/view/ModelViewSynchronizer.java
+++ b/Projekte/jme-common/src/main/java/pp/view/ModelViewSynchronizer.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.view;
diff --git a/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-32.fnt b/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-32.fnt
index 85f5d76c..96c482d4 100644
--- a/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-32.fnt
+++ b/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-32.fnt
@@ -2,176 +2,176 @@ info face="Metropolis Bold" size=32 bold=0 italic=0 charset="" unicode=0 stretch
common lineHeight=33 base=26 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="Metropolis-Bold-32.png"
chars count=170
-char id=0 x=0 y=0 width=14 height=35 xoffset=1 yoffset=-1 xadvance=16 page=0 chnl=0
-char id=10 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=0 page=0 chnl=0
-char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=0
-char id=33 x=359 y=117 width=9 height=24 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
-char id=34 x=44 y=165 width=16 height=12 xoffset=0 yoffset=3 xadvance=17 page=0 chnl=0
-char id=35 x=422 y=117 width=23 height=24 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0
-char id=36 x=281 y=35 width=22 height=29 xoffset=-1 yoffset=1 xadvance=20 page=0 chnl=0
-char id=37 x=395 y=117 width=27 height=24 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
-char id=38 x=280 y=66 width=23 height=25 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0
-char id=39 x=503 y=141 width=8 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=0
-char id=40 x=48 y=35 width=13 height=30 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
-char id=41 x=61 y=35 width=12 height=30 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
-char id=42 x=490 y=141 width=13 height=16 xoffset=0 yoffset=1 xadvance=13 page=0 chnl=0
-char id=43 x=471 y=141 width=19 height=18 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0
-char id=44 x=16 y=165 width=9 height=13 xoffset=0 yoffset=19 xadvance=9 page=0 chnl=0
-char id=45 x=142 y=165 width=12 height=6 xoffset=0 yoffset=14 xadvance=12 page=0 chnl=0
-char id=46 x=85 y=165 width=9 height=8 xoffset=0 yoffset=19 xadvance=9 page=0 chnl=0
-char id=47 x=243 y=35 width=19 height=29 xoffset=-2 yoffset=1 xadvance=15 page=0 chnl=0
-char id=48 x=336 y=117 width=23 height=24 xoffset=0 yoffset=3 xadvance=23 page=0 chnl=0
-char id=49 x=201 y=117 width=13 height=24 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=0
-char id=50 x=214 y=117 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=51 x=239 y=66 width=21 height=25 xoffset=-1 yoffset=3 xadvance=19 page=0 chnl=0
-char id=52 x=233 y=117 width=22 height=24 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=53 x=260 y=66 width=20 height=25 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=54 x=255 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
-char id=55 x=276 y=117 width=19 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
-char id=56 x=295 y=117 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=57 x=315 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
-char id=58 x=375 y=141 width=9 height=19 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
-char id=59 x=386 y=117 width=9 height=24 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
-char id=60 x=384 y=141 width=18 height=19 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0
-char id=61 x=25 y=165 width=19 height=13 xoffset=0 yoffset=9 xadvance=19 page=0 chnl=0
-char id=62 x=402 y=141 width=18 height=19 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
-char id=63 x=368 y=117 width=18 height=24 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=0
-char id=64 x=303 y=35 width=28 height=28 xoffset=0 yoffset=3 xadvance=28 page=0 chnl=0
-char id=65 x=21 y=92 width=26 height=24 xoffset=-1 yoffset=3 xadvance=24 page=0 chnl=0
-char id=66 x=47 y=92 width=22 height=24 xoffset=1 yoffset=3 xadvance=22 page=0 chnl=0
-char id=67 x=69 y=92 width=23 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
-char id=68 x=92 y=92 width=23 height=24 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
-char id=69 x=115 y=92 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=70 x=135 y=92 width=20 height=24 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
-char id=71 x=155 y=92 width=23 height=24 xoffset=0 yoffset=3 xadvance=24 page=0 chnl=0
-char id=72 x=178 y=92 width=22 height=24 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
-char id=73 x=200 y=92 width=7 height=24 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
-char id=74 x=207 y=92 width=18 height=24 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=0
-char id=75 x=225 y=92 width=23 height=24 xoffset=1 yoffset=3 xadvance=22 page=0 chnl=0
-char id=76 x=248 y=92 width=18 height=24 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
-char id=77 x=266 y=92 width=26 height=24 xoffset=1 yoffset=3 xadvance=28 page=0 chnl=0
-char id=78 x=292 y=92 width=23 height=24 xoffset=1 yoffset=3 xadvance=25 page=0 chnl=0
-char id=79 x=315 y=92 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
-char id=80 x=341 y=92 width=21 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=81 x=362 y=92 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
-char id=82 x=388 y=92 width=21 height=24 xoffset=1 yoffset=3 xadvance=22 page=0 chnl=0
-char id=83 x=409 y=92 width=22 height=24 xoffset=-1 yoffset=3 xadvance=20 page=0 chnl=0
-char id=84 x=431 y=92 width=21 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=85 x=452 y=92 width=23 height=24 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
-char id=86 x=475 y=92 width=26 height=24 xoffset=-1 yoffset=3 xadvance=24 page=0 chnl=0
-char id=87 x=0 y=117 width=36 height=24 xoffset=-1 yoffset=3 xadvance=35 page=0 chnl=0
-char id=88 x=36 y=117 width=25 height=24 xoffset=-1 yoffset=3 xadvance=23 page=0 chnl=0
-char id=89 x=61 y=117 width=25 height=24 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0
-char id=90 x=86 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
-char id=91 x=73 y=35 width=11 height=30 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
-char id=92 x=262 y=35 width=19 height=29 xoffset=-2 yoffset=1 xadvance=15 page=0 chnl=0
-char id=93 x=84 y=35 width=12 height=30 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0
-char id=94 x=60 y=165 width=16 height=11 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
-char id=95 x=154 y=165 width=22 height=5 xoffset=-2 yoffset=27 xadvance=19 page=0 chnl=0
-char id=96 x=94 y=165 width=10 height=7 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
-char id=97 x=128 y=141 width=18 height=19 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=0
-char id=98 x=107 y=117 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=99 x=146 y=141 width=18 height=19 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0
-char id=100 x=127 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
-char id=101 x=164 y=141 width=19 height=19 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=0
-char id=102 x=357 y=35 width=14 height=26 xoffset=-1 yoffset=1 xadvance=12 page=0 chnl=0
-char id=103 x=157 y=66 width=20 height=25 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=0
-char id=104 x=148 y=117 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=105 x=349 y=35 width=8 height=27 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=0
-char id=106 x=14 y=0 width=12 height=33 xoffset=-3 yoffset=0 xadvance=9 page=0 chnl=0
-char id=107 x=167 y=117 width=20 height=24 xoffset=0 yoffset=3 xadvance=18 page=0 chnl=0
-char id=108 x=501 y=92 width=7 height=24 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
-char id=109 x=183 y=141 width=29 height=19 xoffset=0 yoffset=8 xadvance=30 page=0 chnl=0
-char id=110 x=212 y=141 width=19 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
-char id=111 x=231 y=141 width=21 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
-char id=112 x=177 y=66 width=20 height=25 xoffset=1 yoffset=8 xadvance=21 page=0 chnl=0
-char id=113 x=197 y=66 width=21 height=25 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=0
-char id=114 x=491 y=117 width=13 height=20 xoffset=1 yoffset=7 xadvance=13 page=0 chnl=0
-char id=115 x=252 y=141 width=17 height=19 xoffset=-1 yoffset=8 xadvance=16 page=0 chnl=0
-char id=116 x=187 y=117 width=14 height=24 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=0
-char id=117 x=269 y=141 width=19 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
-char id=118 x=288 y=141 width=21 height=19 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0
-char id=119 x=309 y=141 width=29 height=19 xoffset=-1 yoffset=8 xadvance=27 page=0 chnl=0
-char id=120 x=338 y=141 width=20 height=19 xoffset=-1 yoffset=8 xadvance=18 page=0 chnl=0
-char id=121 x=218 y=66 width=21 height=25 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0
-char id=122 x=358 y=141 width=17 height=19 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0
-char id=123 x=96 y=35 width=13 height=30 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
-char id=124 x=502 y=0 width=6 height=29 xoffset=2 yoffset=1 xadvance=10 page=0 chnl=0
-char id=125 x=109 y=35 width=13 height=30 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
-char id=126 x=104 y=165 width=14 height=7 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=0
-char id=161 x=497 y=35 width=8 height=25 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=0
-char id=162 x=303 y=66 width=18 height=25 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=0
-char id=163 x=445 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
-char id=165 x=466 y=117 width=25 height=24 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0
-char id=168 x=118 y=165 width=14 height=7 xoffset=1 yoffset=2 xadvance=15 page=0 chnl=0
-char id=175 x=176 y=165 width=14 height=5 xoffset=1 yoffset=4 xadvance=15 page=0 chnl=0
-char id=180 x=132 y=165 width=10 height=7 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
-char id=184 x=76 y=165 width=9 height=9 xoffset=1 yoffset=25 xadvance=11 page=0 chnl=0
-char id=191 x=321 y=66 width=18 height=25 xoffset=-1 yoffset=8 xadvance=16 page=0 chnl=0
-char id=192 x=94 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=193 x=120 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=194 x=146 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=195 x=172 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=196 x=198 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=197 x=26 y=0 width=26 height=33 xoffset=-1 yoffset=-6 xadvance=24 page=0 chnl=0
-char id=198 x=0 y=141 width=36 height=24 xoffset=-1 yoffset=3 xadvance=34 page=0 chnl=0
-char id=199 x=122 y=35 width=23 height=30 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
-char id=200 x=224 y=0 width=20 height=31 xoffset=1 yoffset=-4 xadvance=21 page=0 chnl=0
-char id=201 x=244 y=0 width=20 height=31 xoffset=1 yoffset=-4 xadvance=21 page=0 chnl=0
-char id=202 x=264 y=0 width=20 height=31 xoffset=1 yoffset=-4 xadvance=21 page=0 chnl=0
-char id=203 x=284 y=0 width=20 height=31 xoffset=1 yoffset=-4 xadvance=21 page=0 chnl=0
-char id=204 x=304 y=0 width=12 height=31 xoffset=-3 yoffset=-4 xadvance=9 page=0 chnl=0
-char id=205 x=316 y=0 width=12 height=31 xoffset=1 yoffset=-4 xadvance=9 page=0 chnl=0
-char id=206 x=328 y=0 width=13 height=31 xoffset=-2 yoffset=-4 xadvance=9 page=0 chnl=0
-char id=207 x=341 y=0 width=17 height=31 xoffset=-3 yoffset=-4 xadvance=9 page=0 chnl=0
-char id=208 x=36 y=141 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
-char id=209 x=358 y=0 width=23 height=31 xoffset=1 yoffset=-4 xadvance=25 page=0 chnl=0
-char id=210 x=381 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
-char id=211 x=407 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
-char id=212 x=145 y=35 width=26 height=30 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0
-char id=213 x=171 y=35 width=26 height=30 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0
-char id=214 x=197 y=35 width=26 height=30 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0
-char id=215 x=0 y=165 width=16 height=16 xoffset=1 yoffset=7 xadvance=18 page=0 chnl=0
-char id=216 x=62 y=141 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
-char id=217 x=433 y=0 width=23 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=218 x=456 y=0 width=23 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=219 x=479 y=0 width=23 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=220 x=0 y=35 width=23 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=221 x=23 y=35 width=25 height=31 xoffset=-1 yoffset=-4 xadvance=22 page=0 chnl=0
-char id=222 x=88 y=141 width=21 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=223 x=339 y=66 width=19 height=25 xoffset=1 yoffset=2 xadvance=20 page=0 chnl=0
-char id=224 x=371 y=35 width=18 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
-char id=225 x=389 y=35 width=18 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
-char id=226 x=358 y=66 width=18 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
-char id=227 x=376 y=66 width=18 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
-char id=228 x=394 y=66 width=18 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
-char id=229 x=331 y=35 width=18 height=28 xoffset=0 yoffset=-1 xadvance=19 page=0 chnl=0
-char id=230 x=420 y=141 width=30 height=19 xoffset=0 yoffset=8 xadvance=30 page=0 chnl=0
-char id=231 x=412 y=66 width=18 height=25 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0
-char id=232 x=407 y=35 width=19 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
-char id=233 x=426 y=35 width=19 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
-char id=234 x=430 y=66 width=19 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
-char id=235 x=449 y=66 width=19 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
-char id=236 x=445 y=35 width=12 height=26 xoffset=-3 yoffset=1 xadvance=9 page=0 chnl=0
-char id=237 x=457 y=35 width=12 height=26 xoffset=1 yoffset=1 xadvance=9 page=0 chnl=0
-char id=238 x=469 y=35 width=13 height=26 xoffset=-2 yoffset=1 xadvance=9 page=0 chnl=0
-char id=239 x=482 y=35 width=15 height=26 xoffset=-3 yoffset=1 xadvance=9 page=0 chnl=0
-char id=240 x=0 y=66 width=20 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=241 x=20 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=242 x=39 y=66 width=21 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=243 x=60 y=66 width=21 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=244 x=468 y=66 width=21 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
-char id=245 x=489 y=66 width=21 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
-char id=246 x=0 y=92 width=21 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
-char id=247 x=109 y=141 width=19 height=20 xoffset=0 yoffset=5 xadvance=19 page=0 chnl=0
-char id=248 x=450 y=141 width=21 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
-char id=249 x=81 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=250 x=100 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=251 x=119 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=252 x=138 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=253 x=52 y=0 width=21 height=32 xoffset=-1 yoffset=1 xadvance=19 page=0 chnl=0
-char id=254 x=223 y=35 width=20 height=30 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=255 x=73 y=0 width=21 height=32 xoffset=-1 yoffset=1 xadvance=19 page=0 chnl=0
+char id=0 x=0 y=0 width=14 height=35 xoffset=1 yoffset=-1 xadvance=16 page=0 chnl=0
+char id=10 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=0 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=0
+char id=33 x=359 y=117 width=9 height=24 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
+char id=34 x=44 y=165 width=16 height=12 xoffset=0 yoffset=3 xadvance=17 page=0 chnl=0
+char id=35 x=422 y=117 width=23 height=24 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0
+char id=36 x=281 y=35 width=22 height=29 xoffset=-1 yoffset=1 xadvance=20 page=0 chnl=0
+char id=37 x=395 y=117 width=27 height=24 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
+char id=38 x=280 y=66 width=23 height=25 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0
+char id=39 x=503 y=141 width=8 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=0
+char id=40 x=48 y=35 width=13 height=30 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
+char id=41 x=61 y=35 width=12 height=30 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
+char id=42 x=490 y=141 width=13 height=16 xoffset=0 yoffset=1 xadvance=13 page=0 chnl=0
+char id=43 x=471 y=141 width=19 height=18 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0
+char id=44 x=16 y=165 width=9 height=13 xoffset=0 yoffset=19 xadvance=9 page=0 chnl=0
+char id=45 x=142 y=165 width=12 height=6 xoffset=0 yoffset=14 xadvance=12 page=0 chnl=0
+char id=46 x=85 y=165 width=9 height=8 xoffset=0 yoffset=19 xadvance=9 page=0 chnl=0
+char id=47 x=243 y=35 width=19 height=29 xoffset=-2 yoffset=1 xadvance=15 page=0 chnl=0
+char id=48 x=336 y=117 width=23 height=24 xoffset=0 yoffset=3 xadvance=23 page=0 chnl=0
+char id=49 x=201 y=117 width=13 height=24 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=0
+char id=50 x=214 y=117 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=51 x=239 y=66 width=21 height=25 xoffset=-1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=52 x=233 y=117 width=22 height=24 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=53 x=260 y=66 width=20 height=25 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=54 x=255 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=55 x=276 y=117 width=19 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
+char id=56 x=295 y=117 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=57 x=315 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=58 x=375 y=141 width=9 height=19 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
+char id=59 x=386 y=117 width=9 height=24 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
+char id=60 x=384 y=141 width=18 height=19 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0
+char id=61 x=25 y=165 width=19 height=13 xoffset=0 yoffset=9 xadvance=19 page=0 chnl=0
+char id=62 x=402 y=141 width=18 height=19 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=63 x=368 y=117 width=18 height=24 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=0
+char id=64 x=303 y=35 width=28 height=28 xoffset=0 yoffset=3 xadvance=28 page=0 chnl=0
+char id=65 x=21 y=92 width=26 height=24 xoffset=-1 yoffset=3 xadvance=24 page=0 chnl=0
+char id=66 x=47 y=92 width=22 height=24 xoffset=1 yoffset=3 xadvance=22 page=0 chnl=0
+char id=67 x=69 y=92 width=23 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
+char id=68 x=92 y=92 width=23 height=24 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
+char id=69 x=115 y=92 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=70 x=135 y=92 width=20 height=24 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
+char id=71 x=155 y=92 width=23 height=24 xoffset=0 yoffset=3 xadvance=24 page=0 chnl=0
+char id=72 x=178 y=92 width=22 height=24 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
+char id=73 x=200 y=92 width=7 height=24 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
+char id=74 x=207 y=92 width=18 height=24 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=0
+char id=75 x=225 y=92 width=23 height=24 xoffset=1 yoffset=3 xadvance=22 page=0 chnl=0
+char id=76 x=248 y=92 width=18 height=24 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=77 x=266 y=92 width=26 height=24 xoffset=1 yoffset=3 xadvance=28 page=0 chnl=0
+char id=78 x=292 y=92 width=23 height=24 xoffset=1 yoffset=3 xadvance=25 page=0 chnl=0
+char id=79 x=315 y=92 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
+char id=80 x=341 y=92 width=21 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=81 x=362 y=92 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
+char id=82 x=388 y=92 width=21 height=24 xoffset=1 yoffset=3 xadvance=22 page=0 chnl=0
+char id=83 x=409 y=92 width=22 height=24 xoffset=-1 yoffset=3 xadvance=20 page=0 chnl=0
+char id=84 x=431 y=92 width=21 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=85 x=452 y=92 width=23 height=24 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
+char id=86 x=475 y=92 width=26 height=24 xoffset=-1 yoffset=3 xadvance=24 page=0 chnl=0
+char id=87 x=0 y=117 width=36 height=24 xoffset=-1 yoffset=3 xadvance=35 page=0 chnl=0
+char id=88 x=36 y=117 width=25 height=24 xoffset=-1 yoffset=3 xadvance=23 page=0 chnl=0
+char id=89 x=61 y=117 width=25 height=24 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0
+char id=90 x=86 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=91 x=73 y=35 width=11 height=30 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
+char id=92 x=262 y=35 width=19 height=29 xoffset=-2 yoffset=1 xadvance=15 page=0 chnl=0
+char id=93 x=84 y=35 width=12 height=30 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0
+char id=94 x=60 y=165 width=16 height=11 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
+char id=95 x=154 y=165 width=22 height=5 xoffset=-2 yoffset=27 xadvance=19 page=0 chnl=0
+char id=96 x=94 y=165 width=10 height=7 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
+char id=97 x=128 y=141 width=18 height=19 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=0
+char id=98 x=107 y=117 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=99 x=146 y=141 width=18 height=19 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0
+char id=100 x=127 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=101 x=164 y=141 width=19 height=19 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=0
+char id=102 x=357 y=35 width=14 height=26 xoffset=-1 yoffset=1 xadvance=12 page=0 chnl=0
+char id=103 x=157 y=66 width=20 height=25 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=0
+char id=104 x=148 y=117 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=105 x=349 y=35 width=8 height=27 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=0
+char id=106 x=14 y=0 width=12 height=33 xoffset=-3 yoffset=0 xadvance=9 page=0 chnl=0
+char id=107 x=167 y=117 width=20 height=24 xoffset=0 yoffset=3 xadvance=18 page=0 chnl=0
+char id=108 x=501 y=92 width=7 height=24 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
+char id=109 x=183 y=141 width=29 height=19 xoffset=0 yoffset=8 xadvance=30 page=0 chnl=0
+char id=110 x=212 y=141 width=19 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
+char id=111 x=231 y=141 width=21 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
+char id=112 x=177 y=66 width=20 height=25 xoffset=1 yoffset=8 xadvance=21 page=0 chnl=0
+char id=113 x=197 y=66 width=21 height=25 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=0
+char id=114 x=491 y=117 width=13 height=20 xoffset=1 yoffset=7 xadvance=13 page=0 chnl=0
+char id=115 x=252 y=141 width=17 height=19 xoffset=-1 yoffset=8 xadvance=16 page=0 chnl=0
+char id=116 x=187 y=117 width=14 height=24 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=0
+char id=117 x=269 y=141 width=19 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
+char id=118 x=288 y=141 width=21 height=19 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0
+char id=119 x=309 y=141 width=29 height=19 xoffset=-1 yoffset=8 xadvance=27 page=0 chnl=0
+char id=120 x=338 y=141 width=20 height=19 xoffset=-1 yoffset=8 xadvance=18 page=0 chnl=0
+char id=121 x=218 y=66 width=21 height=25 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0
+char id=122 x=358 y=141 width=17 height=19 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0
+char id=123 x=96 y=35 width=13 height=30 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
+char id=124 x=502 y=0 width=6 height=29 xoffset=2 yoffset=1 xadvance=10 page=0 chnl=0
+char id=125 x=109 y=35 width=13 height=30 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
+char id=126 x=104 y=165 width=14 height=7 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=0
+char id=161 x=497 y=35 width=8 height=25 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=0
+char id=162 x=303 y=66 width=18 height=25 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=0
+char id=163 x=445 y=117 width=21 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=165 x=466 y=117 width=25 height=24 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0
+char id=168 x=118 y=165 width=14 height=7 xoffset=1 yoffset=2 xadvance=15 page=0 chnl=0
+char id=175 x=176 y=165 width=14 height=5 xoffset=1 yoffset=4 xadvance=15 page=0 chnl=0
+char id=180 x=132 y=165 width=10 height=7 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
+char id=184 x=76 y=165 width=9 height=9 xoffset=1 yoffset=25 xadvance=11 page=0 chnl=0
+char id=191 x=321 y=66 width=18 height=25 xoffset=-1 yoffset=8 xadvance=16 page=0 chnl=0
+char id=192 x=94 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=193 x=120 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=194 x=146 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=195 x=172 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=196 x=198 y=0 width=26 height=31 xoffset=-1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=197 x=26 y=0 width=26 height=33 xoffset=-1 yoffset=-6 xadvance=24 page=0 chnl=0
+char id=198 x=0 y=141 width=36 height=24 xoffset=-1 yoffset=3 xadvance=34 page=0 chnl=0
+char id=199 x=122 y=35 width=23 height=30 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
+char id=200 x=224 y=0 width=20 height=31 xoffset=1 yoffset=-4 xadvance=21 page=0 chnl=0
+char id=201 x=244 y=0 width=20 height=31 xoffset=1 yoffset=-4 xadvance=21 page=0 chnl=0
+char id=202 x=264 y=0 width=20 height=31 xoffset=1 yoffset=-4 xadvance=21 page=0 chnl=0
+char id=203 x=284 y=0 width=20 height=31 xoffset=1 yoffset=-4 xadvance=21 page=0 chnl=0
+char id=204 x=304 y=0 width=12 height=31 xoffset=-3 yoffset=-4 xadvance=9 page=0 chnl=0
+char id=205 x=316 y=0 width=12 height=31 xoffset=1 yoffset=-4 xadvance=9 page=0 chnl=0
+char id=206 x=328 y=0 width=13 height=31 xoffset=-2 yoffset=-4 xadvance=9 page=0 chnl=0
+char id=207 x=341 y=0 width=17 height=31 xoffset=-3 yoffset=-4 xadvance=9 page=0 chnl=0
+char id=208 x=36 y=141 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
+char id=209 x=358 y=0 width=23 height=31 xoffset=1 yoffset=-4 xadvance=25 page=0 chnl=0
+char id=210 x=381 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
+char id=211 x=407 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
+char id=212 x=145 y=35 width=26 height=30 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0
+char id=213 x=171 y=35 width=26 height=30 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0
+char id=214 x=197 y=35 width=26 height=30 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0
+char id=215 x=0 y=165 width=16 height=16 xoffset=1 yoffset=7 xadvance=18 page=0 chnl=0
+char id=216 x=62 y=141 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
+char id=217 x=433 y=0 width=23 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=218 x=456 y=0 width=23 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=219 x=479 y=0 width=23 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=220 x=0 y=35 width=23 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=221 x=23 y=35 width=25 height=31 xoffset=-1 yoffset=-4 xadvance=22 page=0 chnl=0
+char id=222 x=88 y=141 width=21 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=223 x=339 y=66 width=19 height=25 xoffset=1 yoffset=2 xadvance=20 page=0 chnl=0
+char id=224 x=371 y=35 width=18 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
+char id=225 x=389 y=35 width=18 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
+char id=226 x=358 y=66 width=18 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=227 x=376 y=66 width=18 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=228 x=394 y=66 width=18 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=229 x=331 y=35 width=18 height=28 xoffset=0 yoffset=-1 xadvance=19 page=0 chnl=0
+char id=230 x=420 y=141 width=30 height=19 xoffset=0 yoffset=8 xadvance=30 page=0 chnl=0
+char id=231 x=412 y=66 width=18 height=25 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0
+char id=232 x=407 y=35 width=19 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
+char id=233 x=426 y=35 width=19 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
+char id=234 x=430 y=66 width=19 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=235 x=449 y=66 width=19 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=236 x=445 y=35 width=12 height=26 xoffset=-3 yoffset=1 xadvance=9 page=0 chnl=0
+char id=237 x=457 y=35 width=12 height=26 xoffset=1 yoffset=1 xadvance=9 page=0 chnl=0
+char id=238 x=469 y=35 width=13 height=26 xoffset=-2 yoffset=1 xadvance=9 page=0 chnl=0
+char id=239 x=482 y=35 width=15 height=26 xoffset=-3 yoffset=1 xadvance=9 page=0 chnl=0
+char id=240 x=0 y=66 width=20 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=241 x=20 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=242 x=39 y=66 width=21 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=243 x=60 y=66 width=21 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=244 x=468 y=66 width=21 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=245 x=489 y=66 width=21 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=246 x=0 y=92 width=21 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=247 x=109 y=141 width=19 height=20 xoffset=0 yoffset=5 xadvance=19 page=0 chnl=0
+char id=248 x=450 y=141 width=21 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
+char id=249 x=81 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=250 x=100 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=251 x=119 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=252 x=138 y=66 width=19 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=253 x=52 y=0 width=21 height=32 xoffset=-1 yoffset=1 xadvance=19 page=0 chnl=0
+char id=254 x=223 y=35 width=20 height=30 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=255 x=73 y=0 width=21 height=32 xoffset=-1 yoffset=1 xadvance=19 page=0 chnl=0
kernings count=349
kerning first=244 second=119 amount=-1
kerning first=86 second=225 amount=-1
diff --git a/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-42.fnt b/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-42.fnt
index 4d808ea8..186b1f60 100644
--- a/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-42.fnt
+++ b/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-42.fnt
@@ -2,176 +2,176 @@ info face="Metropolis Bold" size=42 bold=0 italic=0 charset="" unicode=0 stretch
common lineHeight=43 base=34 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="Metropolis-Bold-42.png"
chars count=170
-char id=0 x=0 y=0 width=17 height=44 xoffset=2 yoffset=0 xadvance=21 page=0 chnl=0
-char id=10 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=0 page=0 chnl=0
-char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=12 page=0 chnl=0
-char id=33 x=467 y=155 width=11 height=32 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=0
-char id=34 x=397 y=251 width=20 height=15 xoffset=1 yoffset=4 xadvance=22 page=0 chnl=0
-char id=35 x=144 y=220 width=29 height=31 xoffset=0 yoffset=4 xadvance=28 page=0 chnl=0
-char id=36 x=426 y=44 width=27 height=39 xoffset=-1 yoffset=0 xadvance=27 page=0 chnl=0
-char id=37 x=51 y=155 width=35 height=33 xoffset=0 yoffset=3 xadvance=35 page=0 chnl=0
-char id=38 x=322 y=84 width=29 height=34 xoffset=0 yoffset=3 xadvance=29 page=0 chnl=0
-char id=39 x=417 y=251 width=9 height=15 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=0
-char id=40 x=362 y=44 width=15 height=39 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
-char id=41 x=377 y=44 width=15 height=39 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
-char id=42 x=346 y=251 width=17 height=18 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
-char id=43 x=302 y=251 width=23 height=23 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
-char id=44 x=363 y=251 width=11 height=16 xoffset=1 yoffset=26 xadvance=12 page=0 chnl=0
-char id=45 x=14 y=277 width=15 height=8 xoffset=0 yoffset=18 xadvance=15 page=0 chnl=0
-char id=46 x=458 y=251 width=10 height=10 xoffset=1 yoffset=26 xadvance=12 page=0 chnl=0
-char id=47 x=0 y=84 width=25 height=37 xoffset=-3 yoffset=1 xadvance=19 page=0 chnl=0
-char id=48 x=0 y=155 width=29 height=33 xoffset=0 yoffset=3 xadvance=30 page=0 chnl=0
-char id=49 x=75 y=220 width=17 height=31 xoffset=-1 yoffset=4 xadvance=17 page=0 chnl=0
-char id=50 x=416 y=155 width=25 height=32 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
-char id=51 x=402 y=121 width=25 height=33 xoffset=0 yoffset=3 xadvance=25 page=0 chnl=0
-char id=52 x=92 y=220 width=27 height=31 xoffset=0 yoffset=4 xadvance=27 page=0 chnl=0
-char id=53 x=441 y=155 width=26 height=32 xoffset=0 yoffset=4 xadvance=26 page=0 chnl=0
-char id=54 x=427 y=121 width=27 height=33 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
-char id=55 x=119 y=220 width=25 height=31 xoffset=0 yoffset=4 xadvance=25 page=0 chnl=0
-char id=56 x=454 y=121 width=26 height=33 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
-char id=57 x=480 y=121 width=27 height=33 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
-char id=58 x=112 y=251 width=10 height=25 xoffset=1 yoffset=11 xadvance=12 page=0 chnl=0
-char id=59 x=499 y=155 width=11 height=31 xoffset=1 yoffset=11 xadvance=12 page=0 chnl=0
-char id=60 x=234 y=251 width=22 height=24 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
-char id=61 x=374 y=251 width=23 height=16 xoffset=1 yoffset=12 xadvance=25 page=0 chnl=0
-char id=62 x=256 y=251 width=23 height=24 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
-char id=63 x=29 y=155 width=22 height=33 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=64 x=50 y=84 width=37 height=36 xoffset=0 yoffset=4 xadvance=37 page=0 chnl=0
-char id=65 x=28 y=188 width=33 height=31 xoffset=-1 yoffset=4 xadvance=32 page=0 chnl=0
-char id=66 x=61 y=188 width=27 height=31 xoffset=2 yoffset=4 xadvance=29 page=0 chnl=0
-char id=67 x=96 y=121 width=30 height=33 xoffset=0 yoffset=3 xadvance=29 page=0 chnl=0
-char id=68 x=88 y=188 width=30 height=31 xoffset=2 yoffset=4 xadvance=32 page=0 chnl=0
-char id=69 x=118 y=188 width=26 height=31 xoffset=1 yoffset=4 xadvance=27 page=0 chnl=0
-char id=70 x=144 y=188 width=26 height=31 xoffset=1 yoffset=4 xadvance=27 page=0 chnl=0
-char id=71 x=126 y=121 width=30 height=33 xoffset=0 yoffset=3 xadvance=31 page=0 chnl=0
-char id=72 x=170 y=188 width=29 height=31 xoffset=1 yoffset=4 xadvance=31 page=0 chnl=0
-char id=73 x=489 y=155 width=10 height=31 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=0
-char id=74 x=289 y=155 width=23 height=32 xoffset=-1 yoffset=4 xadvance=23 page=0 chnl=0
-char id=75 x=199 y=188 width=29 height=31 xoffset=2 yoffset=4 xadvance=29 page=0 chnl=0
-char id=76 x=228 y=188 width=24 height=31 xoffset=1 yoffset=4 xadvance=24 page=0 chnl=0
-char id=77 x=252 y=188 width=33 height=31 xoffset=2 yoffset=4 xadvance=36 page=0 chnl=0
-char id=78 x=285 y=188 width=29 height=31 xoffset=2 yoffset=4 xadvance=33 page=0 chnl=0
-char id=79 x=156 y=121 width=34 height=33 xoffset=0 yoffset=3 xadvance=34 page=0 chnl=0
-char id=80 x=314 y=188 width=27 height=31 xoffset=1 yoffset=4 xadvance=28 page=0 chnl=0
-char id=81 x=190 y=121 width=34 height=33 xoffset=0 yoffset=3 xadvance=34 page=0 chnl=0
-char id=82 x=341 y=188 width=28 height=31 xoffset=1 yoffset=4 xadvance=28 page=0 chnl=0
-char id=83 x=224 y=121 width=27 height=33 xoffset=-1 yoffset=3 xadvance=27 page=0 chnl=0
-char id=84 x=369 y=188 width=27 height=31 xoffset=0 yoffset=4 xadvance=27 page=0 chnl=0
-char id=85 x=312 y=155 width=29 height=32 xoffset=1 yoffset=4 xadvance=32 page=0 chnl=0
-char id=86 x=396 y=188 width=33 height=31 xoffset=-1 yoffset=4 xadvance=32 page=0 chnl=0
-char id=87 x=429 y=188 width=47 height=31 xoffset=-1 yoffset=4 xadvance=45 page=0 chnl=0
-char id=88 x=476 y=188 width=32 height=31 xoffset=-1 yoffset=4 xadvance=30 page=0 chnl=0
-char id=89 x=0 y=220 width=31 height=31 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
-char id=90 x=31 y=220 width=27 height=31 xoffset=0 yoffset=4 xadvance=28 page=0 chnl=0
-char id=91 x=453 y=44 width=15 height=38 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
-char id=92 x=25 y=84 width=25 height=37 xoffset=-2 yoffset=1 xadvance=19 page=0 chnl=0
-char id=93 x=468 y=44 width=15 height=38 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
-char id=94 x=426 y=251 width=20 height=14 xoffset=0 yoffset=4 xadvance=21 page=0 chnl=0
-char id=95 x=47 y=277 width=28 height=6 xoffset=-2 yoffset=36 xadvance=25 page=0 chnl=0
-char id=96 x=486 y=251 width=14 height=9 xoffset=1 yoffset=2 xadvance=16 page=0 chnl=0
-char id=97 x=333 y=220 width=23 height=26 xoffset=0 yoffset=10 xadvance=24 page=0 chnl=0
-char id=98 x=251 y=121 width=27 height=33 xoffset=1 yoffset=3 xadvance=28 page=0 chnl=0
-char id=99 x=356 y=220 width=23 height=26 xoffset=0 yoffset=10 xadvance=23 page=0 chnl=0
-char id=100 x=278 y=121 width=27 height=33 xoffset=0 yoffset=3 xadvance=28 page=0 chnl=0
-char id=101 x=379 y=220 width=25 height=26 xoffset=0 yoffset=10 xadvance=25 page=0 chnl=0
-char id=102 x=305 y=121 width=17 height=33 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
-char id=103 x=322 y=121 width=26 height=33 xoffset=0 yoffset=10 xadvance=27 page=0 chnl=0
-char id=104 x=341 y=155 width=24 height=32 xoffset=1 yoffset=3 xadvance=26 page=0 chnl=0
-char id=105 x=312 y=84 width=10 height=34 xoffset=1 yoffset=1 xadvance=11 page=0 chnl=0
-char id=106 x=50 y=0 width=17 height=42 xoffset=-4 yoffset=1 xadvance=11 page=0 chnl=0
-char id=107 x=365 y=155 width=24 height=32 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
-char id=108 x=499 y=84 width=9 height=32 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
-char id=109 x=27 y=251 width=37 height=25 xoffset=1 yoffset=10 xadvance=39 page=0 chnl=0
-char id=110 x=64 y=251 width=24 height=25 xoffset=1 yoffset=10 xadvance=26 page=0 chnl=0
-char id=111 x=404 y=220 width=27 height=26 xoffset=0 yoffset=10 xadvance=27 page=0 chnl=0
-char id=112 x=348 y=121 width=27 height=33 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0
-char id=113 x=375 y=121 width=27 height=33 xoffset=0 yoffset=10 xadvance=28 page=0 chnl=0
-char id=114 x=491 y=220 width=17 height=25 xoffset=1 yoffset=10 xadvance=17 page=0 chnl=0
-char id=115 x=431 y=220 width=21 height=26 xoffset=0 yoffset=10 xadvance=21 page=0 chnl=0
-char id=116 x=58 y=220 width=17 height=31 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=0
-char id=117 x=88 y=251 width=24 height=25 xoffset=1 yoffset=11 xadvance=26 page=0 chnl=0
-char id=118 x=122 y=251 width=27 height=24 xoffset=-1 yoffset=11 xadvance=25 page=0 chnl=0
-char id=119 x=149 y=251 width=37 height=24 xoffset=-1 yoffset=11 xadvance=35 page=0 chnl=0
-char id=120 x=186 y=251 width=26 height=24 xoffset=-1 yoffset=11 xadvance=24 page=0 chnl=0
-char id=121 x=389 y=155 width=27 height=32 xoffset=-1 yoffset=11 xadvance=25 page=0 chnl=0
-char id=122 x=212 y=251 width=22 height=24 xoffset=0 yoffset=11 xadvance=22 page=0 chnl=0
-char id=123 x=392 y=44 width=17 height=39 xoffset=0 yoffset=3 xadvance=17 page=0 chnl=0
-char id=124 x=503 y=0 width=7 height=37 xoffset=3 yoffset=1 xadvance=13 page=0 chnl=0
-char id=125 x=409 y=44 width=17 height=39 xoffset=0 yoffset=3 xadvance=17 page=0 chnl=0
-char id=126 x=468 y=251 width=18 height=10 xoffset=0 yoffset=14 xadvance=19 page=0 chnl=0
-char id=161 x=478 y=155 width=11 height=32 xoffset=1 yoffset=10 xadvance=13 page=0 chnl=0
-char id=162 x=173 y=220 width=23 height=31 xoffset=0 yoffset=8 xadvance=23 page=0 chnl=0
-char id=163 x=0 y=188 width=28 height=32 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
-char id=165 x=196 y=220 width=31 height=31 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
-char id=168 x=29 y=277 width=18 height=8 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
-char id=175 x=75 y=277 width=18 height=6 xoffset=1 yoffset=5 xadvance=20 page=0 chnl=0
-char id=180 x=0 y=277 width=14 height=9 xoffset=1 yoffset=2 xadvance=16 page=0 chnl=0
-char id=184 x=446 y=251 width=12 height=11 xoffset=1 yoffset=32 xadvance=14 page=0 chnl=0
-char id=191 x=86 y=155 width=22 height=33 xoffset=0 yoffset=10 xadvance=21 page=0 chnl=0
-char id=192 x=437 y=0 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
-char id=193 x=470 y=0 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
-char id=194 x=0 y=44 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
-char id=195 x=33 y=44 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
-char id=196 x=66 y=44 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
-char id=197 x=17 y=0 width=33 height=43 xoffset=-1 yoffset=-8 xadvance=32 page=0 chnl=0
-char id=198 x=227 y=220 width=46 height=31 xoffset=-1 yoffset=4 xadvance=45 page=0 chnl=0
-char id=199 x=169 y=0 width=30 height=41 xoffset=0 yoffset=3 xadvance=29 page=0 chnl=0
-char id=200 x=99 y=44 width=26 height=40 xoffset=1 yoffset=-5 xadvance=27 page=0 chnl=0
-char id=201 x=125 y=44 width=26 height=40 xoffset=1 yoffset=-5 xadvance=27 page=0 chnl=0
-char id=202 x=151 y=44 width=26 height=40 xoffset=1 yoffset=-5 xadvance=27 page=0 chnl=0
-char id=203 x=177 y=44 width=26 height=40 xoffset=1 yoffset=-5 xadvance=27 page=0 chnl=0
-char id=204 x=203 y=44 width=17 height=40 xoffset=-4 yoffset=-5 xadvance=12 page=0 chnl=0
-char id=205 x=220 y=44 width=17 height=40 xoffset=1 yoffset=-5 xadvance=12 page=0 chnl=0
-char id=206 x=237 y=44 width=18 height=40 xoffset=-2 yoffset=-5 xadvance=12 page=0 chnl=0
-char id=207 x=255 y=44 width=20 height=40 xoffset=-3 yoffset=-5 xadvance=12 page=0 chnl=0
-char id=208 x=273 y=220 width=33 height=31 xoffset=0 yoffset=4 xadvance=34 page=0 chnl=0
-char id=209 x=275 y=44 width=29 height=40 xoffset=2 yoffset=-5 xadvance=33 page=0 chnl=0
-char id=210 x=67 y=0 width=34 height=42 xoffset=0 yoffset=-6 xadvance=34 page=0 chnl=0
-char id=211 x=101 y=0 width=34 height=42 xoffset=0 yoffset=-6 xadvance=34 page=0 chnl=0
-char id=212 x=135 y=0 width=34 height=42 xoffset=0 yoffset=-6 xadvance=34 page=0 chnl=0
-char id=213 x=199 y=0 width=34 height=41 xoffset=0 yoffset=-5 xadvance=34 page=0 chnl=0
-char id=214 x=233 y=0 width=34 height=41 xoffset=0 yoffset=-5 xadvance=34 page=0 chnl=0
-char id=215 x=325 y=251 width=21 height=21 xoffset=1 yoffset=9 xadvance=24 page=0 chnl=0
-char id=216 x=108 y=155 width=34 height=33 xoffset=0 yoffset=3 xadvance=34 page=0 chnl=0
-char id=217 x=267 y=0 width=29 height=41 xoffset=1 yoffset=-5 xadvance=32 page=0 chnl=0
-char id=218 x=296 y=0 width=29 height=41 xoffset=1 yoffset=-5 xadvance=32 page=0 chnl=0
-char id=219 x=325 y=0 width=29 height=41 xoffset=1 yoffset=-5 xadvance=32 page=0 chnl=0
-char id=220 x=354 y=0 width=29 height=41 xoffset=1 yoffset=-5 xadvance=32 page=0 chnl=0
-char id=221 x=304 y=44 width=31 height=40 xoffset=-1 yoffset=-5 xadvance=29 page=0 chnl=0
-char id=222 x=306 y=220 width=27 height=31 xoffset=1 yoffset=4 xadvance=28 page=0 chnl=0
-char id=223 x=142 y=155 width=25 height=33 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
-char id=224 x=87 y=84 width=23 height=35 xoffset=0 yoffset=1 xadvance=24 page=0 chnl=0
-char id=225 x=110 y=84 width=23 height=35 xoffset=0 yoffset=1 xadvance=24 page=0 chnl=0
-char id=226 x=133 y=84 width=23 height=35 xoffset=0 yoffset=1 xadvance=24 page=0 chnl=0
-char id=227 x=351 y=84 width=23 height=34 xoffset=0 yoffset=2 xadvance=24 page=0 chnl=0
-char id=228 x=374 y=84 width=23 height=34 xoffset=0 yoffset=2 xadvance=24 page=0 chnl=0
-char id=229 x=483 y=44 width=23 height=38 xoffset=0 yoffset=-2 xadvance=24 page=0 chnl=0
-char id=230 x=452 y=220 width=39 height=26 xoffset=0 yoffset=10 xadvance=39 page=0 chnl=0
-char id=231 x=397 y=84 width=23 height=34 xoffset=0 yoffset=10 xadvance=23 page=0 chnl=0
-char id=232 x=156 y=84 width=25 height=35 xoffset=0 yoffset=1 xadvance=25 page=0 chnl=0
-char id=233 x=181 y=84 width=25 height=35 xoffset=0 yoffset=1 xadvance=25 page=0 chnl=0
-char id=234 x=206 y=84 width=25 height=35 xoffset=0 yoffset=1 xadvance=25 page=0 chnl=0
-char id=235 x=420 y=84 width=25 height=34 xoffset=0 yoffset=2 xadvance=25 page=0 chnl=0
-char id=236 x=167 y=155 width=16 height=33 xoffset=-4 yoffset=2 xadvance=11 page=0 chnl=0
-char id=237 x=183 y=155 width=16 height=33 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=0
-char id=238 x=199 y=155 width=19 height=33 xoffset=-3 yoffset=2 xadvance=11 page=0 chnl=0
-char id=239 x=218 y=155 width=21 height=33 xoffset=-3 yoffset=2 xadvance=11 page=0 chnl=0
-char id=240 x=239 y=155 width=26 height=33 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
-char id=241 x=265 y=155 width=24 height=33 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
-char id=242 x=231 y=84 width=27 height=35 xoffset=0 yoffset=1 xadvance=27 page=0 chnl=0
-char id=243 x=258 y=84 width=27 height=35 xoffset=0 yoffset=1 xadvance=27 page=0 chnl=0
-char id=244 x=285 y=84 width=27 height=35 xoffset=0 yoffset=1 xadvance=27 page=0 chnl=0
-char id=245 x=445 y=84 width=27 height=34 xoffset=0 yoffset=2 xadvance=27 page=0 chnl=0
-char id=246 x=472 y=84 width=27 height=34 xoffset=0 yoffset=2 xadvance=27 page=0 chnl=0
-char id=247 x=279 y=251 width=23 height=24 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
-char id=248 x=0 y=251 width=27 height=26 xoffset=0 yoffset=10 xadvance=27 page=0 chnl=0
-char id=249 x=0 y=121 width=24 height=34 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
-char id=250 x=24 y=121 width=24 height=34 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
-char id=251 x=48 y=121 width=24 height=34 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
-char id=252 x=72 y=121 width=24 height=34 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
-char id=253 x=383 y=0 width=27 height=41 xoffset=-1 yoffset=2 xadvance=25 page=0 chnl=0
-char id=254 x=335 y=44 width=27 height=40 xoffset=1 yoffset=3 xadvance=28 page=0 chnl=0
-char id=255 x=410 y=0 width=27 height=41 xoffset=-1 yoffset=2 xadvance=25 page=0 chnl=0
+char id=0 x=0 y=0 width=17 height=44 xoffset=2 yoffset=0 xadvance=21 page=0 chnl=0
+char id=10 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=0 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=12 page=0 chnl=0
+char id=33 x=467 y=155 width=11 height=32 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=0
+char id=34 x=397 y=251 width=20 height=15 xoffset=1 yoffset=4 xadvance=22 page=0 chnl=0
+char id=35 x=144 y=220 width=29 height=31 xoffset=0 yoffset=4 xadvance=28 page=0 chnl=0
+char id=36 x=426 y=44 width=27 height=39 xoffset=-1 yoffset=0 xadvance=27 page=0 chnl=0
+char id=37 x=51 y=155 width=35 height=33 xoffset=0 yoffset=3 xadvance=35 page=0 chnl=0
+char id=38 x=322 y=84 width=29 height=34 xoffset=0 yoffset=3 xadvance=29 page=0 chnl=0
+char id=39 x=417 y=251 width=9 height=15 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=0
+char id=40 x=362 y=44 width=15 height=39 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
+char id=41 x=377 y=44 width=15 height=39 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
+char id=42 x=346 y=251 width=17 height=18 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=43 x=302 y=251 width=23 height=23 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
+char id=44 x=363 y=251 width=11 height=16 xoffset=1 yoffset=26 xadvance=12 page=0 chnl=0
+char id=45 x=14 y=277 width=15 height=8 xoffset=0 yoffset=18 xadvance=15 page=0 chnl=0
+char id=46 x=458 y=251 width=10 height=10 xoffset=1 yoffset=26 xadvance=12 page=0 chnl=0
+char id=47 x=0 y=84 width=25 height=37 xoffset=-3 yoffset=1 xadvance=19 page=0 chnl=0
+char id=48 x=0 y=155 width=29 height=33 xoffset=0 yoffset=3 xadvance=30 page=0 chnl=0
+char id=49 x=75 y=220 width=17 height=31 xoffset=-1 yoffset=4 xadvance=17 page=0 chnl=0
+char id=50 x=416 y=155 width=25 height=32 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
+char id=51 x=402 y=121 width=25 height=33 xoffset=0 yoffset=3 xadvance=25 page=0 chnl=0
+char id=52 x=92 y=220 width=27 height=31 xoffset=0 yoffset=4 xadvance=27 page=0 chnl=0
+char id=53 x=441 y=155 width=26 height=32 xoffset=0 yoffset=4 xadvance=26 page=0 chnl=0
+char id=54 x=427 y=121 width=27 height=33 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
+char id=55 x=119 y=220 width=25 height=31 xoffset=0 yoffset=4 xadvance=25 page=0 chnl=0
+char id=56 x=454 y=121 width=26 height=33 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
+char id=57 x=480 y=121 width=27 height=33 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
+char id=58 x=112 y=251 width=10 height=25 xoffset=1 yoffset=11 xadvance=12 page=0 chnl=0
+char id=59 x=499 y=155 width=11 height=31 xoffset=1 yoffset=11 xadvance=12 page=0 chnl=0
+char id=60 x=234 y=251 width=22 height=24 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
+char id=61 x=374 y=251 width=23 height=16 xoffset=1 yoffset=12 xadvance=25 page=0 chnl=0
+char id=62 x=256 y=251 width=23 height=24 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
+char id=63 x=29 y=155 width=22 height=33 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=64 x=50 y=84 width=37 height=36 xoffset=0 yoffset=4 xadvance=37 page=0 chnl=0
+char id=65 x=28 y=188 width=33 height=31 xoffset=-1 yoffset=4 xadvance=32 page=0 chnl=0
+char id=66 x=61 y=188 width=27 height=31 xoffset=2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=67 x=96 y=121 width=30 height=33 xoffset=0 yoffset=3 xadvance=29 page=0 chnl=0
+char id=68 x=88 y=188 width=30 height=31 xoffset=2 yoffset=4 xadvance=32 page=0 chnl=0
+char id=69 x=118 y=188 width=26 height=31 xoffset=1 yoffset=4 xadvance=27 page=0 chnl=0
+char id=70 x=144 y=188 width=26 height=31 xoffset=1 yoffset=4 xadvance=27 page=0 chnl=0
+char id=71 x=126 y=121 width=30 height=33 xoffset=0 yoffset=3 xadvance=31 page=0 chnl=0
+char id=72 x=170 y=188 width=29 height=31 xoffset=1 yoffset=4 xadvance=31 page=0 chnl=0
+char id=73 x=489 y=155 width=10 height=31 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=0
+char id=74 x=289 y=155 width=23 height=32 xoffset=-1 yoffset=4 xadvance=23 page=0 chnl=0
+char id=75 x=199 y=188 width=29 height=31 xoffset=2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=76 x=228 y=188 width=24 height=31 xoffset=1 yoffset=4 xadvance=24 page=0 chnl=0
+char id=77 x=252 y=188 width=33 height=31 xoffset=2 yoffset=4 xadvance=36 page=0 chnl=0
+char id=78 x=285 y=188 width=29 height=31 xoffset=2 yoffset=4 xadvance=33 page=0 chnl=0
+char id=79 x=156 y=121 width=34 height=33 xoffset=0 yoffset=3 xadvance=34 page=0 chnl=0
+char id=80 x=314 y=188 width=27 height=31 xoffset=1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=81 x=190 y=121 width=34 height=33 xoffset=0 yoffset=3 xadvance=34 page=0 chnl=0
+char id=82 x=341 y=188 width=28 height=31 xoffset=1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=83 x=224 y=121 width=27 height=33 xoffset=-1 yoffset=3 xadvance=27 page=0 chnl=0
+char id=84 x=369 y=188 width=27 height=31 xoffset=0 yoffset=4 xadvance=27 page=0 chnl=0
+char id=85 x=312 y=155 width=29 height=32 xoffset=1 yoffset=4 xadvance=32 page=0 chnl=0
+char id=86 x=396 y=188 width=33 height=31 xoffset=-1 yoffset=4 xadvance=32 page=0 chnl=0
+char id=87 x=429 y=188 width=47 height=31 xoffset=-1 yoffset=4 xadvance=45 page=0 chnl=0
+char id=88 x=476 y=188 width=32 height=31 xoffset=-1 yoffset=4 xadvance=30 page=0 chnl=0
+char id=89 x=0 y=220 width=31 height=31 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
+char id=90 x=31 y=220 width=27 height=31 xoffset=0 yoffset=4 xadvance=28 page=0 chnl=0
+char id=91 x=453 y=44 width=15 height=38 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
+char id=92 x=25 y=84 width=25 height=37 xoffset=-2 yoffset=1 xadvance=19 page=0 chnl=0
+char id=93 x=468 y=44 width=15 height=38 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
+char id=94 x=426 y=251 width=20 height=14 xoffset=0 yoffset=4 xadvance=21 page=0 chnl=0
+char id=95 x=47 y=277 width=28 height=6 xoffset=-2 yoffset=36 xadvance=25 page=0 chnl=0
+char id=96 x=486 y=251 width=14 height=9 xoffset=1 yoffset=2 xadvance=16 page=0 chnl=0
+char id=97 x=333 y=220 width=23 height=26 xoffset=0 yoffset=10 xadvance=24 page=0 chnl=0
+char id=98 x=251 y=121 width=27 height=33 xoffset=1 yoffset=3 xadvance=28 page=0 chnl=0
+char id=99 x=356 y=220 width=23 height=26 xoffset=0 yoffset=10 xadvance=23 page=0 chnl=0
+char id=100 x=278 y=121 width=27 height=33 xoffset=0 yoffset=3 xadvance=28 page=0 chnl=0
+char id=101 x=379 y=220 width=25 height=26 xoffset=0 yoffset=10 xadvance=25 page=0 chnl=0
+char id=102 x=305 y=121 width=17 height=33 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=103 x=322 y=121 width=26 height=33 xoffset=0 yoffset=10 xadvance=27 page=0 chnl=0
+char id=104 x=341 y=155 width=24 height=32 xoffset=1 yoffset=3 xadvance=26 page=0 chnl=0
+char id=105 x=312 y=84 width=10 height=34 xoffset=1 yoffset=1 xadvance=11 page=0 chnl=0
+char id=106 x=50 y=0 width=17 height=42 xoffset=-4 yoffset=1 xadvance=11 page=0 chnl=0
+char id=107 x=365 y=155 width=24 height=32 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
+char id=108 x=499 y=84 width=9 height=32 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
+char id=109 x=27 y=251 width=37 height=25 xoffset=1 yoffset=10 xadvance=39 page=0 chnl=0
+char id=110 x=64 y=251 width=24 height=25 xoffset=1 yoffset=10 xadvance=26 page=0 chnl=0
+char id=111 x=404 y=220 width=27 height=26 xoffset=0 yoffset=10 xadvance=27 page=0 chnl=0
+char id=112 x=348 y=121 width=27 height=33 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0
+char id=113 x=375 y=121 width=27 height=33 xoffset=0 yoffset=10 xadvance=28 page=0 chnl=0
+char id=114 x=491 y=220 width=17 height=25 xoffset=1 yoffset=10 xadvance=17 page=0 chnl=0
+char id=115 x=431 y=220 width=21 height=26 xoffset=0 yoffset=10 xadvance=21 page=0 chnl=0
+char id=116 x=58 y=220 width=17 height=31 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=0
+char id=117 x=88 y=251 width=24 height=25 xoffset=1 yoffset=11 xadvance=26 page=0 chnl=0
+char id=118 x=122 y=251 width=27 height=24 xoffset=-1 yoffset=11 xadvance=25 page=0 chnl=0
+char id=119 x=149 y=251 width=37 height=24 xoffset=-1 yoffset=11 xadvance=35 page=0 chnl=0
+char id=120 x=186 y=251 width=26 height=24 xoffset=-1 yoffset=11 xadvance=24 page=0 chnl=0
+char id=121 x=389 y=155 width=27 height=32 xoffset=-1 yoffset=11 xadvance=25 page=0 chnl=0
+char id=122 x=212 y=251 width=22 height=24 xoffset=0 yoffset=11 xadvance=22 page=0 chnl=0
+char id=123 x=392 y=44 width=17 height=39 xoffset=0 yoffset=3 xadvance=17 page=0 chnl=0
+char id=124 x=503 y=0 width=7 height=37 xoffset=3 yoffset=1 xadvance=13 page=0 chnl=0
+char id=125 x=409 y=44 width=17 height=39 xoffset=0 yoffset=3 xadvance=17 page=0 chnl=0
+char id=126 x=468 y=251 width=18 height=10 xoffset=0 yoffset=14 xadvance=19 page=0 chnl=0
+char id=161 x=478 y=155 width=11 height=32 xoffset=1 yoffset=10 xadvance=13 page=0 chnl=0
+char id=162 x=173 y=220 width=23 height=31 xoffset=0 yoffset=8 xadvance=23 page=0 chnl=0
+char id=163 x=0 y=188 width=28 height=32 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
+char id=165 x=196 y=220 width=31 height=31 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
+char id=168 x=29 y=277 width=18 height=8 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
+char id=175 x=75 y=277 width=18 height=6 xoffset=1 yoffset=5 xadvance=20 page=0 chnl=0
+char id=180 x=0 y=277 width=14 height=9 xoffset=1 yoffset=2 xadvance=16 page=0 chnl=0
+char id=184 x=446 y=251 width=12 height=11 xoffset=1 yoffset=32 xadvance=14 page=0 chnl=0
+char id=191 x=86 y=155 width=22 height=33 xoffset=0 yoffset=10 xadvance=21 page=0 chnl=0
+char id=192 x=437 y=0 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
+char id=193 x=470 y=0 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
+char id=194 x=0 y=44 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
+char id=195 x=33 y=44 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
+char id=196 x=66 y=44 width=33 height=40 xoffset=-1 yoffset=-5 xadvance=32 page=0 chnl=0
+char id=197 x=17 y=0 width=33 height=43 xoffset=-1 yoffset=-8 xadvance=32 page=0 chnl=0
+char id=198 x=227 y=220 width=46 height=31 xoffset=-1 yoffset=4 xadvance=45 page=0 chnl=0
+char id=199 x=169 y=0 width=30 height=41 xoffset=0 yoffset=3 xadvance=29 page=0 chnl=0
+char id=200 x=99 y=44 width=26 height=40 xoffset=1 yoffset=-5 xadvance=27 page=0 chnl=0
+char id=201 x=125 y=44 width=26 height=40 xoffset=1 yoffset=-5 xadvance=27 page=0 chnl=0
+char id=202 x=151 y=44 width=26 height=40 xoffset=1 yoffset=-5 xadvance=27 page=0 chnl=0
+char id=203 x=177 y=44 width=26 height=40 xoffset=1 yoffset=-5 xadvance=27 page=0 chnl=0
+char id=204 x=203 y=44 width=17 height=40 xoffset=-4 yoffset=-5 xadvance=12 page=0 chnl=0
+char id=205 x=220 y=44 width=17 height=40 xoffset=1 yoffset=-5 xadvance=12 page=0 chnl=0
+char id=206 x=237 y=44 width=18 height=40 xoffset=-2 yoffset=-5 xadvance=12 page=0 chnl=0
+char id=207 x=255 y=44 width=20 height=40 xoffset=-3 yoffset=-5 xadvance=12 page=0 chnl=0
+char id=208 x=273 y=220 width=33 height=31 xoffset=0 yoffset=4 xadvance=34 page=0 chnl=0
+char id=209 x=275 y=44 width=29 height=40 xoffset=2 yoffset=-5 xadvance=33 page=0 chnl=0
+char id=210 x=67 y=0 width=34 height=42 xoffset=0 yoffset=-6 xadvance=34 page=0 chnl=0
+char id=211 x=101 y=0 width=34 height=42 xoffset=0 yoffset=-6 xadvance=34 page=0 chnl=0
+char id=212 x=135 y=0 width=34 height=42 xoffset=0 yoffset=-6 xadvance=34 page=0 chnl=0
+char id=213 x=199 y=0 width=34 height=41 xoffset=0 yoffset=-5 xadvance=34 page=0 chnl=0
+char id=214 x=233 y=0 width=34 height=41 xoffset=0 yoffset=-5 xadvance=34 page=0 chnl=0
+char id=215 x=325 y=251 width=21 height=21 xoffset=1 yoffset=9 xadvance=24 page=0 chnl=0
+char id=216 x=108 y=155 width=34 height=33 xoffset=0 yoffset=3 xadvance=34 page=0 chnl=0
+char id=217 x=267 y=0 width=29 height=41 xoffset=1 yoffset=-5 xadvance=32 page=0 chnl=0
+char id=218 x=296 y=0 width=29 height=41 xoffset=1 yoffset=-5 xadvance=32 page=0 chnl=0
+char id=219 x=325 y=0 width=29 height=41 xoffset=1 yoffset=-5 xadvance=32 page=0 chnl=0
+char id=220 x=354 y=0 width=29 height=41 xoffset=1 yoffset=-5 xadvance=32 page=0 chnl=0
+char id=221 x=304 y=44 width=31 height=40 xoffset=-1 yoffset=-5 xadvance=29 page=0 chnl=0
+char id=222 x=306 y=220 width=27 height=31 xoffset=1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=223 x=142 y=155 width=25 height=33 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
+char id=224 x=87 y=84 width=23 height=35 xoffset=0 yoffset=1 xadvance=24 page=0 chnl=0
+char id=225 x=110 y=84 width=23 height=35 xoffset=0 yoffset=1 xadvance=24 page=0 chnl=0
+char id=226 x=133 y=84 width=23 height=35 xoffset=0 yoffset=1 xadvance=24 page=0 chnl=0
+char id=227 x=351 y=84 width=23 height=34 xoffset=0 yoffset=2 xadvance=24 page=0 chnl=0
+char id=228 x=374 y=84 width=23 height=34 xoffset=0 yoffset=2 xadvance=24 page=0 chnl=0
+char id=229 x=483 y=44 width=23 height=38 xoffset=0 yoffset=-2 xadvance=24 page=0 chnl=0
+char id=230 x=452 y=220 width=39 height=26 xoffset=0 yoffset=10 xadvance=39 page=0 chnl=0
+char id=231 x=397 y=84 width=23 height=34 xoffset=0 yoffset=10 xadvance=23 page=0 chnl=0
+char id=232 x=156 y=84 width=25 height=35 xoffset=0 yoffset=1 xadvance=25 page=0 chnl=0
+char id=233 x=181 y=84 width=25 height=35 xoffset=0 yoffset=1 xadvance=25 page=0 chnl=0
+char id=234 x=206 y=84 width=25 height=35 xoffset=0 yoffset=1 xadvance=25 page=0 chnl=0
+char id=235 x=420 y=84 width=25 height=34 xoffset=0 yoffset=2 xadvance=25 page=0 chnl=0
+char id=236 x=167 y=155 width=16 height=33 xoffset=-4 yoffset=2 xadvance=11 page=0 chnl=0
+char id=237 x=183 y=155 width=16 height=33 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=0
+char id=238 x=199 y=155 width=19 height=33 xoffset=-3 yoffset=2 xadvance=11 page=0 chnl=0
+char id=239 x=218 y=155 width=21 height=33 xoffset=-3 yoffset=2 xadvance=11 page=0 chnl=0
+char id=240 x=239 y=155 width=26 height=33 xoffset=0 yoffset=3 xadvance=27 page=0 chnl=0
+char id=241 x=265 y=155 width=24 height=33 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
+char id=242 x=231 y=84 width=27 height=35 xoffset=0 yoffset=1 xadvance=27 page=0 chnl=0
+char id=243 x=258 y=84 width=27 height=35 xoffset=0 yoffset=1 xadvance=27 page=0 chnl=0
+char id=244 x=285 y=84 width=27 height=35 xoffset=0 yoffset=1 xadvance=27 page=0 chnl=0
+char id=245 x=445 y=84 width=27 height=34 xoffset=0 yoffset=2 xadvance=27 page=0 chnl=0
+char id=246 x=472 y=84 width=27 height=34 xoffset=0 yoffset=2 xadvance=27 page=0 chnl=0
+char id=247 x=279 y=251 width=23 height=24 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
+char id=248 x=0 y=251 width=27 height=26 xoffset=0 yoffset=10 xadvance=27 page=0 chnl=0
+char id=249 x=0 y=121 width=24 height=34 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
+char id=250 x=24 y=121 width=24 height=34 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
+char id=251 x=48 y=121 width=24 height=34 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
+char id=252 x=72 y=121 width=24 height=34 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=0
+char id=253 x=383 y=0 width=27 height=41 xoffset=-1 yoffset=2 xadvance=25 page=0 chnl=0
+char id=254 x=335 y=44 width=27 height=40 xoffset=1 yoffset=3 xadvance=28 page=0 chnl=0
+char id=255 x=410 y=0 width=27 height=41 xoffset=-1 yoffset=2 xadvance=25 page=0 chnl=0
kernings count=370
kerning first=244 second=119 amount=-1
kerning first=86 second=225 amount=-2
diff --git a/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-64.fnt b/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-64.fnt
index f620a9b8..47d904dd 100644
--- a/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-64.fnt
+++ b/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Bold-64.fnt
@@ -3,176 +3,176 @@ common lineHeight=65 base=51 scaleW=512 scaleH=512 pages=2 packed=0
page id=0 file="Metropolis-Bold-641.png"
page id=1 file="Metropolis-Bold-642.png"
chars count=170
-char id=0 x=0 y=0 width=24 height=66 xoffset=4 yoffset=-1 xadvance=32 page=0 chnl=0
-char id=10 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=0 page=0 chnl=0
-char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=18 page=0 chnl=0
-char id=33 x=114 y=386 width=15 height=47 xoffset=2 yoffset=6 xadvance=20 page=0 chnl=0
-char id=34 x=103 y=479 width=29 height=22 xoffset=2 yoffset=6 xadvance=33 page=0 chnl=0
-char id=36 x=394 y=126 width=40 height=57 xoffset=0 yoffset=1 xadvance=41 page=0 chnl=0
-char id=37 x=43 y=338 width=52 height=48 xoffset=1 yoffset=5 xadvance=54 page=0 chnl=0
-char id=38 x=109 y=240 width=43 height=49 xoffset=0 yoffset=5 xadvance=43 page=0 chnl=0
-char id=39 x=132 y=479 width=13 height=22 xoffset=2 yoffset=6 xadvance=18 page=0 chnl=0
-char id=40 x=261 y=126 width=22 height=58 xoffset=2 yoffset=5 xadvance=25 page=0 chnl=0
-char id=41 x=283 y=126 width=22 height=58 xoffset=1 yoffset=5 xadvance=25 page=0 chnl=0
-char id=42 x=30 y=479 width=24 height=26 xoffset=1 yoffset=4 xadvance=25 page=0 chnl=0
-char id=44 x=88 y=479 width=15 height=23 xoffset=2 yoffset=39 xadvance=19 page=0 chnl=0
-char id=45 x=291 y=479 width=21 height=10 xoffset=1 yoffset=28 xadvance=23 page=0 chnl=0
-char id=46 x=190 y=479 width=15 height=14 xoffset=2 yoffset=39 xadvance=19 page=0 chnl=0
-char id=47 x=434 y=126 width=36 height=55 xoffset=-3 yoffset=2 xadvance=30 page=0 chnl=0
-char id=48 x=0 y=338 width=43 height=48 xoffset=1 yoffset=5 xadvance=45 page=0 chnl=0
-char id=50 x=40 y=386 width=37 height=47 xoffset=1 yoffset=5 xadvance=39 page=0 chnl=0
-char id=51 x=319 y=290 width=38 height=48 xoffset=0 yoffset=5 xadvance=39 page=0 chnl=0
-char id=53 x=77 y=386 width=37 height=47 xoffset=1 yoffset=6 xadvance=40 page=0 chnl=0
-char id=54 x=357 y=290 width=39 height=48 xoffset=1 yoffset=5 xadvance=41 page=0 chnl=0
-char id=56 x=396 y=290 width=38 height=48 xoffset=1 yoffset=5 xadvance=40 page=0 chnl=0
-char id=57 x=434 y=290 width=39 height=48 xoffset=1 yoffset=5 xadvance=41 page=0 chnl=0
-char id=58 x=495 y=433 width=15 height=37 xoffset=2 yoffset=16 xadvance=19 page=0 chnl=0
-char id=59 x=489 y=386 width=15 height=46 xoffset=2 yoffset=16 xadvance=19 page=0 chnl=0
-char id=61 x=54 y=479 width=34 height=25 xoffset=2 yoffset=17 xadvance=39 page=0 chnl=0
-char id=63 x=473 y=290 width=32 height=48 xoffset=0 yoffset=5 xadvance=32 page=0 chnl=0
-char id=64 x=34 y=185 width=54 height=53 xoffset=1 yoffset=7 xadvance=56 page=0 chnl=0
-char id=65 x=183 y=386 width=50 height=46 xoffset=-1 yoffset=6 xadvance=48 page=0 chnl=0
-char id=66 x=233 y=386 width=41 height=46 xoffset=3 yoffset=6 xadvance=45 page=0 chnl=0
-char id=67 x=412 y=240 width=44 height=48 xoffset=1 yoffset=5 xadvance=45 page=0 chnl=0
-char id=68 x=274 y=386 width=44 height=46 xoffset=3 yoffset=6 xadvance=49 page=0 chnl=0
-char id=69 x=318 y=386 width=37 height=46 xoffset=3 yoffset=6 xadvance=41 page=0 chnl=0
-char id=70 x=355 y=386 width=37 height=46 xoffset=3 yoffset=6 xadvance=41 page=0 chnl=0
-char id=71 x=456 y=240 width=44 height=48 xoffset=1 yoffset=5 xadvance=48 page=0 chnl=0
-char id=72 x=392 y=386 width=42 height=46 xoffset=3 yoffset=6 xadvance=48 page=0 chnl=0
-char id=73 x=434 y=386 width=12 height=46 xoffset=3 yoffset=6 xadvance=18 page=0 chnl=0
-char id=74 x=305 y=338 width=33 height=47 xoffset=-1 yoffset=6 xadvance=35 page=0 chnl=0
-char id=75 x=446 y=386 width=43 height=46 xoffset=3 yoffset=6 xadvance=45 page=0 chnl=0
-char id=76 x=0 y=433 width=34 height=46 xoffset=3 yoffset=6 xadvance=37 page=0 chnl=0
-char id=77 x=34 y=433 width=49 height=46 xoffset=3 yoffset=6 xadvance=55 page=0 chnl=0
-char id=78 x=83 y=433 width=43 height=46 xoffset=3 yoffset=6 xadvance=50 page=0 chnl=0
-char id=79 x=0 y=290 width=50 height=48 xoffset=1 yoffset=5 xadvance=52 page=0 chnl=0
-char id=80 x=126 y=433 width=39 height=46 xoffset=3 yoffset=6 xadvance=42 page=0 chnl=0
-char id=81 x=50 y=290 width=50 height=48 xoffset=1 yoffset=5 xadvance=52 page=0 chnl=0
-char id=82 x=165 y=433 width=40 height=46 xoffset=3 yoffset=6 xadvance=43 page=0 chnl=0
-char id=83 x=100 y=290 width=40 height=48 xoffset=0 yoffset=5 xadvance=41 page=0 chnl=0
-char id=84 x=205 y=433 width=39 height=46 xoffset=1 yoffset=6 xadvance=41 page=0 chnl=0
-char id=85 x=338 y=338 width=43 height=47 xoffset=3 yoffset=6 xadvance=48 page=0 chnl=0
-char id=86 x=244 y=433 width=50 height=46 xoffset=-1 yoffset=6 xadvance=48 page=0 chnl=0
-char id=87 x=294 y=433 width=69 height=46 xoffset=0 yoffset=6 xadvance=69 page=0 chnl=0
-char id=88 x=363 y=433 width=46 height=46 xoffset=0 yoffset=6 xadvance=46 page=0 chnl=0
-char id=89 x=409 y=433 width=47 height=46 xoffset=-1 yoffset=6 xadvance=44 page=0 chnl=0
-char id=90 x=456 y=433 width=39 height=46 xoffset=2 yoffset=6 xadvance=42 page=0 chnl=0
-char id=91 x=305 y=126 width=20 height=58 xoffset=3 yoffset=4 xadvance=25 page=0 chnl=0
-char id=92 x=470 y=126 width=36 height=55 xoffset=-2 yoffset=2 xadvance=30 page=0 chnl=0
-char id=93 x=325 y=126 width=21 height=58 xoffset=1 yoffset=4 xadvance=25 page=0 chnl=0
-char id=94 x=145 y=479 width=29 height=20 xoffset=1 yoffset=6 xadvance=31 page=0 chnl=0
-char id=95 x=312 y=479 width=41 height=8 xoffset=-2 yoffset=54 xadvance=38 page=0 chnl=0
-char id=96 x=230 y=479 width=18 height=12 xoffset=3 yoffset=3 xadvance=24 page=0 chnl=0
-char id=98 x=140 y=290 width=38 height=48 xoffset=3 yoffset=5 xadvance=42 page=0 chnl=0
-char id=100 x=178 y=290 width=39 height=48 xoffset=1 yoffset=5 xadvance=42 page=0 chnl=0
-char id=102 x=217 y=290 width=25 height=48 xoffset=0 yoffset=4 xadvance=24 page=0 chnl=0
-char id=103 x=381 y=338 width=38 height=47 xoffset=1 yoffset=16 xadvance=42 page=0 chnl=0
-char id=104 x=419 y=338 width=35 height=47 xoffset=2 yoffset=5 xadvance=39 page=0 chnl=0
-char id=105 x=88 y=185 width=13 height=50 xoffset=2 yoffset=2 xadvance=17 page=0 chnl=0
-char id=106 x=74 y=0 width=23 height=62 xoffset=-5 yoffset=2 xadvance=17 page=0 chnl=0
-char id=107 x=454 y=338 width=36 height=47 xoffset=2 yoffset=5 xadvance=37 page=0 chnl=0
-char id=108 x=490 y=338 width=12 height=47 xoffset=3 yoffset=5 xadvance=17 page=0 chnl=0
-char id=112 x=242 y=290 width=38 height=48 xoffset=3 yoffset=16 xadvance=42 page=0 chnl=0
-char id=113 x=280 y=290 width=39 height=48 xoffset=1 yoffset=16 xadvance=42 page=0 chnl=0
-char id=121 x=0 y=386 width=40 height=47 xoffset=-1 yoffset=17 xadvance=38 page=0 chnl=0
-char id=123 x=346 y=126 width=24 height=58 xoffset=1 yoffset=5 xadvance=26 page=0 chnl=0
-char id=124 x=500 y=66 width=9 height=55 xoffset=5 yoffset=2 xadvance=19 page=0 chnl=0
-char id=125 x=370 y=126 width=24 height=58 xoffset=1 yoffset=5 xadvance=26 page=0 chnl=0
-char id=126 x=205 y=479 width=25 height=13 xoffset=2 yoffset=21 xadvance=29 page=0 chnl=0
-char id=161 x=129 y=386 width=14 height=47 xoffset=3 yoffset=16 xadvance=20 page=0 chnl=0
-char id=163 x=143 y=386 width=40 height=47 xoffset=1 yoffset=5 xadvance=42 page=0 chnl=0
-char id=168 x=266 y=479 width=25 height=11 xoffset=3 yoffset=4 xadvance=31 page=0 chnl=0
-char id=175 x=353 y=479 width=25 height=8 xoffset=3 yoffset=7 xadvance=30 page=0 chnl=0
-char id=180 x=248 y=479 width=18 height=12 xoffset=3 yoffset=3 xadvance=24 page=0 chnl=0
-char id=184 x=174 y=479 width=16 height=16 xoffset=3 yoffset=49 xadvance=21 page=0 chnl=0
-char id=191 x=95 y=338 width=33 height=48 xoffset=0 yoffset=16 xadvance=32 page=0 chnl=0
-char id=192 x=423 y=0 width=50 height=60 xoffset=-1 yoffset=-8 xadvance=48 page=0 chnl=0
-char id=193 x=0 y=66 width=50 height=60 xoffset=-1 yoffset=-8 xadvance=48 page=0 chnl=0
-char id=194 x=400 y=66 width=50 height=59 xoffset=-1 yoffset=-7 xadvance=48 page=0 chnl=0
-char id=195 x=450 y=66 width=50 height=59 xoffset=-1 yoffset=-7 xadvance=48 page=0 chnl=0
-char id=196 x=0 y=126 width=50 height=59 xoffset=-1 yoffset=-7 xadvance=48 page=0 chnl=0
-char id=197 x=24 y=0 width=50 height=65 xoffset=-1 yoffset=-13 xadvance=48 page=0 chnl=0
-char id=199 x=50 y=66 width=44 height=60 xoffset=1 yoffset=5 xadvance=45 page=0 chnl=0
-char id=200 x=473 y=0 width=37 height=60 xoffset=3 yoffset=-8 xadvance=41 page=0 chnl=0
-char id=201 x=94 y=66 width=37 height=60 xoffset=3 yoffset=-8 xadvance=41 page=0 chnl=0
-char id=202 x=50 y=126 width=37 height=59 xoffset=3 yoffset=-7 xadvance=41 page=0 chnl=0
-char id=203 x=87 y=126 width=37 height=59 xoffset=3 yoffset=-7 xadvance=41 page=0 chnl=0
-char id=204 x=131 y=66 width=23 height=60 xoffset=-5 yoffset=-8 xadvance=18 page=0 chnl=0
-char id=205 x=154 y=66 width=23 height=60 xoffset=3 yoffset=-8 xadvance=18 page=0 chnl=0
-char id=206 x=124 y=126 width=26 height=59 xoffset=-3 yoffset=-7 xadvance=18 page=0 chnl=0
-char id=207 x=150 y=126 width=30 height=59 xoffset=-4 yoffset=-7 xadvance=18 page=0 chnl=0
-char id=209 x=180 y=126 width=43 height=59 xoffset=3 yoffset=-7 xadvance=50 page=0 chnl=0
-char id=210 x=97 y=0 width=50 height=61 xoffset=1 yoffset=-8 xadvance=52 page=0 chnl=0
-char id=211 x=147 y=0 width=50 height=61 xoffset=1 yoffset=-8 xadvance=52 page=0 chnl=0
-char id=212 x=197 y=0 width=50 height=61 xoffset=1 yoffset=-8 xadvance=52 page=0 chnl=0
-char id=213 x=247 y=0 width=50 height=61 xoffset=1 yoffset=-8 xadvance=52 page=0 chnl=0
-char id=214 x=177 y=66 width=50 height=60 xoffset=1 yoffset=-7 xadvance=52 page=0 chnl=0
-char id=215 x=0 y=479 width=30 height=30 xoffset=3 yoffset=15 xadvance=36 page=0 chnl=0
-char id=216 x=128 y=338 width=50 height=48 xoffset=1 yoffset=5 xadvance=52 page=0 chnl=0
-char id=217 x=297 y=0 width=43 height=61 xoffset=3 yoffset=-8 xadvance=48 page=0 chnl=0
-char id=218 x=340 y=0 width=43 height=61 xoffset=3 yoffset=-8 xadvance=48 page=0 chnl=0
-char id=219 x=227 y=66 width=43 height=60 xoffset=3 yoffset=-7 xadvance=48 page=0 chnl=0
-char id=220 x=270 y=66 width=43 height=60 xoffset=3 yoffset=-7 xadvance=48 page=0 chnl=0
-char id=221 x=313 y=66 width=47 height=60 xoffset=-1 yoffset=-8 xadvance=44 page=0 chnl=0
-char id=223 x=178 y=338 width=36 height=48 xoffset=3 yoffset=4 xadvance=39 page=0 chnl=0
-char id=224 x=101 y=185 width=34 height=50 xoffset=1 yoffset=3 xadvance=37 page=0 chnl=0
-char id=225 x=135 y=185 width=34 height=50 xoffset=1 yoffset=3 xadvance=37 page=0 chnl=0
-char id=226 x=169 y=185 width=34 height=50 xoffset=1 yoffset=3 xadvance=37 page=0 chnl=0
-char id=227 x=203 y=185 width=34 height=50 xoffset=1 yoffset=3 xadvance=37 page=0 chnl=0
-char id=228 x=152 y=240 width=34 height=49 xoffset=1 yoffset=4 xadvance=37 page=0 chnl=0
-char id=229 x=0 y=185 width=34 height=55 xoffset=1 yoffset=-2 xadvance=37 page=0 chnl=0
-char id=231 x=186 y=240 width=34 height=49 xoffset=1 yoffset=16 xadvance=35 page=0 chnl=0
-char id=232 x=237 y=185 width=36 height=50 xoffset=1 yoffset=3 xadvance=38 page=0 chnl=0
-char id=233 x=273 y=185 width=36 height=50 xoffset=1 yoffset=3 xadvance=38 page=0 chnl=0
-char id=234 x=309 y=185 width=36 height=50 xoffset=1 yoffset=3 xadvance=38 page=0 chnl=0
-char id=235 x=220 y=240 width=36 height=49 xoffset=1 yoffset=4 xadvance=38 page=0 chnl=0
-char id=236 x=256 y=240 width=23 height=49 xoffset=-5 yoffset=3 xadvance=17 page=0 chnl=0
-char id=237 x=279 y=240 width=24 height=49 xoffset=3 yoffset=3 xadvance=17 page=0 chnl=0
-char id=238 x=214 y=338 width=27 height=48 xoffset=-3 yoffset=4 xadvance=17 page=0 chnl=0
-char id=239 x=241 y=338 width=29 height=48 xoffset=-4 yoffset=4 xadvance=17 page=0 chnl=0
-char id=240 x=345 y=185 width=38 height=50 xoffset=1 yoffset=3 xadvance=40 page=0 chnl=0
-char id=241 x=270 y=338 width=35 height=48 xoffset=2 yoffset=4 xadvance=39 page=0 chnl=0
-char id=242 x=383 y=185 width=39 height=50 xoffset=1 yoffset=3 xadvance=41 page=0 chnl=0
-char id=243 x=422 y=185 width=39 height=50 xoffset=1 yoffset=3 xadvance=41 page=0 chnl=0
-char id=244 x=461 y=185 width=39 height=50 xoffset=1 yoffset=3 xadvance=41 page=0 chnl=0
-char id=245 x=0 y=240 width=39 height=50 xoffset=1 yoffset=3 xadvance=41 page=0 chnl=0
-char id=246 x=303 y=240 width=39 height=49 xoffset=1 yoffset=4 xadvance=41 page=0 chnl=0
-char id=249 x=39 y=240 width=35 height=50 xoffset=2 yoffset=3 xadvance=39 page=0 chnl=0
-char id=250 x=74 y=240 width=35 height=50 xoffset=2 yoffset=3 xadvance=39 page=0 chnl=0
-char id=251 x=342 y=240 width=35 height=49 xoffset=2 yoffset=4 xadvance=39 page=0 chnl=0
-char id=252 x=377 y=240 width=35 height=49 xoffset=2 yoffset=4 xadvance=39 page=0 chnl=0
-char id=253 x=383 y=0 width=40 height=61 xoffset=-1 yoffset=3 xadvance=38 page=0 chnl=0
-char id=254 x=223 y=126 width=38 height=59 xoffset=3 yoffset=5 xadvance=42 page=0 chnl=0
-char id=255 x=360 y=66 width=40 height=60 xoffset=-1 yoffset=4 xadvance=38 page=0 chnl=0
-char id=35 x=125 y=0 width=43 height=46 xoffset=0 yoffset=6 xadvance=43 page=1 chnl=0
-char id=43 x=70 y=83 width=34 height=34 xoffset=2 yoffset=13 xadvance=39 page=1 chnl=0
-char id=49 x=25 y=0 width=24 height=46 xoffset=-1 yoffset=6 xadvance=27 page=1 chnl=0
-char id=52 x=49 y=0 width=41 height=46 xoffset=0 yoffset=6 xadvance=41 page=1 chnl=0
-char id=55 x=90 y=0 width=35 height=46 xoffset=2 yoffset=6 xadvance=39 page=1 chnl=0
-char id=60 x=349 y=46 width=33 height=36 xoffset=2 yoffset=11 xadvance=38 page=1 chnl=0
-char id=62 x=382 y=46 width=33 height=36 xoffset=3 yoffset=11 xadvance=38 page=1 chnl=0
-char id=97 x=406 y=0 width=34 height=37 xoffset=1 yoffset=16 xadvance=37 page=1 chnl=0
-char id=99 x=440 y=0 width=34 height=37 xoffset=1 yoffset=16 xadvance=35 page=1 chnl=0
-char id=101 x=474 y=0 width=36 height=37 xoffset=1 yoffset=16 xadvance=38 page=1 chnl=0
-char id=109 x=201 y=46 width=55 height=36 xoffset=2 yoffset=16 xadvance=59 page=1 chnl=0
-char id=110 x=256 y=46 width=35 height=36 xoffset=2 yoffset=16 xadvance=39 page=1 chnl=0
-char id=111 x=0 y=46 width=39 height=37 xoffset=1 yoffset=16 xadvance=41 page=1 chnl=0
-char id=114 x=291 y=46 width=23 height=36 xoffset=3 yoffset=16 xadvance=26 page=1 chnl=0
-char id=115 x=39 y=46 width=31 height=37 xoffset=0 yoffset=16 xadvance=32 page=1 chnl=0
-char id=116 x=0 y=0 width=25 height=46 xoffset=0 yoffset=7 xadvance=25 page=1 chnl=0
-char id=117 x=314 y=46 width=35 height=36 xoffset=2 yoffset=17 xadvance=39 page=1 chnl=0
-char id=118 x=415 y=46 width=40 height=35 xoffset=-1 yoffset=17 xadvance=39 page=1 chnl=0
-char id=119 x=455 y=46 width=54 height=35 xoffset=0 yoffset=17 xadvance=54 page=1 chnl=0
-char id=120 x=0 y=83 width=38 height=35 xoffset=-1 yoffset=17 xadvance=36 page=1 chnl=0
-char id=122 x=38 y=83 width=32 height=35 xoffset=1 yoffset=17 xadvance=34 page=1 chnl=0
-char id=162 x=168 y=0 width=34 height=46 xoffset=1 yoffset=12 xadvance=35 page=1 chnl=0
-char id=165 x=202 y=0 width=47 height=46 xoffset=-1 yoffset=6 xadvance=44 page=1 chnl=0
-char id=198 x=249 y=0 width=69 height=46 xoffset=-1 yoffset=6 xadvance=69 page=1 chnl=0
-char id=208 x=318 y=0 width=49 height=46 xoffset=1 yoffset=6 xadvance=51 page=1 chnl=0
-char id=222 x=367 y=0 width=39 height=46 xoffset=3 yoffset=6 xadvance=42 page=1 chnl=0
-char id=230 x=70 y=46 width=58 height=37 xoffset=1 yoffset=16 xadvance=60 page=1 chnl=0
-char id=247 x=128 y=46 width=34 height=37 xoffset=2 yoffset=11 xadvance=39 page=1 chnl=0
-char id=248 x=162 y=46 width=39 height=37 xoffset=1 yoffset=16 xadvance=41 page=1 chnl=0
+char id=0 x=0 y=0 width=24 height=66 xoffset=4 yoffset=-1 xadvance=32 page=0 chnl=0
+char id=10 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=0 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=18 page=0 chnl=0
+char id=33 x=114 y=386 width=15 height=47 xoffset=2 yoffset=6 xadvance=20 page=0 chnl=0
+char id=34 x=103 y=479 width=29 height=22 xoffset=2 yoffset=6 xadvance=33 page=0 chnl=0
+char id=36 x=394 y=126 width=40 height=57 xoffset=0 yoffset=1 xadvance=41 page=0 chnl=0
+char id=37 x=43 y=338 width=52 height=48 xoffset=1 yoffset=5 xadvance=54 page=0 chnl=0
+char id=38 x=109 y=240 width=43 height=49 xoffset=0 yoffset=5 xadvance=43 page=0 chnl=0
+char id=39 x=132 y=479 width=13 height=22 xoffset=2 yoffset=6 xadvance=18 page=0 chnl=0
+char id=40 x=261 y=126 width=22 height=58 xoffset=2 yoffset=5 xadvance=25 page=0 chnl=0
+char id=41 x=283 y=126 width=22 height=58 xoffset=1 yoffset=5 xadvance=25 page=0 chnl=0
+char id=42 x=30 y=479 width=24 height=26 xoffset=1 yoffset=4 xadvance=25 page=0 chnl=0
+char id=44 x=88 y=479 width=15 height=23 xoffset=2 yoffset=39 xadvance=19 page=0 chnl=0
+char id=45 x=291 y=479 width=21 height=10 xoffset=1 yoffset=28 xadvance=23 page=0 chnl=0
+char id=46 x=190 y=479 width=15 height=14 xoffset=2 yoffset=39 xadvance=19 page=0 chnl=0
+char id=47 x=434 y=126 width=36 height=55 xoffset=-3 yoffset=2 xadvance=30 page=0 chnl=0
+char id=48 x=0 y=338 width=43 height=48 xoffset=1 yoffset=5 xadvance=45 page=0 chnl=0
+char id=50 x=40 y=386 width=37 height=47 xoffset=1 yoffset=5 xadvance=39 page=0 chnl=0
+char id=51 x=319 y=290 width=38 height=48 xoffset=0 yoffset=5 xadvance=39 page=0 chnl=0
+char id=53 x=77 y=386 width=37 height=47 xoffset=1 yoffset=6 xadvance=40 page=0 chnl=0
+char id=54 x=357 y=290 width=39 height=48 xoffset=1 yoffset=5 xadvance=41 page=0 chnl=0
+char id=56 x=396 y=290 width=38 height=48 xoffset=1 yoffset=5 xadvance=40 page=0 chnl=0
+char id=57 x=434 y=290 width=39 height=48 xoffset=1 yoffset=5 xadvance=41 page=0 chnl=0
+char id=58 x=495 y=433 width=15 height=37 xoffset=2 yoffset=16 xadvance=19 page=0 chnl=0
+char id=59 x=489 y=386 width=15 height=46 xoffset=2 yoffset=16 xadvance=19 page=0 chnl=0
+char id=61 x=54 y=479 width=34 height=25 xoffset=2 yoffset=17 xadvance=39 page=0 chnl=0
+char id=63 x=473 y=290 width=32 height=48 xoffset=0 yoffset=5 xadvance=32 page=0 chnl=0
+char id=64 x=34 y=185 width=54 height=53 xoffset=1 yoffset=7 xadvance=56 page=0 chnl=0
+char id=65 x=183 y=386 width=50 height=46 xoffset=-1 yoffset=6 xadvance=48 page=0 chnl=0
+char id=66 x=233 y=386 width=41 height=46 xoffset=3 yoffset=6 xadvance=45 page=0 chnl=0
+char id=67 x=412 y=240 width=44 height=48 xoffset=1 yoffset=5 xadvance=45 page=0 chnl=0
+char id=68 x=274 y=386 width=44 height=46 xoffset=3 yoffset=6 xadvance=49 page=0 chnl=0
+char id=69 x=318 y=386 width=37 height=46 xoffset=3 yoffset=6 xadvance=41 page=0 chnl=0
+char id=70 x=355 y=386 width=37 height=46 xoffset=3 yoffset=6 xadvance=41 page=0 chnl=0
+char id=71 x=456 y=240 width=44 height=48 xoffset=1 yoffset=5 xadvance=48 page=0 chnl=0
+char id=72 x=392 y=386 width=42 height=46 xoffset=3 yoffset=6 xadvance=48 page=0 chnl=0
+char id=73 x=434 y=386 width=12 height=46 xoffset=3 yoffset=6 xadvance=18 page=0 chnl=0
+char id=74 x=305 y=338 width=33 height=47 xoffset=-1 yoffset=6 xadvance=35 page=0 chnl=0
+char id=75 x=446 y=386 width=43 height=46 xoffset=3 yoffset=6 xadvance=45 page=0 chnl=0
+char id=76 x=0 y=433 width=34 height=46 xoffset=3 yoffset=6 xadvance=37 page=0 chnl=0
+char id=77 x=34 y=433 width=49 height=46 xoffset=3 yoffset=6 xadvance=55 page=0 chnl=0
+char id=78 x=83 y=433 width=43 height=46 xoffset=3 yoffset=6 xadvance=50 page=0 chnl=0
+char id=79 x=0 y=290 width=50 height=48 xoffset=1 yoffset=5 xadvance=52 page=0 chnl=0
+char id=80 x=126 y=433 width=39 height=46 xoffset=3 yoffset=6 xadvance=42 page=0 chnl=0
+char id=81 x=50 y=290 width=50 height=48 xoffset=1 yoffset=5 xadvance=52 page=0 chnl=0
+char id=82 x=165 y=433 width=40 height=46 xoffset=3 yoffset=6 xadvance=43 page=0 chnl=0
+char id=83 x=100 y=290 width=40 height=48 xoffset=0 yoffset=5 xadvance=41 page=0 chnl=0
+char id=84 x=205 y=433 width=39 height=46 xoffset=1 yoffset=6 xadvance=41 page=0 chnl=0
+char id=85 x=338 y=338 width=43 height=47 xoffset=3 yoffset=6 xadvance=48 page=0 chnl=0
+char id=86 x=244 y=433 width=50 height=46 xoffset=-1 yoffset=6 xadvance=48 page=0 chnl=0
+char id=87 x=294 y=433 width=69 height=46 xoffset=0 yoffset=6 xadvance=69 page=0 chnl=0
+char id=88 x=363 y=433 width=46 height=46 xoffset=0 yoffset=6 xadvance=46 page=0 chnl=0
+char id=89 x=409 y=433 width=47 height=46 xoffset=-1 yoffset=6 xadvance=44 page=0 chnl=0
+char id=90 x=456 y=433 width=39 height=46 xoffset=2 yoffset=6 xadvance=42 page=0 chnl=0
+char id=91 x=305 y=126 width=20 height=58 xoffset=3 yoffset=4 xadvance=25 page=0 chnl=0
+char id=92 x=470 y=126 width=36 height=55 xoffset=-2 yoffset=2 xadvance=30 page=0 chnl=0
+char id=93 x=325 y=126 width=21 height=58 xoffset=1 yoffset=4 xadvance=25 page=0 chnl=0
+char id=94 x=145 y=479 width=29 height=20 xoffset=1 yoffset=6 xadvance=31 page=0 chnl=0
+char id=95 x=312 y=479 width=41 height=8 xoffset=-2 yoffset=54 xadvance=38 page=0 chnl=0
+char id=96 x=230 y=479 width=18 height=12 xoffset=3 yoffset=3 xadvance=24 page=0 chnl=0
+char id=98 x=140 y=290 width=38 height=48 xoffset=3 yoffset=5 xadvance=42 page=0 chnl=0
+char id=100 x=178 y=290 width=39 height=48 xoffset=1 yoffset=5 xadvance=42 page=0 chnl=0
+char id=102 x=217 y=290 width=25 height=48 xoffset=0 yoffset=4 xadvance=24 page=0 chnl=0
+char id=103 x=381 y=338 width=38 height=47 xoffset=1 yoffset=16 xadvance=42 page=0 chnl=0
+char id=104 x=419 y=338 width=35 height=47 xoffset=2 yoffset=5 xadvance=39 page=0 chnl=0
+char id=105 x=88 y=185 width=13 height=50 xoffset=2 yoffset=2 xadvance=17 page=0 chnl=0
+char id=106 x=74 y=0 width=23 height=62 xoffset=-5 yoffset=2 xadvance=17 page=0 chnl=0
+char id=107 x=454 y=338 width=36 height=47 xoffset=2 yoffset=5 xadvance=37 page=0 chnl=0
+char id=108 x=490 y=338 width=12 height=47 xoffset=3 yoffset=5 xadvance=17 page=0 chnl=0
+char id=112 x=242 y=290 width=38 height=48 xoffset=3 yoffset=16 xadvance=42 page=0 chnl=0
+char id=113 x=280 y=290 width=39 height=48 xoffset=1 yoffset=16 xadvance=42 page=0 chnl=0
+char id=121 x=0 y=386 width=40 height=47 xoffset=-1 yoffset=17 xadvance=38 page=0 chnl=0
+char id=123 x=346 y=126 width=24 height=58 xoffset=1 yoffset=5 xadvance=26 page=0 chnl=0
+char id=124 x=500 y=66 width=9 height=55 xoffset=5 yoffset=2 xadvance=19 page=0 chnl=0
+char id=125 x=370 y=126 width=24 height=58 xoffset=1 yoffset=5 xadvance=26 page=0 chnl=0
+char id=126 x=205 y=479 width=25 height=13 xoffset=2 yoffset=21 xadvance=29 page=0 chnl=0
+char id=161 x=129 y=386 width=14 height=47 xoffset=3 yoffset=16 xadvance=20 page=0 chnl=0
+char id=163 x=143 y=386 width=40 height=47 xoffset=1 yoffset=5 xadvance=42 page=0 chnl=0
+char id=168 x=266 y=479 width=25 height=11 xoffset=3 yoffset=4 xadvance=31 page=0 chnl=0
+char id=175 x=353 y=479 width=25 height=8 xoffset=3 yoffset=7 xadvance=30 page=0 chnl=0
+char id=180 x=248 y=479 width=18 height=12 xoffset=3 yoffset=3 xadvance=24 page=0 chnl=0
+char id=184 x=174 y=479 width=16 height=16 xoffset=3 yoffset=49 xadvance=21 page=0 chnl=0
+char id=191 x=95 y=338 width=33 height=48 xoffset=0 yoffset=16 xadvance=32 page=0 chnl=0
+char id=192 x=423 y=0 width=50 height=60 xoffset=-1 yoffset=-8 xadvance=48 page=0 chnl=0
+char id=193 x=0 y=66 width=50 height=60 xoffset=-1 yoffset=-8 xadvance=48 page=0 chnl=0
+char id=194 x=400 y=66 width=50 height=59 xoffset=-1 yoffset=-7 xadvance=48 page=0 chnl=0
+char id=195 x=450 y=66 width=50 height=59 xoffset=-1 yoffset=-7 xadvance=48 page=0 chnl=0
+char id=196 x=0 y=126 width=50 height=59 xoffset=-1 yoffset=-7 xadvance=48 page=0 chnl=0
+char id=197 x=24 y=0 width=50 height=65 xoffset=-1 yoffset=-13 xadvance=48 page=0 chnl=0
+char id=199 x=50 y=66 width=44 height=60 xoffset=1 yoffset=5 xadvance=45 page=0 chnl=0
+char id=200 x=473 y=0 width=37 height=60 xoffset=3 yoffset=-8 xadvance=41 page=0 chnl=0
+char id=201 x=94 y=66 width=37 height=60 xoffset=3 yoffset=-8 xadvance=41 page=0 chnl=0
+char id=202 x=50 y=126 width=37 height=59 xoffset=3 yoffset=-7 xadvance=41 page=0 chnl=0
+char id=203 x=87 y=126 width=37 height=59 xoffset=3 yoffset=-7 xadvance=41 page=0 chnl=0
+char id=204 x=131 y=66 width=23 height=60 xoffset=-5 yoffset=-8 xadvance=18 page=0 chnl=0
+char id=205 x=154 y=66 width=23 height=60 xoffset=3 yoffset=-8 xadvance=18 page=0 chnl=0
+char id=206 x=124 y=126 width=26 height=59 xoffset=-3 yoffset=-7 xadvance=18 page=0 chnl=0
+char id=207 x=150 y=126 width=30 height=59 xoffset=-4 yoffset=-7 xadvance=18 page=0 chnl=0
+char id=209 x=180 y=126 width=43 height=59 xoffset=3 yoffset=-7 xadvance=50 page=0 chnl=0
+char id=210 x=97 y=0 width=50 height=61 xoffset=1 yoffset=-8 xadvance=52 page=0 chnl=0
+char id=211 x=147 y=0 width=50 height=61 xoffset=1 yoffset=-8 xadvance=52 page=0 chnl=0
+char id=212 x=197 y=0 width=50 height=61 xoffset=1 yoffset=-8 xadvance=52 page=0 chnl=0
+char id=213 x=247 y=0 width=50 height=61 xoffset=1 yoffset=-8 xadvance=52 page=0 chnl=0
+char id=214 x=177 y=66 width=50 height=60 xoffset=1 yoffset=-7 xadvance=52 page=0 chnl=0
+char id=215 x=0 y=479 width=30 height=30 xoffset=3 yoffset=15 xadvance=36 page=0 chnl=0
+char id=216 x=128 y=338 width=50 height=48 xoffset=1 yoffset=5 xadvance=52 page=0 chnl=0
+char id=217 x=297 y=0 width=43 height=61 xoffset=3 yoffset=-8 xadvance=48 page=0 chnl=0
+char id=218 x=340 y=0 width=43 height=61 xoffset=3 yoffset=-8 xadvance=48 page=0 chnl=0
+char id=219 x=227 y=66 width=43 height=60 xoffset=3 yoffset=-7 xadvance=48 page=0 chnl=0
+char id=220 x=270 y=66 width=43 height=60 xoffset=3 yoffset=-7 xadvance=48 page=0 chnl=0
+char id=221 x=313 y=66 width=47 height=60 xoffset=-1 yoffset=-8 xadvance=44 page=0 chnl=0
+char id=223 x=178 y=338 width=36 height=48 xoffset=3 yoffset=4 xadvance=39 page=0 chnl=0
+char id=224 x=101 y=185 width=34 height=50 xoffset=1 yoffset=3 xadvance=37 page=0 chnl=0
+char id=225 x=135 y=185 width=34 height=50 xoffset=1 yoffset=3 xadvance=37 page=0 chnl=0
+char id=226 x=169 y=185 width=34 height=50 xoffset=1 yoffset=3 xadvance=37 page=0 chnl=0
+char id=227 x=203 y=185 width=34 height=50 xoffset=1 yoffset=3 xadvance=37 page=0 chnl=0
+char id=228 x=152 y=240 width=34 height=49 xoffset=1 yoffset=4 xadvance=37 page=0 chnl=0
+char id=229 x=0 y=185 width=34 height=55 xoffset=1 yoffset=-2 xadvance=37 page=0 chnl=0
+char id=231 x=186 y=240 width=34 height=49 xoffset=1 yoffset=16 xadvance=35 page=0 chnl=0
+char id=232 x=237 y=185 width=36 height=50 xoffset=1 yoffset=3 xadvance=38 page=0 chnl=0
+char id=233 x=273 y=185 width=36 height=50 xoffset=1 yoffset=3 xadvance=38 page=0 chnl=0
+char id=234 x=309 y=185 width=36 height=50 xoffset=1 yoffset=3 xadvance=38 page=0 chnl=0
+char id=235 x=220 y=240 width=36 height=49 xoffset=1 yoffset=4 xadvance=38 page=0 chnl=0
+char id=236 x=256 y=240 width=23 height=49 xoffset=-5 yoffset=3 xadvance=17 page=0 chnl=0
+char id=237 x=279 y=240 width=24 height=49 xoffset=3 yoffset=3 xadvance=17 page=0 chnl=0
+char id=238 x=214 y=338 width=27 height=48 xoffset=-3 yoffset=4 xadvance=17 page=0 chnl=0
+char id=239 x=241 y=338 width=29 height=48 xoffset=-4 yoffset=4 xadvance=17 page=0 chnl=0
+char id=240 x=345 y=185 width=38 height=50 xoffset=1 yoffset=3 xadvance=40 page=0 chnl=0
+char id=241 x=270 y=338 width=35 height=48 xoffset=2 yoffset=4 xadvance=39 page=0 chnl=0
+char id=242 x=383 y=185 width=39 height=50 xoffset=1 yoffset=3 xadvance=41 page=0 chnl=0
+char id=243 x=422 y=185 width=39 height=50 xoffset=1 yoffset=3 xadvance=41 page=0 chnl=0
+char id=244 x=461 y=185 width=39 height=50 xoffset=1 yoffset=3 xadvance=41 page=0 chnl=0
+char id=245 x=0 y=240 width=39 height=50 xoffset=1 yoffset=3 xadvance=41 page=0 chnl=0
+char id=246 x=303 y=240 width=39 height=49 xoffset=1 yoffset=4 xadvance=41 page=0 chnl=0
+char id=249 x=39 y=240 width=35 height=50 xoffset=2 yoffset=3 xadvance=39 page=0 chnl=0
+char id=250 x=74 y=240 width=35 height=50 xoffset=2 yoffset=3 xadvance=39 page=0 chnl=0
+char id=251 x=342 y=240 width=35 height=49 xoffset=2 yoffset=4 xadvance=39 page=0 chnl=0
+char id=252 x=377 y=240 width=35 height=49 xoffset=2 yoffset=4 xadvance=39 page=0 chnl=0
+char id=253 x=383 y=0 width=40 height=61 xoffset=-1 yoffset=3 xadvance=38 page=0 chnl=0
+char id=254 x=223 y=126 width=38 height=59 xoffset=3 yoffset=5 xadvance=42 page=0 chnl=0
+char id=255 x=360 y=66 width=40 height=60 xoffset=-1 yoffset=4 xadvance=38 page=0 chnl=0
+char id=35 x=125 y=0 width=43 height=46 xoffset=0 yoffset=6 xadvance=43 page=1 chnl=0
+char id=43 x=70 y=83 width=34 height=34 xoffset=2 yoffset=13 xadvance=39 page=1 chnl=0
+char id=49 x=25 y=0 width=24 height=46 xoffset=-1 yoffset=6 xadvance=27 page=1 chnl=0
+char id=52 x=49 y=0 width=41 height=46 xoffset=0 yoffset=6 xadvance=41 page=1 chnl=0
+char id=55 x=90 y=0 width=35 height=46 xoffset=2 yoffset=6 xadvance=39 page=1 chnl=0
+char id=60 x=349 y=46 width=33 height=36 xoffset=2 yoffset=11 xadvance=38 page=1 chnl=0
+char id=62 x=382 y=46 width=33 height=36 xoffset=3 yoffset=11 xadvance=38 page=1 chnl=0
+char id=97 x=406 y=0 width=34 height=37 xoffset=1 yoffset=16 xadvance=37 page=1 chnl=0
+char id=99 x=440 y=0 width=34 height=37 xoffset=1 yoffset=16 xadvance=35 page=1 chnl=0
+char id=101 x=474 y=0 width=36 height=37 xoffset=1 yoffset=16 xadvance=38 page=1 chnl=0
+char id=109 x=201 y=46 width=55 height=36 xoffset=2 yoffset=16 xadvance=59 page=1 chnl=0
+char id=110 x=256 y=46 width=35 height=36 xoffset=2 yoffset=16 xadvance=39 page=1 chnl=0
+char id=111 x=0 y=46 width=39 height=37 xoffset=1 yoffset=16 xadvance=41 page=1 chnl=0
+char id=114 x=291 y=46 width=23 height=36 xoffset=3 yoffset=16 xadvance=26 page=1 chnl=0
+char id=115 x=39 y=46 width=31 height=37 xoffset=0 yoffset=16 xadvance=32 page=1 chnl=0
+char id=116 x=0 y=0 width=25 height=46 xoffset=0 yoffset=7 xadvance=25 page=1 chnl=0
+char id=117 x=314 y=46 width=35 height=36 xoffset=2 yoffset=17 xadvance=39 page=1 chnl=0
+char id=118 x=415 y=46 width=40 height=35 xoffset=-1 yoffset=17 xadvance=39 page=1 chnl=0
+char id=119 x=455 y=46 width=54 height=35 xoffset=0 yoffset=17 xadvance=54 page=1 chnl=0
+char id=120 x=0 y=83 width=38 height=35 xoffset=-1 yoffset=17 xadvance=36 page=1 chnl=0
+char id=122 x=38 y=83 width=32 height=35 xoffset=1 yoffset=17 xadvance=34 page=1 chnl=0
+char id=162 x=168 y=0 width=34 height=46 xoffset=1 yoffset=12 xadvance=35 page=1 chnl=0
+char id=165 x=202 y=0 width=47 height=46 xoffset=-1 yoffset=6 xadvance=44 page=1 chnl=0
+char id=198 x=249 y=0 width=69 height=46 xoffset=-1 yoffset=6 xadvance=69 page=1 chnl=0
+char id=208 x=318 y=0 width=49 height=46 xoffset=1 yoffset=6 xadvance=51 page=1 chnl=0
+char id=222 x=367 y=0 width=39 height=46 xoffset=3 yoffset=6 xadvance=42 page=1 chnl=0
+char id=230 x=70 y=46 width=58 height=37 xoffset=1 yoffset=16 xadvance=60 page=1 chnl=0
+char id=247 x=128 y=46 width=34 height=37 xoffset=2 yoffset=11 xadvance=39 page=1 chnl=0
+char id=248 x=162 y=46 width=39 height=37 xoffset=1 yoffset=16 xadvance=41 page=1 chnl=0
kernings count=405
kerning first=244 second=119 amount=-2
kerning first=86 second=225 amount=-2
diff --git a/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Regular-32.fnt b/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Regular-32.fnt
index b8b6f30d..be31bdeb 100644
--- a/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Regular-32.fnt
+++ b/Projekte/jme-common/src/main/resources/Interface/Fonts/Metropolis/Metropolis-Regular-32.fnt
@@ -2,176 +2,176 @@ info face="Metropolis-Regular" size=32 bold=0 italic=0 charset="" unicode=0 stre
common lineHeight=33 base=26 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="Metropolis-Regular-32.png"
chars count=170
-char id=0 x=0 y=0 width=14 height=35 xoffset=1 yoffset=-1 xadvance=16 page=0 chnl=0
-char id=10 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=0 page=0 chnl=0
-char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=0
-char id=33 x=494 y=91 width=7 height=24 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
-char id=34 x=353 y=139 width=11 height=10 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
-char id=35 x=158 y=115 width=22 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
-char id=36 x=212 y=35 width=19 height=29 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=37 x=133 y=115 width=25 height=24 xoffset=0 yoffset=3 xadvance=25 page=0 chnl=0
-char id=38 x=180 y=115 width=22 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
-char id=39 x=364 y=139 width=6 height=10 xoffset=1 yoffset=3 xadvance=7 page=0 chnl=0
-char id=40 x=449 y=0 width=11 height=30 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
-char id=41 x=460 y=0 width=11 height=30 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
-char id=42 x=308 y=139 width=13 height=14 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=0
-char id=43 x=259 y=139 width=17 height=18 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
-char id=44 x=370 y=139 width=7 height=10 xoffset=1 yoffset=21 xadvance=8 page=0 chnl=0
-char id=45 x=423 y=139 width=12 height=5 xoffset=0 yoffset=15 xadvance=12 page=0 chnl=0
-char id=46 x=417 y=139 width=6 height=6 xoffset=1 yoffset=21 xadvance=8 page=0 chnl=0
-char id=47 x=178 y=35 width=17 height=29 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=0
-char id=48 x=94 y=115 width=22 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
-char id=49 x=427 y=91 width=11 height=24 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=0
-char id=50 x=438 y=91 width=18 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
-char id=51 x=456 y=91 width=18 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
-char id=52 x=474 y=91 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=53 x=0 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
-char id=54 x=19 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=55 x=38 y=115 width=18 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
-char id=56 x=56 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
-char id=57 x=75 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=58 x=504 y=115 width=6 height=19 xoffset=1 yoffset=8 xadvance=8 page=0 chnl=0
-char id=59 x=501 y=91 width=7 height=23 xoffset=1 yoffset=8 xadvance=8 page=0 chnl=0
-char id=60 x=173 y=139 width=18 height=19 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0
-char id=61 x=321 y=139 width=17 height=12 xoffset=1 yoffset=9 xadvance=19 page=0 chnl=0
-char id=62 x=191 y=139 width=17 height=19 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
-char id=63 x=116 y=115 width=17 height=24 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=0
-char id=64 x=257 y=35 width=28 height=28 xoffset=0 yoffset=3 xadvance=28 page=0 chnl=0
-char id=65 x=312 y=65 width=25 height=24 xoffset=0 yoffset=3 xadvance=24 page=0 chnl=0
-char id=66 x=337 y=65 width=19 height=24 xoffset=2 yoffset=3 xadvance=22 page=0 chnl=0
-char id=67 x=356 y=65 width=22 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
-char id=68 x=378 y=65 width=22 height=24 xoffset=2 yoffset=3 xadvance=24 page=0 chnl=0
-char id=69 x=400 y=65 width=19 height=24 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
-char id=70 x=419 y=65 width=19 height=24 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
-char id=71 x=438 y=65 width=23 height=24 xoffset=0 yoffset=3 xadvance=24 page=0 chnl=0
-char id=72 x=461 y=65 width=21 height=24 xoffset=1 yoffset=3 xadvance=23 page=0 chnl=0
-char id=73 x=482 y=65 width=6 height=24 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=0
-char id=74 x=488 y=65 width=17 height=24 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=0
-char id=75 x=0 y=91 width=21 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=76 x=21 y=91 width=17 height=24 xoffset=1 yoffset=3 xadvance=18 page=0 chnl=0
-char id=77 x=38 y=91 width=24 height=24 xoffset=2 yoffset=3 xadvance=27 page=0 chnl=0
-char id=78 x=62 y=91 width=21 height=24 xoffset=2 yoffset=3 xadvance=25 page=0 chnl=0
-char id=79 x=83 y=91 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
-char id=80 x=109 y=91 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=81 x=129 y=91 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
-char id=82 x=155 y=91 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=83 x=17 y=65 width=19 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
-char id=84 x=175 y=91 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=85 x=195 y=91 width=22 height=24 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
-char id=86 x=217 y=91 width=25 height=24 xoffset=0 yoffset=3 xadvance=24 page=0 chnl=0
-char id=87 x=242 y=91 width=35 height=24 xoffset=0 yoffset=3 xadvance=35 page=0 chnl=0
-char id=88 x=277 y=91 width=23 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
-char id=89 x=300 y=91 width=23 height=24 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=90 x=323 y=91 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=91 x=471 y=0 width=11 height=30 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=0
-char id=92 x=195 y=35 width=17 height=29 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=0
-char id=93 x=482 y=0 width=11 height=30 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
-char id=94 x=338 y=139 width=15 height=11 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
-char id=95 x=435 y=139 width=22 height=5 xoffset=-2 yoffset=27 xadvance=19 page=0 chnl=0
-char id=96 x=385 y=139 width=9 height=7 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
-char id=97 x=433 y=115 width=17 height=19 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0
-char id=98 x=343 y=91 width=19 height=24 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
-char id=99 x=450 y=115 width=18 height=19 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0
-char id=100 x=362 y=91 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=101 x=468 y=115 width=19 height=19 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=0
-char id=102 x=36 y=65 width=12 height=25 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0
-char id=103 x=48 y=65 width=19 height=25 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
-char id=104 x=381 y=91 width=17 height=24 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
-char id=105 x=302 y=35 width=6 height=26 xoffset=1 yoffset=1 xadvance=7 page=0 chnl=0
-char id=106 x=39 y=0 width=11 height=32 xoffset=-3 yoffset=1 xadvance=7 page=0 chnl=0
-char id=107 x=398 y=91 width=17 height=24 xoffset=1 yoffset=3 xadvance=17 page=0 chnl=0
-char id=108 x=505 y=65 width=5 height=24 xoffset=1 yoffset=3 xadvance=7 page=0 chnl=0
-char id=109 x=0 y=139 width=27 height=19 xoffset=1 yoffset=8 xadvance=29 page=0 chnl=0
-char id=110 x=487 y=115 width=17 height=19 xoffset=1 yoffset=8 xadvance=19 page=0 chnl=0
-char id=111 x=27 y=139 width=20 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
-char id=112 x=67 y=65 width=19 height=25 xoffset=1 yoffset=8 xadvance=20 page=0 chnl=0
-char id=113 x=86 y=65 width=19 height=25 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
-char id=114 x=47 y=139 width=12 height=19 xoffset=1 yoffset=8 xadvance=12 page=0 chnl=0
-char id=115 x=59 y=139 width=16 height=19 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0
-char id=116 x=415 y=91 width=12 height=24 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
-char id=117 x=75 y=139 width=17 height=19 xoffset=1 yoffset=8 xadvance=19 page=0 chnl=0
-char id=118 x=92 y=139 width=20 height=19 xoffset=-1 yoffset=8 xadvance=18 page=0 chnl=0
-char id=119 x=112 y=139 width=27 height=19 xoffset=0 yoffset=8 xadvance=27 page=0 chnl=0
-char id=120 x=139 y=139 width=18 height=19 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0
-char id=121 x=105 y=65 width=20 height=25 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0
-char id=122 x=157 y=139 width=16 height=19 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0
-char id=123 x=493 y=0 width=13 height=30 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
-char id=124 x=506 y=0 width=5 height=29 xoffset=2 yoffset=1 xadvance=9 page=0 chnl=0
-char id=125 x=0 y=35 width=13 height=30 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
-char id=126 x=394 y=139 width=14 height=7 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=0
-char id=161 x=125 y=65 width=7 height=25 xoffset=1 yoffset=8 xadvance=9 page=0 chnl=0
-char id=162 x=132 y=65 width=18 height=25 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=0
-char id=163 x=202 y=115 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=165 x=222 y=115 width=23 height=24 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=168 x=457 y=139 width=12 height=5 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
-char id=175 x=469 y=139 width=12 height=4 xoffset=1 yoffset=4 xadvance=14 page=0 chnl=0
-char id=180 x=408 y=139 width=9 height=7 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
-char id=184 x=377 y=139 width=8 height=9 xoffset=1 yoffset=24 xadvance=10 page=0 chnl=0
-char id=191 x=150 y=65 width=17 height=25 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0
-char id=192 x=70 y=0 width=25 height=31 xoffset=0 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=193 x=95 y=0 width=25 height=31 xoffset=0 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=194 x=120 y=0 width=25 height=31 xoffset=0 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=195 x=145 y=0 width=25 height=31 xoffset=0 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=196 x=13 y=35 width=25 height=30 xoffset=0 yoffset=-3 xadvance=24 page=0 chnl=0
-char id=197 x=14 y=0 width=25 height=33 xoffset=0 yoffset=-6 xadvance=24 page=0 chnl=0
-char id=198 x=245 y=115 width=32 height=24 xoffset=0 yoffset=3 xadvance=33 page=0 chnl=0
-char id=199 x=38 y=35 width=22 height=30 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
-char id=200 x=170 y=0 width=19 height=31 xoffset=1 yoffset=-4 xadvance=20 page=0 chnl=0
-char id=201 x=189 y=0 width=19 height=31 xoffset=1 yoffset=-4 xadvance=20 page=0 chnl=0
-char id=202 x=208 y=0 width=19 height=31 xoffset=1 yoffset=-4 xadvance=20 page=0 chnl=0
-char id=203 x=60 y=35 width=19 height=30 xoffset=1 yoffset=-3 xadvance=20 page=0 chnl=0
-char id=204 x=227 y=0 width=11 height=31 xoffset=-3 yoffset=-4 xadvance=8 page=0 chnl=0
-char id=205 x=238 y=0 width=11 height=31 xoffset=1 yoffset=-4 xadvance=8 page=0 chnl=0
-char id=206 x=249 y=0 width=12 height=31 xoffset=-2 yoffset=-4 xadvance=8 page=0 chnl=0
-char id=207 x=79 y=35 width=12 height=30 xoffset=-2 yoffset=-3 xadvance=8 page=0 chnl=0
-char id=208 x=277 y=115 width=24 height=24 xoffset=0 yoffset=3 xadvance=25 page=0 chnl=0
-char id=209 x=261 y=0 width=21 height=31 xoffset=2 yoffset=-4 xadvance=25 page=0 chnl=0
-char id=210 x=282 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
-char id=211 x=308 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
-char id=212 x=91 y=35 width=26 height=30 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0
-char id=213 x=334 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
-char id=214 x=231 y=35 width=26 height=29 xoffset=0 yoffset=-2 xadvance=26 page=0 chnl=0
-char id=215 x=293 y=139 width=15 height=15 xoffset=1 yoffset=8 xadvance=17 page=0 chnl=0
-char id=216 x=301 y=115 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
-char id=217 x=360 y=0 width=22 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=218 x=382 y=0 width=22 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=219 x=404 y=0 width=22 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
-char id=220 x=117 y=35 width=22 height=30 xoffset=1 yoffset=-3 xadvance=24 page=0 chnl=0
-char id=221 x=426 y=0 width=23 height=31 xoffset=-1 yoffset=-4 xadvance=21 page=0 chnl=0
-char id=222 x=327 y=115 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
-char id=223 x=167 y=65 width=17 height=25 xoffset=1 yoffset=2 xadvance=18 page=0 chnl=0
-char id=224 x=308 y=35 width=17 height=26 xoffset=0 yoffset=1 xadvance=18 page=0 chnl=0
-char id=225 x=325 y=35 width=17 height=26 xoffset=0 yoffset=1 xadvance=18 page=0 chnl=0
-char id=226 x=184 y=65 width=17 height=25 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
-char id=227 x=201 y=65 width=17 height=25 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
-char id=228 x=347 y=115 width=17 height=24 xoffset=0 yoffset=3 xadvance=18 page=0 chnl=0
-char id=229 x=285 y=35 width=17 height=28 xoffset=0 yoffset=-1 xadvance=18 page=0 chnl=0
-char id=230 x=208 y=139 width=31 height=19 xoffset=0 yoffset=8 xadvance=31 page=0 chnl=0
-char id=231 x=218 y=65 width=18 height=25 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0
-char id=232 x=342 y=35 width=19 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
-char id=233 x=361 y=35 width=19 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
-char id=234 x=236 y=65 width=19 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
-char id=235 x=364 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
-char id=236 x=380 y=35 width=10 height=26 xoffset=-3 yoffset=1 xadvance=7 page=0 chnl=0
-char id=237 x=390 y=35 width=12 height=26 xoffset=1 yoffset=1 xadvance=7 page=0 chnl=0
-char id=238 x=402 y=35 width=12 height=26 xoffset=-2 yoffset=1 xadvance=7 page=0 chnl=0
-char id=239 x=383 y=115 width=13 height=24 xoffset=-2 yoffset=3 xadvance=7 page=0 chnl=0
-char id=240 x=414 y=35 width=20 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=241 x=255 y=65 width=17 height=25 xoffset=1 yoffset=2 xadvance=19 page=0 chnl=0
-char id=242 x=434 y=35 width=20 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=243 x=454 y=35 width=20 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
-char id=244 x=272 y=65 width=20 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
-char id=245 x=292 y=65 width=20 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
-char id=246 x=396 y=115 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
-char id=247 x=276 y=139 width=17 height=16 xoffset=1 yoffset=7 xadvance=19 page=0 chnl=0
-char id=248 x=239 y=139 width=20 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
-char id=249 x=474 y=35 width=17 height=26 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=0
-char id=250 x=491 y=35 width=17 height=26 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=0
-char id=251 x=0 y=65 width=17 height=26 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=0
-char id=252 x=416 y=115 width=17 height=24 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
-char id=253 x=50 y=0 width=20 height=32 xoffset=-1 yoffset=1 xadvance=19 page=0 chnl=0
-char id=254 x=139 y=35 width=19 height=30 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
-char id=255 x=158 y=35 width=20 height=30 xoffset=-1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=0 x=0 y=0 width=14 height=35 xoffset=1 yoffset=-1 xadvance=16 page=0 chnl=0
+char id=10 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=0 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=0
+char id=33 x=494 y=91 width=7 height=24 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
+char id=34 x=353 y=139 width=11 height=10 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
+char id=35 x=158 y=115 width=22 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
+char id=36 x=212 y=35 width=19 height=29 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=37 x=133 y=115 width=25 height=24 xoffset=0 yoffset=3 xadvance=25 page=0 chnl=0
+char id=38 x=180 y=115 width=22 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=39 x=364 y=139 width=6 height=10 xoffset=1 yoffset=3 xadvance=7 page=0 chnl=0
+char id=40 x=449 y=0 width=11 height=30 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
+char id=41 x=460 y=0 width=11 height=30 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
+char id=42 x=308 y=139 width=13 height=14 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=0
+char id=43 x=259 y=139 width=17 height=18 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=44 x=370 y=139 width=7 height=10 xoffset=1 yoffset=21 xadvance=8 page=0 chnl=0
+char id=45 x=423 y=139 width=12 height=5 xoffset=0 yoffset=15 xadvance=12 page=0 chnl=0
+char id=46 x=417 y=139 width=6 height=6 xoffset=1 yoffset=21 xadvance=8 page=0 chnl=0
+char id=47 x=178 y=35 width=17 height=29 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=0
+char id=48 x=94 y=115 width=22 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
+char id=49 x=427 y=91 width=11 height=24 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=0
+char id=50 x=438 y=91 width=18 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
+char id=51 x=456 y=91 width=18 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
+char id=52 x=474 y=91 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=53 x=0 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
+char id=54 x=19 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=55 x=38 y=115 width=18 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
+char id=56 x=56 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
+char id=57 x=75 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=58 x=504 y=115 width=6 height=19 xoffset=1 yoffset=8 xadvance=8 page=0 chnl=0
+char id=59 x=501 y=91 width=7 height=23 xoffset=1 yoffset=8 xadvance=8 page=0 chnl=0
+char id=60 x=173 y=139 width=18 height=19 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0
+char id=61 x=321 y=139 width=17 height=12 xoffset=1 yoffset=9 xadvance=19 page=0 chnl=0
+char id=62 x=191 y=139 width=17 height=19 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=63 x=116 y=115 width=17 height=24 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=0
+char id=64 x=257 y=35 width=28 height=28 xoffset=0 yoffset=3 xadvance=28 page=0 chnl=0
+char id=65 x=312 y=65 width=25 height=24 xoffset=0 yoffset=3 xadvance=24 page=0 chnl=0
+char id=66 x=337 y=65 width=19 height=24 xoffset=2 yoffset=3 xadvance=22 page=0 chnl=0
+char id=67 x=356 y=65 width=22 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
+char id=68 x=378 y=65 width=22 height=24 xoffset=2 yoffset=3 xadvance=24 page=0 chnl=0
+char id=69 x=400 y=65 width=19 height=24 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
+char id=70 x=419 y=65 width=19 height=24 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=71 x=438 y=65 width=23 height=24 xoffset=0 yoffset=3 xadvance=24 page=0 chnl=0
+char id=72 x=461 y=65 width=21 height=24 xoffset=1 yoffset=3 xadvance=23 page=0 chnl=0
+char id=73 x=482 y=65 width=6 height=24 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=0
+char id=74 x=488 y=65 width=17 height=24 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=0
+char id=75 x=0 y=91 width=21 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=76 x=21 y=91 width=17 height=24 xoffset=1 yoffset=3 xadvance=18 page=0 chnl=0
+char id=77 x=38 y=91 width=24 height=24 xoffset=2 yoffset=3 xadvance=27 page=0 chnl=0
+char id=78 x=62 y=91 width=21 height=24 xoffset=2 yoffset=3 xadvance=25 page=0 chnl=0
+char id=79 x=83 y=91 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
+char id=80 x=109 y=91 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=81 x=129 y=91 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
+char id=82 x=155 y=91 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=83 x=17 y=65 width=19 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=84 x=175 y=91 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=85 x=195 y=91 width=22 height=24 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=0
+char id=86 x=217 y=91 width=25 height=24 xoffset=0 yoffset=3 xadvance=24 page=0 chnl=0
+char id=87 x=242 y=91 width=35 height=24 xoffset=0 yoffset=3 xadvance=35 page=0 chnl=0
+char id=88 x=277 y=91 width=23 height=24 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
+char id=89 x=300 y=91 width=23 height=24 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=90 x=323 y=91 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=91 x=471 y=0 width=11 height=30 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=0
+char id=92 x=195 y=35 width=17 height=29 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=0
+char id=93 x=482 y=0 width=11 height=30 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
+char id=94 x=338 y=139 width=15 height=11 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
+char id=95 x=435 y=139 width=22 height=5 xoffset=-2 yoffset=27 xadvance=19 page=0 chnl=0
+char id=96 x=385 y=139 width=9 height=7 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
+char id=97 x=433 y=115 width=17 height=19 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0
+char id=98 x=343 y=91 width=19 height=24 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
+char id=99 x=450 y=115 width=18 height=19 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0
+char id=100 x=362 y=91 width=19 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=101 x=468 y=115 width=19 height=19 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=0
+char id=102 x=36 y=65 width=12 height=25 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0
+char id=103 x=48 y=65 width=19 height=25 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
+char id=104 x=381 y=91 width=17 height=24 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=105 x=302 y=35 width=6 height=26 xoffset=1 yoffset=1 xadvance=7 page=0 chnl=0
+char id=106 x=39 y=0 width=11 height=32 xoffset=-3 yoffset=1 xadvance=7 page=0 chnl=0
+char id=107 x=398 y=91 width=17 height=24 xoffset=1 yoffset=3 xadvance=17 page=0 chnl=0
+char id=108 x=505 y=65 width=5 height=24 xoffset=1 yoffset=3 xadvance=7 page=0 chnl=0
+char id=109 x=0 y=139 width=27 height=19 xoffset=1 yoffset=8 xadvance=29 page=0 chnl=0
+char id=110 x=487 y=115 width=17 height=19 xoffset=1 yoffset=8 xadvance=19 page=0 chnl=0
+char id=111 x=27 y=139 width=20 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
+char id=112 x=67 y=65 width=19 height=25 xoffset=1 yoffset=8 xadvance=20 page=0 chnl=0
+char id=113 x=86 y=65 width=19 height=25 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
+char id=114 x=47 y=139 width=12 height=19 xoffset=1 yoffset=8 xadvance=12 page=0 chnl=0
+char id=115 x=59 y=139 width=16 height=19 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0
+char id=116 x=415 y=91 width=12 height=24 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
+char id=117 x=75 y=139 width=17 height=19 xoffset=1 yoffset=8 xadvance=19 page=0 chnl=0
+char id=118 x=92 y=139 width=20 height=19 xoffset=-1 yoffset=8 xadvance=18 page=0 chnl=0
+char id=119 x=112 y=139 width=27 height=19 xoffset=0 yoffset=8 xadvance=27 page=0 chnl=0
+char id=120 x=139 y=139 width=18 height=19 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0
+char id=121 x=105 y=65 width=20 height=25 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0
+char id=122 x=157 y=139 width=16 height=19 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0
+char id=123 x=493 y=0 width=13 height=30 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
+char id=124 x=506 y=0 width=5 height=29 xoffset=2 yoffset=1 xadvance=9 page=0 chnl=0
+char id=125 x=0 y=35 width=13 height=30 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
+char id=126 x=394 y=139 width=14 height=7 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=0
+char id=161 x=125 y=65 width=7 height=25 xoffset=1 yoffset=8 xadvance=9 page=0 chnl=0
+char id=162 x=132 y=65 width=18 height=25 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=0
+char id=163 x=202 y=115 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=165 x=222 y=115 width=23 height=24 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=168 x=457 y=139 width=12 height=5 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
+char id=175 x=469 y=139 width=12 height=4 xoffset=1 yoffset=4 xadvance=14 page=0 chnl=0
+char id=180 x=408 y=139 width=9 height=7 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
+char id=184 x=377 y=139 width=8 height=9 xoffset=1 yoffset=24 xadvance=10 page=0 chnl=0
+char id=191 x=150 y=65 width=17 height=25 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0
+char id=192 x=70 y=0 width=25 height=31 xoffset=0 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=193 x=95 y=0 width=25 height=31 xoffset=0 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=194 x=120 y=0 width=25 height=31 xoffset=0 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=195 x=145 y=0 width=25 height=31 xoffset=0 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=196 x=13 y=35 width=25 height=30 xoffset=0 yoffset=-3 xadvance=24 page=0 chnl=0
+char id=197 x=14 y=0 width=25 height=33 xoffset=0 yoffset=-6 xadvance=24 page=0 chnl=0
+char id=198 x=245 y=115 width=32 height=24 xoffset=0 yoffset=3 xadvance=33 page=0 chnl=0
+char id=199 x=38 y=35 width=22 height=30 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0
+char id=200 x=170 y=0 width=19 height=31 xoffset=1 yoffset=-4 xadvance=20 page=0 chnl=0
+char id=201 x=189 y=0 width=19 height=31 xoffset=1 yoffset=-4 xadvance=20 page=0 chnl=0
+char id=202 x=208 y=0 width=19 height=31 xoffset=1 yoffset=-4 xadvance=20 page=0 chnl=0
+char id=203 x=60 y=35 width=19 height=30 xoffset=1 yoffset=-3 xadvance=20 page=0 chnl=0
+char id=204 x=227 y=0 width=11 height=31 xoffset=-3 yoffset=-4 xadvance=8 page=0 chnl=0
+char id=205 x=238 y=0 width=11 height=31 xoffset=1 yoffset=-4 xadvance=8 page=0 chnl=0
+char id=206 x=249 y=0 width=12 height=31 xoffset=-2 yoffset=-4 xadvance=8 page=0 chnl=0
+char id=207 x=79 y=35 width=12 height=30 xoffset=-2 yoffset=-3 xadvance=8 page=0 chnl=0
+char id=208 x=277 y=115 width=24 height=24 xoffset=0 yoffset=3 xadvance=25 page=0 chnl=0
+char id=209 x=261 y=0 width=21 height=31 xoffset=2 yoffset=-4 xadvance=25 page=0 chnl=0
+char id=210 x=282 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
+char id=211 x=308 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
+char id=212 x=91 y=35 width=26 height=30 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0
+char id=213 x=334 y=0 width=26 height=31 xoffset=0 yoffset=-4 xadvance=26 page=0 chnl=0
+char id=214 x=231 y=35 width=26 height=29 xoffset=0 yoffset=-2 xadvance=26 page=0 chnl=0
+char id=215 x=293 y=139 width=15 height=15 xoffset=1 yoffset=8 xadvance=17 page=0 chnl=0
+char id=216 x=301 y=115 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0
+char id=217 x=360 y=0 width=22 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=218 x=382 y=0 width=22 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=219 x=404 y=0 width=22 height=31 xoffset=1 yoffset=-4 xadvance=24 page=0 chnl=0
+char id=220 x=117 y=35 width=22 height=30 xoffset=1 yoffset=-3 xadvance=24 page=0 chnl=0
+char id=221 x=426 y=0 width=23 height=31 xoffset=-1 yoffset=-4 xadvance=21 page=0 chnl=0
+char id=222 x=327 y=115 width=20 height=24 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0
+char id=223 x=167 y=65 width=17 height=25 xoffset=1 yoffset=2 xadvance=18 page=0 chnl=0
+char id=224 x=308 y=35 width=17 height=26 xoffset=0 yoffset=1 xadvance=18 page=0 chnl=0
+char id=225 x=325 y=35 width=17 height=26 xoffset=0 yoffset=1 xadvance=18 page=0 chnl=0
+char id=226 x=184 y=65 width=17 height=25 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=227 x=201 y=65 width=17 height=25 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=228 x=347 y=115 width=17 height=24 xoffset=0 yoffset=3 xadvance=18 page=0 chnl=0
+char id=229 x=285 y=35 width=17 height=28 xoffset=0 yoffset=-1 xadvance=18 page=0 chnl=0
+char id=230 x=208 y=139 width=31 height=19 xoffset=0 yoffset=8 xadvance=31 page=0 chnl=0
+char id=231 x=218 y=65 width=18 height=25 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0
+char id=232 x=342 y=35 width=19 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
+char id=233 x=361 y=35 width=19 height=26 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0
+char id=234 x=236 y=65 width=19 height=25 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=235 x=364 y=115 width=19 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=0
+char id=236 x=380 y=35 width=10 height=26 xoffset=-3 yoffset=1 xadvance=7 page=0 chnl=0
+char id=237 x=390 y=35 width=12 height=26 xoffset=1 yoffset=1 xadvance=7 page=0 chnl=0
+char id=238 x=402 y=35 width=12 height=26 xoffset=-2 yoffset=1 xadvance=7 page=0 chnl=0
+char id=239 x=383 y=115 width=13 height=24 xoffset=-2 yoffset=3 xadvance=7 page=0 chnl=0
+char id=240 x=414 y=35 width=20 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=241 x=255 y=65 width=17 height=25 xoffset=1 yoffset=2 xadvance=19 page=0 chnl=0
+char id=242 x=434 y=35 width=20 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=243 x=454 y=35 width=20 height=26 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0
+char id=244 x=272 y=65 width=20 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=245 x=292 y=65 width=20 height=25 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=246 x=396 y=115 width=20 height=24 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=247 x=276 y=139 width=17 height=16 xoffset=1 yoffset=7 xadvance=19 page=0 chnl=0
+char id=248 x=239 y=139 width=20 height=19 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
+char id=249 x=474 y=35 width=17 height=26 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=0
+char id=250 x=491 y=35 width=17 height=26 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=0
+char id=251 x=0 y=65 width=17 height=26 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=0
+char id=252 x=416 y=115 width=17 height=24 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=253 x=50 y=0 width=20 height=32 xoffset=-1 yoffset=1 xadvance=19 page=0 chnl=0
+char id=254 x=139 y=35 width=19 height=30 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0
+char id=255 x=158 y=35 width=20 height=30 xoffset=-1 yoffset=3 xadvance=19 page=0 chnl=0
kernings count=375
kerning first=244 second=119 amount=-1
kerning first=86 second=225 amount=-1
diff --git a/Projekte/jme-common/src/test/java/pp/view/ModelViewSynchronizerTest.java b/Projekte/jme-common/src/test/java/pp/view/ModelViewSynchronizerTest.java
index f9f0f919..7b540251 100644
--- a/Projekte/jme-common/src/test/java/pp/view/ModelViewSynchronizerTest.java
+++ b/Projekte/jme-common/src/test/java/pp/view/ModelViewSynchronizerTest.java
@@ -1,9 +1,4 @@
-////////////////////////////////////////
-// Programming project code
-// UniBw M, 2022, 2023, 2024
-// www.unibw.de/inf2
-// (c) Mark Minas (mark.minas@unibw.de)
-////////////////////////////////////////
+
package pp.view;