From fd5573797894fbc73f588e34366c2dcdd7e29e41 Mon Sep 17 00:00:00 2001 From: Rob Cashwalker Date: Sat, 24 Sep 2011 16:43:14 +0000 Subject: [PATCH] Add CustomPool property to deck file for filtering from HomeScreen's deck list. --- src/main/java/forge/deck/Deck.java | 10 ++++++++++ src/main/java/forge/deck/DeckManager.java | 23 +++++++++++++++++++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/main/java/forge/deck/Deck.java b/src/main/java/forge/deck/Deck.java index 91f73071cff..0916a0cbb9d 100644 --- a/src/main/java/forge/deck/Deck.java +++ b/src/main/java/forge/deck/Deck.java @@ -32,6 +32,8 @@ public final class Deck implements Comparable, Serializable { private String comment = null; private PlayerType playerType = null; + private boolean customPool = false; + private ItemPool main; private ItemPool sideboard; @@ -254,4 +256,12 @@ public final class Deck implements Comparable, Serializable { public final void setPlayerType(PlayerType recommendedPlayer0) { this.playerType = recommendedPlayer0; } + + public boolean isCustomPool() { + return customPool; + } + + public void setCustomPool(boolean cp) { + customPool = cp; + } } diff --git a/src/main/java/forge/deck/DeckManager.java b/src/main/java/forge/deck/DeckManager.java index 719b03921c0..189b117684a 100644 --- a/src/main/java/forge/deck/DeckManager.java +++ b/src/main/java/forge/deck/DeckManager.java @@ -64,6 +64,7 @@ public class DeckManager { private static final String DECK_TYPE = "Deck Type"; private static final String COMMENT = "Comment"; private static final String PLAYER = "Player"; + private static final String CSTM_POOL = "Custom Pool"; private File deckDir; Map deckMap; @@ -330,15 +331,27 @@ public class DeckManager { String[] linedata = line.split("=", 2); String field = linedata[0].toLowerCase(); + String value = ""; + + if (linedata.length > 1) + value = linedata[1]; + if (NAME.equalsIgnoreCase(field)) { - d.setName(linedata[1]); + d.setName(value); + } else if (COMMENT.equalsIgnoreCase(field)) { - d.setComment(linedata[1]); + d.setComment(value); + } else if (DECK_TYPE.equalsIgnoreCase(field)) { - d.setDeckType(GameType.smartValueOf(linedata[1])); + d.setDeckType(GameType.smartValueOf(value)); + + } else if (CSTM_POOL.equalsIgnoreCase(field)) { + d.setCustomPool(value.equalsIgnoreCase("true")); + } else if (PLAYER.equalsIgnoreCase(field)) { - if ("human".equalsIgnoreCase(linedata[1])) { + if ("human".equalsIgnoreCase(value)) { d.setPlayerType(PlayerType.HUMAN); + } else { d.setPlayerType(PlayerType.COMPUTER); } @@ -466,6 +479,8 @@ public class DeckManager { // these are optional if (d.getComment() != null) { out.write(format("%s=%s%n", COMMENT, d.getComment().replaceAll("\n", ""))); } if (d.getPlayerType() != null) { out.write(format("%s=%s%n", PLAYER, d.getPlayerType())); } + + if (d.isCustomPool()) { out.write(format("%s=%s%n", CSTM_POOL, "true")); } out.write(format("%s%n", "[main]")); writeCardPool(d.getMain(), out);