From e612c7f01aafbaae934897cb1878226d7d8b0124 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Fri, 31 May 2013 23:13:38 +0000 Subject: [PATCH] GameAction.moveTo(final Zone zoneTo, Card c, Integer position) now demands to be run from non-edt GuiDisplayUtil - warped tutor functions in game.getAction.invoke() to run in aux game thread. "Manual Breakpoint" - removed because EDT won't give accurate information on player zones. --- src/main/java/forge/game/GameAction.java | 2 + src/main/java/forge/gui/GuiDisplayUtil.java | 46 ++++--------------- .../forge/gui/match/controllers/CDev.java | 5 -- src/main/java/forge/gui/match/views/VDev.java | 7 --- 4 files changed, 11 insertions(+), 49 deletions(-) diff --git a/src/main/java/forge/game/GameAction.java b/src/main/java/forge/game/GameAction.java index 600e77b3c0b..288557396e4 100644 --- a/src/main/java/forge/game/GameAction.java +++ b/src/main/java/forge/game/GameAction.java @@ -361,6 +361,8 @@ public class GameAction { } public final Card moveTo(final Zone zoneTo, Card c, Integer position) { + FThreads.assertExecutedByEdt(false); + // Ideally move to should never be called without a prevZone // Remove card from Current Zone, if it has one final Zone zoneFrom = game.getZoneOf(c); diff --git a/src/main/java/forge/gui/GuiDisplayUtil.java b/src/main/java/forge/gui/GuiDisplayUtil.java index 04cb387c4f9..371bfb868cb 100644 --- a/src/main/java/forge/gui/GuiDisplayUtil.java +++ b/src/main/java/forge/gui/GuiDisplayUtil.java @@ -50,7 +50,6 @@ import forge.game.PlanarDice; import forge.game.phase.PhaseType; import forge.game.player.HumanPlay; import forge.game.player.Player; -import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; import forge.gui.input.InputSelectCardsFromList; import forge.item.CardDb; @@ -245,13 +244,12 @@ public final class GuiDisplayUtil { */ public static void devModeTutor() { final List lib = getGame().getPhaseHandler().getPriorityPlayer().getCardsIn(ZoneType.Library); - final Object o = GuiChoose.oneOrNone("Choose a card", lib); - if (null == o) { + final Card c = GuiChoose.oneOrNone("Choose a card", lib); + if (null == c) return; - } else { - final Card c = (Card) o; - getGame().getAction().moveToHand(c); - } + + getGame().getAction().invoke(new Runnable() { @Override public void run() { getGame().getAction().moveToHand(c); }}); + } /** @@ -387,9 +385,10 @@ public final class GuiDisplayUtil { return; } - Card forgeCard = c.toForgeCard(p); - getGame().getAction().moveToHand(forgeCard); - + getGame().getAction().invoke(new Runnable() { @Override public void run() { + Card forgeCard = c.toForgeCard(p); + getGame().getAction().moveToHand(forgeCard); + }}); } public static void devModeCardToBattlefield() { @@ -440,33 +439,6 @@ public final class GuiDisplayUtil { } - public static void devModeBreakpoint() { - List Players = getGame().getPlayers(); -/* - Combat CombatHandler = AllZone.getCombat(); - TriggerHandler Triggers = AllZone.getTriggerHandler(); - InputControl InputHandler = AllZone.getInputControl(); - ReplacementHandler Replacements = AllZone.getReplacementHandler(); - StaticEffects StaticHandler = AllZone.getStaticEffects(); -*/ - List Zones = new ArrayList(); - for (Player p : Players) { - - Zones.add(p.getZone(ZoneType.Ante)); - Zones.add(p.getZone(ZoneType.Battlefield)); - Zones.add(p.getZone(ZoneType.Command)); - Zones.add(p.getZone(ZoneType.Exile)); - Zones.add(p.getZone(ZoneType.Graveyard)); - Zones.add(p.getZone(ZoneType.Hand)); - Zones.add(p.getZone(ZoneType.Library)); - Zones.add(p.getZone(ZoneType.Sideboard)); - // player has no stack of his own - } - - //Set a breakpoint on the following statement - System.out.println("Manual Breakpoint"); - } - public static void devModeRiggedPlanarRoll() { final List players = getGame().getPlayers(); diff --git a/src/main/java/forge/gui/match/controllers/CDev.java b/src/main/java/forge/gui/match/controllers/CDev.java index 185674e5c40..df97911253d 100644 --- a/src/main/java/forge/gui/match/controllers/CDev.java +++ b/src/main/java/forge/gui/match/controllers/CDev.java @@ -76,10 +76,6 @@ public enum CDev implements ICDoc { public void mousePressed(final MouseEvent e) { GuiDisplayUtil.devModeCardToBattlefield(); } }; - private final MouseListener madBreakpoint = new MouseAdapter() { @Override - public void mousePressed(final MouseEvent e) { - GuiDisplayUtil.devModeBreakpoint(); } }; - private final MouseListener madRiggedRoll = new MouseAdapter() { @Override public void mousePressed(final MouseEvent e) { GuiDisplayUtil.devModeRiggedPlanarRoll(); } }; @@ -113,7 +109,6 @@ public enum CDev implements ICDoc { VDev.SINGLETON_INSTANCE.getLblTapPermanent().addMouseListener(madTap); VDev.SINGLETON_INSTANCE.getLblUntapPermanent().addMouseListener(madUntap); VDev.SINGLETON_INSTANCE.getLblSetLife().addMouseListener(madLife); - VDev.SINGLETON_INSTANCE.getLblBreakpoint().addMouseListener(madBreakpoint); VDev.SINGLETON_INSTANCE.getLblCardToBattlefield().addMouseListener(madCardToBattlefield); VDev.SINGLETON_INSTANCE.getLblRiggedRoll().addMouseListener(madRiggedRoll); VDev.SINGLETON_INSTANCE.getLblWalkTo().addMouseListener(madWalkToPlane); diff --git a/src/main/java/forge/gui/match/views/VDev.java b/src/main/java/forge/gui/match/views/VDev.java index 1ee556fbcc5..d6b938c69a4 100644 --- a/src/main/java/forge/gui/match/views/VDev.java +++ b/src/main/java/forge/gui/match/views/VDev.java @@ -74,7 +74,6 @@ public enum VDev implements IVDoc { private final DevLabel lblSetLife = new DevLabel("Set Player Life"); private final DevLabel lblCardToBattlefield = new DevLabel("Add card to play"); private final DevLabel lblCardToHand = new DevLabel("Add card to hand"); - private final DevLabel lblBreakpoint = new DevLabel("Trigger breakpoint"); private final DevLabel lblRiggedRoll = new DevLabel("Rigged planar roll"); private final DevLabel lblWalkTo = new DevLabel("Planeswalk to"); @@ -93,7 +92,6 @@ public enum VDev implements IVDoc { devLBLs.add(lblTapPermanent); devLBLs.add(lblUntapPermanent); devLBLs.add(lblSetLife); - devLBLs.add(lblBreakpoint); devLBLs.add(lblWalkTo); scroller.setBorder(null); @@ -116,7 +114,6 @@ public enum VDev implements IVDoc { viewport.add(this.lblTapPermanent, halfConstraints + ", split 2"); viewport.add(this.lblUntapPermanent, halfConstraints); viewport.add(this.lblSetLife, constraints); - viewport.add(this.lblBreakpoint, constraints); } //========= Overridden methods @@ -227,10 +224,6 @@ public enum VDev implements IVDoc { return this.lblSetLife; } - public DevLabel getLblBreakpoint() { - return this.lblBreakpoint; - } - public DevLabel getLblRiggedRoll() { return this.lblRiggedRoll; }