From fa6a1836062c177a24d535b42d1341cc2eea53be Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 7 Dec 2011 14:02:10 +0000 Subject: [PATCH] Deck builder and server startup (loading cards in background). --- .../src/main/resources/blueprintMapping.txt | 2 +- .../lotro/game/LotroCardBlueprintLibrary.java | 2 +- .../java/com/gempukku/lotro/ServerManagement.java | 1 + .../lotro/collection/CollectionSerializer.java | 1 + .../gempukku/lotro/game/DefaultCardCollection.java | 14 ++++++++++++++ .../java/com/gempukku/lotro/game/LotroServer.java | 3 ++- .../com/gempukku/lotro/league/LeagueService.java | 3 ++- .../lotro/collection/CollectionSerializerTest.java | 2 ++ .../src/main/webapp/js/deckBuildingUi.js | 6 +++++- .../gemp-lotr-web/src/main/webapp/js/jCards.js | 2 ++ 10 files changed, 31 insertions(+), 5 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt index 0fe1a612b..f2128d7bc 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt @@ -25,7 +25,7 @@ 7_297,3_94 7_319,1_299 7_322,1_304 -11_002,1_002 +11_2,1_2 11_153,4_288 11_166,1_299 11_209,1_211 \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprintLibrary.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprintLibrary.java index a4349c8d6..dfeddfa05 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprintLibrary.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprintLibrary.java @@ -12,7 +12,7 @@ public class LotroCardBlueprintLibrary { private String[] _packageNames = new String[]{ "", ".dwarven", ".dunland", ".elven", ".gandalf", ".gollum", ".gondor", ".isengard", ".men", ".orc", - ".raider", ".rohan", ".moria", ".wraith", ".sauron", ".shire", ".site" + ".raider", ".rohan", ".moria", ".wraith", ".sauron", ".shire", ".site", ".uruk_hai" }; private Map _blueprintMap = new HashMap(); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/ServerManagement.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/ServerManagement.java index 6880a9f6d..00284410e 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/ServerManagement.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/ServerManagement.java @@ -25,6 +25,7 @@ public class ServerManagement { LeagueDAO leagueDao = new LeagueDAO(dbAccess, library); DefaultCardCollection collection = new DefaultCardCollection(library); collection.addPacks("Fellowship of the Ring - League", 12); + collection.finishedReading(); leagueDao.addLeague("Test league", "league_test", collection, 20111122, 20121123); } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java index d34039a30..012183a73 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java @@ -127,6 +127,7 @@ public class CollectionSerializer { final String blueprintId = _cardIds.get(i); collection.addCards(blueprintId, _library.getLotroCardBlueprint(blueprintId), cards[i]); } + collection.finishedReading(); return collection; } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/DefaultCardCollection.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/DefaultCardCollection.java index 84339ac15..b396398a5 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/DefaultCardCollection.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/DefaultCardCollection.java @@ -6,11 +6,19 @@ import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import java.util.*; +import java.util.concurrent.CountDownLatch; public class DefaultCardCollection implements MutableCardCollection { private Map _counts = new TreeMap(new CardBlueprintIdComparator()); private Map _cards = new TreeMap(); private LotroCardBlueprintLibrary _library; + + private CountDownLatch _collectionReadyLatch = new CountDownLatch(1); + + public void finishedReading() { + _collectionReadyLatch.countDown(); + } + private static final Comparator NAME_COMPARATOR = new Comparator() { @Override public int compare(Item o1, Item o2) { @@ -160,6 +168,12 @@ public class DefaultCardCollection implements MutableCardCollection { @Override public List getItems(String filter) { + try { + _collectionReadyLatch.await(); + } catch (InterruptedException exp) { + throw new RuntimeException(exp); + } + if (filter == null) filter = ""; String[] filterParams = filter.split(" "); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java index 40ee7852c..33a3296ac 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java @@ -47,7 +47,7 @@ public class LotroServer extends AbstractServer { Thread thr = new Thread( new Runnable() { public void run() { - for (int i = 1; i <= 10; i++) { + for (int i = 1; i <= 11; i++) { for (int j = 1; j <= 365; j++) { String blueprintId = i + "_" + j; try { @@ -62,6 +62,7 @@ public class LotroServer extends AbstractServer { } } } + _defaultCollection.finishedReading(); } } ); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java index 5b2d8dc2d..6947810dc 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java @@ -27,7 +27,7 @@ public class LeagueService { public MutableCardCollection getLeagueCollection(Player player, League league) { final MutableCardCollection collectionForPlayer = _collectionDao.getCollectionForPlayer(player, league.getType()); if (collectionForPlayer == null) { - MutableCardCollection collection = new DefaultCardCollection(_library); + DefaultCardCollection collection = new DefaultCardCollection(_library); MutableCardCollection baseCollection = league.getBaseCollection(); for (CardCollection.Item item : baseCollection.getItems(null)) { @@ -36,6 +36,7 @@ public class LeagueService { else collection.addPacks(item.getBlueprintId(), item.getCount()); } + collection.finishedReading(); return collection; } return collectionForPlayer; diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/collection/CollectionSerializerTest.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/collection/CollectionSerializerTest.java index 2fef06077..d922a36c5 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/collection/CollectionSerializerTest.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/collection/CollectionSerializerTest.java @@ -22,6 +22,7 @@ public class CollectionSerializerTest { collection.addCards("1_23*", library.getLotroCardBlueprint("1_23*"), 3); collection.addCards("1_237T*", library.getLotroCardBlueprint("1_237T*"), 3); collection.addPacks("Fellowship of the Ring - League", 2); + collection.finishedReading(); CollectionSerializer serializer = new CollectionSerializer(library); @@ -47,6 +48,7 @@ public class CollectionSerializerTest { DefaultCardCollection collection = new DefaultCardCollection(library); collection.addPacks("Fellowship of the Ring - League", 8); + collection.finishedReading(); CollectionSerializer serializer = new CollectionSerializer(library); diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js index 151d7247f..75c765a4b 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js @@ -149,6 +149,10 @@ var GempLotrDeckBuildingUI = Class.extend({ + "" + "" + "" + + "" + + "" + + "" + + "" + ""); this.fullFilterDiv.append(""); this.fullFilterDiv.append("