From af3661fea084df6e089c2597dc4b311c77f39e4f Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 7 Jun 2011 00:23:00 +0200 Subject: Always operate on cloned hands in the turn controls git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@380 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/control/turn/HumanTurnControl.java | 56 ++++++++++++------------ 1 file changed, 28 insertions(+), 28 deletions(-) (limited to 'src/jrummikub/control/turn/HumanTurnControl.java') diff --git a/src/jrummikub/control/turn/HumanTurnControl.java b/src/jrummikub/control/turn/HumanTurnControl.java index f13b3a2..3bedc1a 100644 --- a/src/jrummikub/control/turn/HumanTurnControl.java +++ b/src/jrummikub/control/turn/HumanTurnControl.java @@ -73,11 +73,11 @@ public class HumanTurnControl extends AbstractTurnControl { addHandPanelHandlers(); addStoneCollectionHandlers(); - if (turnMode == TurnMode.NORMAL_TURN) { + if (turnInfo.getTurnMode() == TurnMode.NORMAL_TURN) { addTablePanelHandlers(); } - view.getHandPanel().setStones(player.getHand().clone()); + view.getHandPanel().setStones(turnInfo.getHand().clone()); view.getHandPanel().resetCurrentRow(); view.setBottomPanel(BottomPanelType.HUMAN_HAND_PANEL); @@ -227,7 +227,7 @@ public class HumanTurnControl extends AbstractTurnControl { private void handClick(Position pos) { List handStones = new ArrayList(); for (Stone s : selectedStones) { - if (player.getHand().pickUp(s)) { + if (turnInfo.getHand().pickUp(s)) { handStones.add(s); } } @@ -236,28 +236,28 @@ public class HumanTurnControl extends AbstractTurnControl { for (Stone s : handStones) { double x = Math.max(0, Math.min(13, pos.getX() - handStones.size() / 2.0f + i)); - player.getHand().drop(s, + turnInfo.getHand().drop(s, new Position(x, (float) Math.floor(pos.getY()))); selectedStones.remove(s); i++; } view.setSelectedStones(selectedStones); - view.getHandPanel().setStones(player.getHand()); + view.getHandPanel().setStones(turnInfo.getHand()); } private void sortStones(Comparator comparator) { List stones = new ArrayList(); - for (Pair entry : player.getHand()) { + for (Pair entry : turnInfo.getHand()) { stones.add(entry.getFirst()); } for (Stone stone : stones) { - player.getHand().pickUp(stone); + turnInfo.getHand().pickUp(stone); } Collections.sort(stones, comparator); int x = 0, y = 0; for (Stone stone : stones) { - player.getHand().drop(stone, new Position(x, y)); + turnInfo.getHand().drop(stone, new Position(x, y)); x++; if (x >= Hand.WIDTH) { x = 0; @@ -265,7 +265,7 @@ public class HumanTurnControl extends AbstractTurnControl { } } - view.getHandPanel().setStones(player.getHand()); + view.getHandPanel().setStones(turnInfo.getHand()); } private void sortByRuns() { @@ -306,8 +306,8 @@ public class HumanTurnControl extends AbstractTurnControl { private void pickUpSelectedStones() { for (Stone stone : selectedStones) { - player.getHand().pickUp(stone); - table.pickUpStone(stone); + turnInfo.getHand().pickUp(stone); + turnInfo.getTable().pickUpStone(stone); } } @@ -317,12 +317,12 @@ public class HumanTurnControl extends AbstractTurnControl { } pickUpSelectedStones(); - table.drop(new StoneSet(selectedStones), new Position(position.getX() + turnInfo.getTable().drop(new StoneSet(selectedStones), new Position(position.getX() - selectedStones.size() * 0.5f, position.getY() - 0.5f)); selectedStones.clear(); - view.getTablePanel().setStoneSets(table); - view.getHandPanel().setStones(player.getHand()); + view.getTablePanel().setStoneSets(turnInfo.getTable()); + view.getHandPanel().setStones(turnInfo.getHand()); view.setSelectedStones(selectedStones); } @@ -330,7 +330,7 @@ public class HumanTurnControl extends AbstractTurnControl { if (!collect) { selectedStones.clear(); } - StoneSet selectedSet = table.findStoneSet(stone); + StoneSet selectedSet = turnInfo.getTable().findStoneSet(stone); for (Stone setStone : selectedSet) { selectedStones.remove(setStone); selectedStones.add(setStone); @@ -344,8 +344,8 @@ public class HumanTurnControl extends AbstractTurnControl { return; } Stone lastStone = selectedStones.get(selectedStones.size() - 1); - StoneSet lastSet = table.findStoneSet(lastStone); - StoneSet selectedSet = table.findStoneSet(stone); + StoneSet lastSet = turnInfo.getTable().findStoneSet(lastStone); + StoneSet selectedSet = turnInfo.getTable().findStoneSet(stone); if (lastSet != selectedSet) { stoneClick(stone, true); return; @@ -376,13 +376,13 @@ public class HumanTurnControl extends AbstractTurnControl { return; } Stone lastStone = selectedStones.get(selectedStones.size() - 1); - StoneSet lastSet = table.findStoneSet(lastStone); + StoneSet lastSet = turnInfo.getTable().findStoneSet(lastStone); if (lastSet != null) { stoneClick(stone, true); return; } List> handPairs = new ArrayList>(); - for (Pair entry : player.getHand()) { + for (Pair entry : turnInfo.getHand()) { handPairs.add(entry); } @@ -410,7 +410,7 @@ public class HumanTurnControl extends AbstractTurnControl { private void connectorClick(StoneSet set, boolean right) { List stones = new LinkedList(); - Position pos = table.getPosition(set); + Position pos = turnInfo.getTable().getPosition(set); for (Stone stone : set) { stones.add(stone); } @@ -421,24 +421,24 @@ public class HumanTurnControl extends AbstractTurnControl { pickUpSelectedStones(); StoneSet newSet = null; for (Stone stone : stones) { - newSet = table.findStoneSet(stone); + newSet = turnInfo.getTable().findStoneSet(stone); if (newSet != null) { break; } } if (newSet != null) { - Position newPos = table.getPosition(newSet); - table.pickUp(newSet); + Position newPos = turnInfo.getTable().getPosition(newSet); + turnInfo.getTable().pickUp(newSet); if (right) { StoneSet joinedSet = newSet.join(new StoneSet(selectedStones)); - table.drop(joinedSet, newPos); + turnInfo.getTable().drop(joinedSet, newPos); } else { StoneSet joinedSet = new StoneSet(selectedStones).join(newSet); - table.drop(joinedSet, new Position(newPos.getX() + turnInfo.getTable().drop(joinedSet, new Position(newPos.getX() - selectedStones.size(), newPos.getY())); } } else { - table.drop( + turnInfo.getTable().drop( new StoneSet(selectedStones), new Position(pos.getX() + (set.getSize() - selectedStones.size()) * 0.5f, @@ -447,8 +447,8 @@ public class HumanTurnControl extends AbstractTurnControl { selectedStones.clear(); - view.getTablePanel().setStoneSets(table); - view.getHandPanel().setStones(player.getHand()); + view.getTablePanel().setStoneSets(turnInfo.getTable()); + view.getHandPanel().setStones(turnInfo.getHand()); view.setSelectedStones(selectedStones); } -- cgit v1.2.3