From caa370fec20b95cece53f2fc61c00eda7cb8f58d Mon Sep 17 00:00:00 2001 From: Cedric Beck Date: Fri, 13 Dec 2024 14:23:45 +0100 Subject: [PATCH] added icon --- .../src/main/java/pp/mdga/client/MdgaApp.java | 9 +++++++++ .../mdga/client/NotificationSynchronizer.java | 10 ++++------ .../mdga/client/animation/ShellAnimation.java | 7 +------ .../java/pp/mdga/client/board/BoardHandler.java | 2 +- .../src/main/resources/Images/icon/icon128.png | Bin 0 -> 12058 bytes 5 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 Projekte/mdga/client/src/main/resources/Images/icon/icon128.png diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java index cc285fa7..89634ca2 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java @@ -8,7 +8,10 @@ import pp.mdga.client.dialog.JoinDialog; import pp.mdga.client.view.*; +import javax.imageio.ImageIO; import java.awt.*; +import java.io.File; +import java.io.IOException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.prefs.Preferences; @@ -132,6 +135,12 @@ public static void main(String[] args) { app.setPauseOnLostFocus(false); app.setDisplayStatView(false); + try { + settings.setIcons(new Image[]{ImageIO.read(new File("src/main/resources/Images/icon/icon128.png"))}); + } catch (IOException e) { + System.out.println(e.getMessage()); + } + app.start(); } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java index 3f4cca69..c91c3915 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java @@ -231,12 +231,10 @@ private void handleGame(Notification notification) { if (n.getColor() == ownColor) guiHandler.playCardOwn(n.getCard()); else guiHandler.playCardEnemy(n.getColor(), n.getCard()); - new Timer().schedule(new TimerTask() { - @Override - public void run() { - app.getModelSynchronize().animationEnd(); - } - }, 2200 * MdgaApp.DEBUG_MULTIPLIER); + app.getTimerManager().addTask( + 2.2f * MdgaApp.DEBUG_MULTIPLIER, + app.getModelSynchronize()::animationEnd + ); } else if (notification instanceof PlayerInGameNotification n) { boardHandler.addPlayer(n.getColor(), n.getPiecesList()); guiHandler.addPlayer(n.getColor(), n.getName()); diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/animation/ShellAnimation.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/animation/ShellAnimation.java index 930b974d..c8a446dc 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/animation/ShellAnimation.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/animation/ShellAnimation.java @@ -189,11 +189,6 @@ private void createEffect(Vector3f shootPos, explosionEmitter.setParticlesPerSec(0); explosionEmitter.emitAllParticles(); app.getRootNode().attachChild(explosionEmitter); - new Timer().schedule(new TimerTask() { - @Override - public void run() { - app.getRootNode().detachChild(explosionEmitter); - } - }, 1000); + app.getTimerManager().addTask(1, ()->app.getRootNode().detachChild(explosionEmitter)); } } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/BoardHandler.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/BoardHandler.java index 065c3019..cf5d7311 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/BoardHandler.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/BoardHandler.java @@ -225,7 +225,7 @@ private Spatial createModel(Asset asset, Vector3f pos, float rot) { * @param y The y-coordinate on the grid * @return The corresponding world position */ - private static Vector3f gridToWorld(int x, int y) { + public static Vector3f gridToWorld(int x, int y) { return new Vector3f(GRID_SIZE * x, GRID_SIZE * y, GRID_ELEVATION); } diff --git a/Projekte/mdga/client/src/main/resources/Images/icon/icon128.png b/Projekte/mdga/client/src/main/resources/Images/icon/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..99c939e860b57bf6367da792fe0c39f89e53b063 GIT binary patch literal 12058 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 Ef`j;+H~;_u literal 0 HcmV?d00001