From 2732a89da61bf5685cd78a0183a0b82842318138 Mon Sep 17 00:00:00 2001 From: Cedric Beck Date: Sun, 1 Dec 2024 17:47:04 +0100 Subject: [PATCH 1/5] fixed error with SelectObjectOutliner --- .../mdga/client/NotificationSynchronizer.java | 5 +- .../board/Outline/SelectObjectOutliner.java | 46 +++++++++++-------- .../pp/mdga/client/board/OutlineControl.java | 6 +-- .../java/pp/mdga/client/gui/CardControl.java | 3 -- .../java/pp/mdga/client/gui/CardLayer.java | 4 +- .../java/pp/mdga/client/view/GameView.java | 26 +++++++++++ .../notification/AcquireCardNotification.java | 13 +----- 7 files changed, 60 insertions(+), 43 deletions(-) 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 be112418..e0314c46 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 @@ -66,7 +66,6 @@ private void handleLobby(Notification notification) { //lobbyView.setReady(lobbyReadyNotification.getColor(), lobbyReadyNotification.isReady()): } else if (notification instanceof GameNotification n) { app.enter(MdgaState.GAME); - ((GameView) app.getView()).setOwnColor(n.getOwnColor()); } else { throw new RuntimeException("notification not expected: " + notification.toString()); } @@ -77,8 +76,8 @@ private void handleGame(Notification notification) { GuiHandler guiHandler = gameView.getGuiHandler(); BoardHandler boardHandler = gameView.getBoardHandler(); - if (notification instanceof AcquireCardNotification) { - // Handle AcquireCardNotification + if (notification instanceof AcquireCardNotification n) { + guiHandler.addCard(n.getBonusCard()); } else if (notification instanceof ActivePlayerNotification n) { gameView.getGuiHandler().setActivePlayer(n.getColor()); } else if (notification instanceof CeremonyNotification ceremonyNotification) { diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/Outline/SelectObjectOutliner.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/Outline/SelectObjectOutliner.java index 1a20e865..95e0e4eb 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/Outline/SelectObjectOutliner.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/Outline/SelectObjectOutliner.java @@ -7,6 +7,7 @@ import com.jme3.renderer.RenderManager; import com.jme3.renderer.ViewPort; import com.jme3.scene.Spatial; +import pp.mdga.client.MdgaApp; public class SelectObjectOutliner { @@ -19,14 +20,16 @@ public class SelectObjectOutliner { private ViewPort outlineViewport = null; // private OutlineFilter outlineFilter = null; private OutlineProFilter outlineFilter = null; + private final MdgaApp app; - public SelectObjectOutliner(int width, FilterPostProcessor fpp, RenderManager renderManager, AssetManager assetManager, Camera cam) { + public SelectObjectOutliner(int width, FilterPostProcessor fpp, RenderManager renderManager, AssetManager assetManager, Camera cam, MdgaApp app) { this.selected = false; this.fpp = fpp; this.renderManager = renderManager; this.assetManager = assetManager; this.cam = cam; this.width = width; + this.app = app; } public void deselect(Spatial model) { @@ -51,30 +54,35 @@ public void select(Spatial model, ColorRGBA color, int width) { } private void hideOutlineFilterEffect(Spatial model) { - outlineFilter.setEnabled(false); - outlineFilter.getOutlinePreFilter().setEnabled(false); - fpp.removeFilter(outlineFilter); - outlineViewport.detachScene(model); - outlineViewport.clearProcessors(); - renderManager.removePreView(outlineViewport); - outlineViewport = null; + app.enqueue(() -> { + outlineFilter.setEnabled(false); + outlineFilter.getOutlinePreFilter().setEnabled(false); + fpp.removeFilter(outlineFilter); + outlineViewport.detachScene(model); + outlineViewport.clearProcessors(); + renderManager.removePreView(outlineViewport); + outlineViewport = null; + return null; + }); } private void showOutlineFilterEffect(Spatial model, int width, ColorRGBA color) { - outlineViewport = renderManager.createPreView("outlineViewport", cam); - FilterPostProcessor outlineFpp = new FilterPostProcessor(assetManager); + app.enqueue(() -> { + outlineViewport = renderManager.createPreView("outlineViewport", cam); + FilterPostProcessor outlineFpp = new FilterPostProcessor(assetManager); - OutlinePreFilter outlinePreFilter = new OutlinePreFilter(); - outlineFpp.addFilter(outlinePreFilter); + OutlinePreFilter outlinePreFilter = new OutlinePreFilter(); + outlineFpp.addFilter(outlinePreFilter); - outlineViewport.attachScene(model); - outlineViewport.addProcessor(outlineFpp); + outlineViewport.attachScene(model); + outlineViewport.addProcessor(outlineFpp); -// outlineFilter = new OutlineFilter(outlinePreFilter); - outlineFilter = new OutlineProFilter(outlinePreFilter); - outlineFilter.setOutlineColor(color); - outlineFilter.setOutlineWidth(width); + outlineFilter = new OutlineProFilter(outlinePreFilter); + outlineFilter.setOutlineColor(color); + outlineFilter.setOutlineWidth(width); - fpp.addFilter(outlineFilter); + fpp.addFilter(outlineFilter); + return null; + }); } } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/OutlineControl.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/OutlineControl.java index 385d1007..1e0f0501 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/OutlineControl.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/OutlineControl.java @@ -18,17 +18,17 @@ public class OutlineControl extends AbstractControl { public OutlineControl(MdgaApp app, FilterPostProcessor fpp){ this.app = app; - outlineOwn = new SelectObjectOutliner(THICKNESS_DEFAULT, fpp, app.getRenderManager(), app.getAssetManager(), app.getCamera()); + outlineOwn = new SelectObjectOutliner(THICKNESS_DEFAULT, fpp, app.getRenderManager(), app.getAssetManager(), app.getCamera(), app); } public OutlineControl(MdgaApp app, FilterPostProcessor fpp, Camera cam){ this.app = app; - outlineOwn = new SelectObjectOutliner(THICKNESS_DEFAULT, fpp, app.getRenderManager(), app.getAssetManager(), cam); + outlineOwn = new SelectObjectOutliner(THICKNESS_DEFAULT, fpp, app.getRenderManager(), app.getAssetManager(), cam, app); } public OutlineControl(MdgaApp app, FilterPostProcessor fpp, Camera cam, int thickness){ this.app = app; - outlineOwn = new SelectObjectOutliner(thickness, fpp, app.getRenderManager(), app.getAssetManager(), cam); + outlineOwn = new SelectObjectOutliner(thickness, fpp, app.getRenderManager(), app.getAssetManager(), cam, app); } public void outline(ColorRGBA color){ diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardControl.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardControl.java index af62cba8..f07e7e69 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardControl.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardControl.java @@ -84,9 +84,6 @@ public Node getRoot() { public void initSpatial(){ } - - - public void outline(){ super.outline(OUTLINE_COLOR); } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardLayer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardLayer.java index 655adc24..71fd625a 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardLayer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardLayer.java @@ -88,8 +88,6 @@ public void render(RenderManager rm) { @Override public void update( float tpf ) { - - if (init && !cardBuffer.isEmpty()) { for(Spatial spatial : cardBuffer){ root.attachChild(spatial); @@ -114,4 +112,4 @@ public Camera getOverlayCam(){ public Node getRootNode(){ return root; } -} \ No newline at end of file +} diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java index e4236576..a84fe762 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java @@ -9,9 +9,14 @@ import pp.mdga.client.button.ButtonLeft; import pp.mdga.client.button.ButtonRight; import pp.mdga.client.gui.GuiHandler; +import pp.mdga.game.BonusCard; import pp.mdga.game.Color; +import pp.mdga.notification.AcquireCardNotification; import pp.mdga.notification.GameNotification; +import pp.mdga.notification.MovePieceNotification; import pp.mdga.notification.PlayerInGameNotification; +import pp.mdga.notification.SelectableCardsNotification; +import pp.mdga.notification.SelectableMoveNotification; import java.util.ArrayList; import java.util.List; @@ -44,6 +49,27 @@ public GameView(MdgaApp app) { this.boardHandler = new BoardHandler(app, rootNode, fpp); guiHandler = new GuiHandler(app, guiNode, ownColor); + + //Test + setOwnColor(Color.AIRFORCE); + + List uuid1 = new ArrayList<>(); + UUID p1 = UUID.randomUUID(); + UUID p2 = UUID.randomUUID(); + uuid1.add(p1); + uuid1.add(p2); + uuid1.add(UUID.randomUUID()); + uuid1.add(UUID.randomUUID()); + + + app.getNotificationSynchronizer().addTestNotification(new PlayerInGameNotification(Color.AIRFORCE, uuid1, "Cedric")); + app.getNotificationSynchronizer().addTestNotification(new MovePieceNotification(p1, 0, true)); + app.getNotificationSynchronizer().addTestNotification(new SelectableMoveNotification(List.of(p1), List.of(4), List.of(false))); + app.getNotificationSynchronizer().addTestNotification(new AcquireCardNotification(BonusCard.SHIELD)); + app.getNotificationSynchronizer().addTestNotification(new SelectableCardsNotification(List.of(BonusCard.SHIELD))); + + + } @Override diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/notification/AcquireCardNotification.java b/Projekte/mdga/model/src/main/java/pp/mdga/notification/AcquireCardNotification.java index 5a4afff7..fdff397a 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/notification/AcquireCardNotification.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/notification/AcquireCardNotification.java @@ -9,24 +9,13 @@ */ public class AcquireCardNotification extends Notification{ - private UUID cardId; private BonusCard bonusCard; /** * Constructor. - * @param cardId The id of the card that was acquired. */ - public AcquireCardNotification(BonusCard bonusCard, UUID cardId) { + public AcquireCardNotification(BonusCard bonusCard) { this.bonusCard = bonusCard; - this.cardId = cardId; - } - - /** - * Get the id of the card that was acquired. - * @return The id of the card that was acquired. - */ - public UUID getCardId() { - return cardId; } public BonusCard getBonusCard() { From 453aacfe1a4723d755cc2ded1fb2f7d36c6f8ab5 Mon Sep 17 00:00:00 2001 From: Cedric Beck Date: Sun, 1 Dec 2024 18:12:31 +0100 Subject: [PATCH 2/5] fixed missing messages --- .../mdga/client/NotificationSynchronizer.java | 14 +++--- .../java/pp/mdga/client/gui/GuiHandler.java | 8 ++-- .../java/pp/mdga/client/view/GameView.java | 47 ++++++++++++++----- .../mdga/client/gameState/SpectatorState.java | 2 +- .../mdga/client/gameState/WaitingState.java | 2 +- .../notification/RollDiceNotification.java | 28 +++++++---- .../SelectableShieldNotification.java | 16 +++++++ .../notification/TurboActiveNotification.java | 4 ++ 8 files changed, 86 insertions(+), 35 deletions(-) create mode 100644 Projekte/mdga/model/src/main/java/pp/mdga/notification/SelectableShieldNotification.java create mode 100644 Projekte/mdga/model/src/main/java/pp/mdga/notification/TurboActiveNotification.java 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 e0314c46..3d2c674c 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 @@ -145,11 +145,11 @@ private void handleGame(Notification notification) { //TODO } else if (notification instanceof RollDiceNotification n) { if(n.getColor() == gameView.getOwnColor()){ - //guiHandler.rollDice(n.getEyes(), n.isTurbo() ? n.getMultiplier() : -1); + guiHandler.rollDice(n.getEyes(), n.isTurbo() ? n.getMultiplier() : -1); } else { - //if (n.isTurbo()) guiHandler.showRolledDiceMult(n.getEyes(), n.getMultiplier(), n.getColor()); - //else guiHandler.showRolledDice(n.getEyes(), n.getColor()); + if (n.isTurbo()) guiHandler.showRolledDiceMult(n.getEyes(), n.getMultiplier(), n.getColor()); + else guiHandler.showRolledDice(n.getEyes(), n.getColor()); } } else if (notification instanceof SelectableCardsNotification n) { guiHandler.setSelectableCards(n.getCards()); @@ -168,10 +168,10 @@ private void handleGame(Notification notification) { boardHandler.outlineMove(n.getPieces(), n.getMoveIndexe(), n.getHomeMoves()); } else if (notification instanceof SelectableSwapNotification n) { boardHandler.outlineSwap(n.getOwnPieces(), n.getEnemyPieces()); - // } //else if (notification instanceof SelectableShieldNotification n) { - // boardHandler.outlineShield(n.getOwnPieces()); - //} else if (notification instanceof TurboActiveNotification){ - // guiHandler.turbo(); + } else if (notification instanceof SelectableShieldNotification n) { + boardHandler.outlineShield(n.getPieces()); + } else if (notification instanceof TurboActiveNotification){ + guiHandler.turbo(); } else { throw new RuntimeException("notification not expected: " + notification.toString()); } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/GuiHandler.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/GuiHandler.java index 8393653f..8f15fe92 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/GuiHandler.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/GuiHandler.java @@ -15,11 +15,11 @@ public class GuiHandler { private final CardLayerHandler cardLayerHandler; private final PlayerNameHandler playerNameHandler; private final ActionTextHandler actionTextHandler; - private final Color ownColor; + private Color ownColor; private FrameBuffer backFrameBuffer; - public GuiHandler(MdgaApp app, Node guiNode, Color ownColor) { + public GuiHandler(MdgaApp app, Node guiNode) { this.app = app; this.ownColor = ownColor; @@ -33,8 +33,10 @@ public GuiHandler(MdgaApp app, Node guiNode, Color ownColor) { actionTextHandler = new ActionTextHandler(guiNode, app.getAssetManager(), app.getContext().getSettings()); } - public void init() { + public void init(Color ownColor) { cardLayerHandler.init(); + playerNameHandler.show(); + this.ownColor = ownColor; app.getViewPort().setOutputFrameBuffer(backFrameBuffer); } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java index a84fe762..edd74e52 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java @@ -12,11 +12,15 @@ import pp.mdga.game.BonusCard; import pp.mdga.game.Color; import pp.mdga.notification.AcquireCardNotification; +import pp.mdga.notification.ActivePlayerNotification; +import pp.mdga.notification.DiceNowNotification; import pp.mdga.notification.GameNotification; import pp.mdga.notification.MovePieceNotification; import pp.mdga.notification.PlayerInGameNotification; +import pp.mdga.notification.RollDiceNotification; import pp.mdga.notification.SelectableCardsNotification; import pp.mdga.notification.SelectableMoveNotification; +import pp.mdga.notification.ShieldActiveNotification; import java.util.ArrayList; import java.util.List; @@ -48,10 +52,23 @@ public GameView(MdgaApp app) { this.camera = new CameraHandler(app, fpp); this.boardHandler = new BoardHandler(app, rootNode, fpp); - guiHandler = new GuiHandler(app, guiNode, ownColor); + guiHandler = new GuiHandler(app, guiNode); + + } + + @Override + public void onEnter() { + camera.init(); + boardHandler.init(); + setOwnColor(Color.AIRFORCE); + guiHandler.init(ownColor); + + app.getViewPort().addProcessor(fpp); + + app.getAcousticHandler().playSound(MdgaSound.START); + //Test - setOwnColor(Color.AIRFORCE); List uuid1 = new ArrayList<>(); UUID p1 = UUID.randomUUID(); @@ -60,27 +77,31 @@ public GameView(MdgaApp app) { uuid1.add(p2); uuid1.add(UUID.randomUUID()); uuid1.add(UUID.randomUUID()); + List uuid2 = new ArrayList<>(); + UUID p1_2 = UUID.randomUUID(); + UUID p2_2 = UUID.randomUUID(); + uuid2.add(p1_2); + uuid2.add(p2_2); + uuid2.add(UUID.randomUUID()); + uuid2.add(UUID.randomUUID()); app.getNotificationSynchronizer().addTestNotification(new PlayerInGameNotification(Color.AIRFORCE, uuid1, "Cedric")); + app.getNotificationSynchronizer().addTestNotification(new PlayerInGameNotification(Color.NAVY, uuid2, "Test")); app.getNotificationSynchronizer().addTestNotification(new MovePieceNotification(p1, 0, true)); + app.getNotificationSynchronizer().addTestNotification(new MovePieceNotification(p1_2, 30, true)); app.getNotificationSynchronizer().addTestNotification(new SelectableMoveNotification(List.of(p1), List.of(4), List.of(false))); app.getNotificationSynchronizer().addTestNotification(new AcquireCardNotification(BonusCard.SHIELD)); app.getNotificationSynchronizer().addTestNotification(new SelectableCardsNotification(List.of(BonusCard.SHIELD))); + app.getNotificationSynchronizer().addTestNotification(new ShieldActiveNotification(p1)); + app.getNotificationSynchronizer().addTestNotification(new ActivePlayerNotification(Color.NAVY)); + +// app.getNotificationSynchronizer().addTestNotification(new DiceNowNotification()); +// app.getNotificationSynchronizer().addTestNotification(new RollDiceNotification(Color.AIRFORCE, 5, true, 2)); - } - - @Override - public void onEnter() { - camera.init(); - boardHandler.init(); - guiHandler.init(); - - app.getViewPort().addProcessor(fpp); - - app.getAcousticHandler().playSound(MdgaSound.START); + p1 = p1; } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/SpectatorState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/SpectatorState.java index 13680223..9a0cbd7d 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/SpectatorState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/SpectatorState.java @@ -34,7 +34,7 @@ public void received(CeremonyMessage msg){ @Override public void received(DieMessage msg){ logic.getGame().setDiceEyes(msg.getDiceEye()); - logic.addNotification(new RollDiceNotification(logic.getGame().getActiveColor(), logic.getGame().getDiceEyes(), logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier())); +// logic.addNotification(new RollDiceNotification(logic.getGame().getActiveColor(), logic.getGame().getDiceEyes(), logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier())); if(msg.getDiceEye() == 6){ logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseDiced6(); logic.getGame().getGameStatistics().increaseDiced6(); diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/WaitingState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/WaitingState.java index 69d8299c..0a2f72b0 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/WaitingState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/WaitingState.java @@ -40,7 +40,7 @@ public void received(DiceNowMessage msg){ @Override public void received(DieMessage msg){ logic.getGame().setDiceEyes(msg.getDiceEye()); - logic.addNotification(new RollDiceNotification(logic.getGame().getActiveColor(), logic.getGame().getDiceEyes(), logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier())); +// logic.addNotification(new RollDiceNotification(logic.getGame().getActiveColor(), logic.getGame().getDiceEyes(), logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier())); if(msg.getDiceEye() == 6){ logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseDiced6(); logic.getGame().getGameStatistics().increaseDiced6(); diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/notification/RollDiceNotification.java b/Projekte/mdga/model/src/main/java/pp/mdga/notification/RollDiceNotification.java index 3f778d3f..13bf849b 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/notification/RollDiceNotification.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/notification/RollDiceNotification.java @@ -9,18 +9,26 @@ public class RollDiceNotification extends Notification{ private Color color; private int eyes; - private int moveNumber; + private boolean turbo; + private int multiplier; /** * Constructor. * @param color the color of the player that rolled the die. * @param eyes the number of eyes that were rolled. - * @param moveNumber the number of the move that was made. */ - public RollDiceNotification(Color color, int eyes, int moveNumber) { + public RollDiceNotification(Color color, int eyes) { this.color = color; this.eyes = eyes; - this.moveNumber = moveNumber; + this.turbo = false; + this.multiplier = -1; + } + + public RollDiceNotification(Color color, int eyes, boolean turbo, int multiplier) { + this.color = color; + this.eyes = eyes; + this.turbo = turbo; + this.multiplier = multiplier; } /** @@ -39,11 +47,11 @@ public int getEyes() { return eyes; } - /** - * Get the number of the move that was made. - * @return the number of the move that was made. - */ - public int getMoveNumber() { - return moveNumber; + public int getMultiplier() { + return multiplier; + } + + public boolean isTurbo() { + return turbo; } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/notification/SelectableShieldNotification.java b/Projekte/mdga/model/src/main/java/pp/mdga/notification/SelectableShieldNotification.java new file mode 100644 index 00000000..f0a9982d --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/notification/SelectableShieldNotification.java @@ -0,0 +1,16 @@ +package pp.mdga.notification; + +import java.util.List; +import java.util.UUID; + +public class SelectableShieldNotification extends Notification{ + private List pieces; + + public SelectableShieldNotification(List pieces){ + this.pieces = pieces; + } + + public List getPieces() { + return pieces; + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/notification/TurboActiveNotification.java b/Projekte/mdga/model/src/main/java/pp/mdga/notification/TurboActiveNotification.java new file mode 100644 index 00000000..890f2451 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/notification/TurboActiveNotification.java @@ -0,0 +1,4 @@ +package pp.mdga.notification; + +public class TurboActiveNotification extends Notification{ +} From c08c81ea468565734ca9d0011b6e54dbd8719865 Mon Sep 17 00:00:00 2001 From: Cedric Beck Date: Sun, 1 Dec 2024 18:42:57 +0100 Subject: [PATCH 3/5] edited map --- .../client/src/main/resources/Maps/map.mdga | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Projekte/mdga/client/src/main/resources/Maps/map.mdga b/Projekte/mdga/client/src/main/resources/Maps/map.mdga index fc540b4d..5e906521 100644 --- a/Projekte/mdga/client/src/main/resources/Maps/map.mdga +++ b/Projekte/mdga/client/src/main/resources/Maps/map.mdga @@ -46,17 +46,21 @@ cir 5,4 0 cir 5,5 0 #Assets -jet -10,-1 45 -ship 11,0 169 -big_tent -9,-7 130 -big_tent 7,-10 225 +jet -12,0 45 +jet -17,-2 55 small_tent -9,7 45 small_tent -10,5 60 +small_tent -7,8 30 +ship 11,0 169 +small_tent 6,8 340 +small_tent 8,7 320 +big_tent -10,-9 130 +big_tent 9,-10 225 radar 0,10 -20 -small_tent 6,8 190 -small_tent 8,7 160 tank -1,-10 135 - +tank 0,-18 180 +tank 3,-18 180 +tank -3,-18 180 #Yellow (CIR) wait Node node_wait_yellow 4,5 0 From e5b007accd1eb9c32de36a26cc90bbd4518c0e2e Mon Sep 17 00:00:00 2001 From: Cedric Beck Date: Sun, 1 Dec 2024 20:24:26 +0100 Subject: [PATCH 4/5] debug commit --- .../main/java/pp/mdga/client/board/BoardHandler.java | 1 - .../client/board/Outline/SelectObjectOutliner.java | 12 ++++++------ .../src/main/java/pp/mdga/client/view/GameView.java | 9 +++++---- .../src/main/java/pp/mdga/client/view/MdgaView.java | 7 ++++--- 4 files changed, 15 insertions(+), 14 deletions(-) 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 524a36df..d3bcbd7b 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 @@ -68,7 +68,6 @@ public void init() { public void shutdown(){ clearSelectable(); isInitialised = false; - initMap(); rootNode.detachChild(rootNodeBoard); } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/Outline/SelectObjectOutliner.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/Outline/SelectObjectOutliner.java index 95e0e4eb..4d417717 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/Outline/SelectObjectOutliner.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/Outline/SelectObjectOutliner.java @@ -54,7 +54,7 @@ public void select(Spatial model, ColorRGBA color, int width) { } private void hideOutlineFilterEffect(Spatial model) { - app.enqueue(() -> { +// app.enqueue(() -> { outlineFilter.setEnabled(false); outlineFilter.getOutlinePreFilter().setEnabled(false); fpp.removeFilter(outlineFilter); @@ -62,12 +62,12 @@ private void hideOutlineFilterEffect(Spatial model) { outlineViewport.clearProcessors(); renderManager.removePreView(outlineViewport); outlineViewport = null; - return null; - }); +// return null; +// }); } private void showOutlineFilterEffect(Spatial model, int width, ColorRGBA color) { - app.enqueue(() -> { +// app.enqueue(() -> { outlineViewport = renderManager.createPreView("outlineViewport", cam); FilterPostProcessor outlineFpp = new FilterPostProcessor(assetManager); @@ -82,7 +82,7 @@ private void showOutlineFilterEffect(Spatial model, int width, ColorRGBA color) outlineFilter.setOutlineWidth(width); fpp.addFilter(outlineFilter); - return null; - }); +// return null; +// }); } } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java index edd74e52..3d908271 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java @@ -90,11 +90,11 @@ public void onEnter() { app.getNotificationSynchronizer().addTestNotification(new PlayerInGameNotification(Color.NAVY, uuid2, "Test")); app.getNotificationSynchronizer().addTestNotification(new MovePieceNotification(p1, 0, true)); app.getNotificationSynchronizer().addTestNotification(new MovePieceNotification(p1_2, 30, true)); - app.getNotificationSynchronizer().addTestNotification(new SelectableMoveNotification(List.of(p1), List.of(4), List.of(false))); +// app.getNotificationSynchronizer().addTestNotification(new SelectableMoveNotification(List.of(p1), List.of(4), List.of(false))); app.getNotificationSynchronizer().addTestNotification(new AcquireCardNotification(BonusCard.SHIELD)); app.getNotificationSynchronizer().addTestNotification(new SelectableCardsNotification(List.of(BonusCard.SHIELD))); - app.getNotificationSynchronizer().addTestNotification(new ShieldActiveNotification(p1)); - app.getNotificationSynchronizer().addTestNotification(new ActivePlayerNotification(Color.NAVY)); +// app.getNotificationSynchronizer().addTestNotification(new ShieldActiveNotification(p1)); +// app.getNotificationSynchronizer().addTestNotification(new ActivePlayerNotification(Color.NAVY)); // app.getNotificationSynchronizer().addTestNotification(new DiceNowNotification()); // app.getNotificationSynchronizer().addTestNotification(new RollDiceNotification(Color.AIRFORCE, 5, true, 2)); @@ -107,9 +107,10 @@ public void onEnter() { @Override public void onLeave() { - camera.shutdown(); boardHandler.shutdown(); guiHandler.shutdown(); + camera.shutdown(); + confirmButton.hide(); diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/MdgaView.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/MdgaView.java index bea0cbff..7b45665f 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/MdgaView.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/MdgaView.java @@ -51,8 +51,8 @@ public void enter() { } public void leave() { - app.getRootNode().detachChild(rootNode); - app.getGuiNode().detachChild(guiNode); + onLeave(); + settingsButton.hide(); @@ -60,7 +60,8 @@ public void leave() { pressEscape(); } - onLeave(); + app.getRootNode().detachChild(rootNode); + app.getGuiNode().detachChild(guiNode); } public void enterOverlay(Overlay overlay) { From da2b1af69848b8b288c0046d34044a98009592bd Mon Sep 17 00:00:00 2001 From: Cedric Beck Date: Sun, 1 Dec 2024 20:45:24 +0100 Subject: [PATCH 5/5] fixed shutdown guiHandler bug --- .../src/main/java/pp/mdga/client/InputSynchronizer.java | 5 +++++ .../src/main/java/pp/mdga/client/gui/CardLayerHandler.java | 2 ++ .../client/src/main/java/pp/mdga/client/view/GameView.java | 5 +++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java index d7628792..39732816 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java @@ -18,8 +18,12 @@ import pp.mdga.client.board.PieceControl; import pp.mdga.client.gui.CardControl; import pp.mdga.client.view.GameView; +import pp.mdga.game.BonusCard; import pp.mdga.game.Color; import pp.mdga.game.Piece; +import pp.mdga.notification.SelectableCardsNotification; + +import java.util.List; public class InputSynchronizer { @@ -112,6 +116,7 @@ else if(boardSelect != null) { } if(name.equals("Test") &&isPressed){ if(app.getView() instanceof GameView gameView){ + app.getNotificationSynchronizer().addTestNotification(new SelectableCardsNotification(List.of(BonusCard.SHIELD))); } } } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardLayerHandler.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardLayerHandler.java index 81df1da7..fede1dba 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardLayerHandler.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/CardLayerHandler.java @@ -43,6 +43,7 @@ public void init() { cardLayerCamera = createOverlayCam(); cardLayer = new CardLayer(fpp, cardLayerCamera, backTexture); app.getStateManager().attach(cardLayer); + diceControl = new DiceControl(app.getAssetManager()); diceControl.create(new Vector3f(0, 0, 0), 1f, false); } @@ -50,6 +51,7 @@ public void init() { public void shutdown() { if (cardLayer != null) { cardLayer.shutdown(); + clearSelectableCards(); } cardLayer = null; } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java index 3d908271..c4178e70 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java @@ -67,7 +67,6 @@ public void onEnter() { app.getAcousticHandler().playSound(MdgaSound.START); - //Test List uuid1 = new ArrayList<>(); @@ -92,7 +91,8 @@ public void onEnter() { app.getNotificationSynchronizer().addTestNotification(new MovePieceNotification(p1_2, 30, true)); // app.getNotificationSynchronizer().addTestNotification(new SelectableMoveNotification(List.of(p1), List.of(4), List.of(false))); app.getNotificationSynchronizer().addTestNotification(new AcquireCardNotification(BonusCard.SHIELD)); - app.getNotificationSynchronizer().addTestNotification(new SelectableCardsNotification(List.of(BonusCard.SHIELD))); + +// app.getNotificationSynchronizer().addTestNotification(new SelectableCardsNotification(List.of(BonusCard.SHIELD))); // app.getNotificationSynchronizer().addTestNotification(new ShieldActiveNotification(p1)); // app.getNotificationSynchronizer().addTestNotification(new ActivePlayerNotification(Color.NAVY)); @@ -103,6 +103,7 @@ public void onEnter() { p1 = p1; + } @Override