From 3f95238d84d02f094fefa247f49a6302df42ab0f Mon Sep 17 00:00:00 2001 From: jendave Date: Sun, 7 Aug 2011 01:06:06 +0000 Subject: [PATCH] Moved SetInfo lists to external files. --- .gitattributes | 2 + res/blockdata/blocks.txt | 42 +++++ res/blockdata/setdata.txt | 83 ++++++++++ src/forge/SetInfoUtil.java | 321 ++++++++++++++++++------------------- 4 files changed, 281 insertions(+), 167 deletions(-) create mode 100644 res/blockdata/blocks.txt create mode 100644 res/blockdata/setdata.txt diff --git a/.gitattributes b/.gitattributes index d96f0e24519..3a0921094e7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -17,6 +17,8 @@ build/manifest.forge -text /pom.xml svneol=native#text/xml res/AllTokens.txt -text svneol=native#text/plain res/PerSetTracking.py -text svneol=native#text/x-python +res/blockdata/blocks.txt svneol=native#text/plain +res/blockdata/setdata.txt svneol=native#text/plain res/booster-decks -text svneol=unset#unset res/boosterdata/10E.pack -text res/boosterdata/2ED.pack -text diff --git a/res/blockdata/blocks.txt b/res/blockdata/blocks.txt new file mode 100644 index 00000000000..876caa4336b --- /dev/null +++ b/res/blockdata/blocks.txt @@ -0,0 +1,42 @@ +Index:0|Set0:LEA|Name:Alpha|DraftPacks:3|LandSetCode:LEA|SealedPacks:6 +Index:0|Set0:LEB|Name:Beta|DraftPacks:3|LandSetCode:LEB|SealedPacks:6 +Index:0|Set0:2ED|Name:Unlimited|DraftPacks:3|LandSetCode:2ED|SealedPacks:6 +Index:0|Set0:ARN|Name:Arabian Nights|DraftPacks:5|LandSetCode:2ED|SealedPacks:9 +Index:0|Set0:ATQ|Name:Antiquities|DraftPacks:5|LandSetCode:ATQ|SealedPacks:9 +Index:0|Set0:3ED|Name:Revised|DraftPacks:3|LandSetCode:3ED|SealedPacks:6 +Index:0|Set0:LEG|Name:Legends|DraftPacks:3|LandSetCode:3ED|SealedPacks:6 +Index:0|Set0:DRK|Name:The Dark|DraftPacks:5|LandSetCode:3ED|SealedPacks:9 +Index:0|Set0:FEM|Name:Fallen Empires|DraftPacks:5|LandSetCode:3ED|SealedPacks:9 +Index:0|Set0:4ED|Name:Fourth Edition|DraftPacks:3|LandSetCode:4ED|SealedPacks:6 +Index:0|Set0:ICE|Set1:ALL|Set2:CSP|Name:Ice Age|DraftPacks:3|LandSetCode:ICE|SealedPacks:6 +Index:0|Set0:HML|Name:Homelands|DraftPacks:5|LandSetCode:4ED|SealedPacks:9 +Index:0|Set0:MIR|Set1:VIS|Set2:WTH|Name:Mirage|DraftPacks:3|LandSetCode:MIR|SealedPacks:6 +Index:0|Set0:5ED|Name:Fifth Edition|DraftPacks:3|LandSetCode:5ED|SealedPacks:6 +Index:0|Set0:POR|Name:Portal|DraftPacks:3|LandSetCode:POR|SealedPacks:6 +Index:0|Set0:TMP|Set1:STH|Set2:EXO|Name:Tempest|DraftPacks:3|LandSetCode:TMP|SealedPacks:6 +Index:0|Set0:PO2|Name:Portal Second Age|DraftPacks:3|LandSetCode:PO2|SealedPacks:6 +Index:0|Set0:USG|Set1:ULG|Set2:UDS|Name:Urza|DraftPacks:3|LandSetCode:USG|SealedPacks:6 +Index:0|Set0:6ED|Name:Sixth Edition|DraftPacks:3|LandSetCode:6ED|SealedPacks:6 +Index:0|Set0:PTK|Name:Portal Three Kingdoms|DraftPacks:5|LandSetCode:PTK|SealedPacks:9 +Index:0|Set0:MMQ|Set1:NMS|Set2:PCY|Name:Masques|DraftPacks:3|LandSetCode:MMQ|SealedPacks:6 +Index:0|Set0:INV|Set1:PLS|Set2:APC|Name:Invasion|DraftPacks:3|LandSetCode:INV|SealedPacks:6 +Index:0|Set0:7ED|Name:Seventh Edition|DraftPacks:3|LandSetCode:7ED|SealedPacks:6 +Index:0|Set0:ODY|Set1:TOR|Set2:JUD|Name:Odyssey|DraftPacks:3|LandSetCode:ODY|SealedPacks:6 +Index:0|Set0:ONS|Set1:LGN|Set2:SCG|Name:Onslaught|DraftPacks:3|LandSetCode:ONS|SealedPacks:6 +Index:0|Set0:8ED|Name:Eighth Edition|DraftPacks:3|LandSetCode:8ED|SealedPacks:6 +Index:0|Set0:MRD|Set1:DST|Set2:5DN|Name:Mirrodin|DraftPacks:3|LandSetCode:MRD|SealedPacks:6 +Index:0|Set0:CHK|Set1:BOK|Set2:SOK|Name:Kamigawa|DraftPacks:3|LandSetCode:CHK|SealedPacks:6 +Index:0|Set0:9ED|Name:Ninth Edition|DraftPacks:3|LandSetCode:9ED|SealedPacks:6 +Index:0|Set0:RAV|Set1:GPT|Set2:DIS|Name:Ravnica|DraftPacks:3|LandSetCode:RAV|SealedPacks:6 +Index:0|Set0:CSP|Name:Coldsnap|DraftPacks:3|LandSetCode:9ED|SealedPacks:6 +Index:0|Set0:TSP|Set1:PLC|Set2:FUT|Name:Time Spiral|DraftPacks:3|LandSetCode:TSP|SealedPacks:6 +Index:0|Set0:10E|Name:Tenth Edition|DraftPacks:3|LandSetCode:10E|SealedPacks:6 +Index:0|Set0:LRW|Set1:MOR|Name:Lorwyn|DraftPacks:3|LandSetCode:LRW|SealedPacks:6 +Index:0|Set0:SHM|Set1:EVE|Name:Shadowmoor|DraftPacks:3|LandSetCode:SHM|SealedPacks:6 +Index:0|Set0:ALA|Set1:CFX|Set2:ARB|Name:Shards of Alara|DraftPacks:3|LandSetCode:ALA|SealedPacks:6 +Index:0|Set0:M10|Name:Magic 2010|DraftPacks:3|LandSetCode:M10|SealedPacks:6 +Index:0|Set0:ZEN|Set1:WWK|Name:Zendikar|DraftPacks:3|LandSetCode:ZEN|SealedPacks:6 +Index:0|Set0:ROE|Name:Rise of the Eldrazi|DraftPacks:3|LandSetCode:ROE|SealedPacks:6 +Index:0|Set0:M11|Name:Magic 2011|DraftPacks:3|LandSetCode:M11|SealedPacks:6 +Index:0|Set0:SOM|Set1:MBS|Set2:NPH|Name:Scars of Mirrodin|DraftPacks:3|LandSetCode:SOM|SealedPacks:6 + diff --git a/res/blockdata/setdata.txt b/res/blockdata/setdata.txt new file mode 100644 index 00000000000..355ec7d0a4b --- /dev/null +++ b/res/blockdata/setdata.txt @@ -0,0 +1,83 @@ +Index:0|Code2:MBP|Code3:MBP|Name:Media Insert Promo +Index:1|Code2:A|Code3:LEA|Name:Limited Edition Alpha +Index:2|Code2:B|Code3:LEB|Name:Limited Edition Beta +Index:3|Code2:U|Code3:2ED|Name:Unlimited +Index:4|Code2:AN|Code3:ARN|Name:Arabian Nights +Index:5|Code2:AQ|Code3:ATQ|Name:Antiquities +Index:6|Code2:R|Code3:3ED|Name:Revised Edition +Index:7|Code2:LG|Code3:LEG|Name:Legends +Index:8|Code2:DK|Code3:DRK|Name:The Dark +Index:9|Code2:FE|Code3:FEM|Name:Fallen Empires + +Index:10|Code2:4E|Code3:4ED|Name:Fourth Edition +Index:11|Code2:IA|Code3:ICE|Name:Ice Age +Index:12|Code2:CH|Code3:CHR|Name:Chronicles +Index:13|Code2:HL|Code3:HML|Name:Homelands +Index:14|Code2:AL|Code3:ALL|Name:Alliances +Index:15|Code2:MI|Code3:MIR|Name:Mirage +Index:16|Code2:VI|Code3:VIS|Name:Visions +Index:17|Code2:5E|Code3:5ED|Name:Fifth Edition +Index:18|Code2:PT|Code3:POR|Name:Portal +Index:19|Code2:WL|Code3:WTH|Name:Weatherlight + +Index:20|Code2:TE|Code3:TMP|Name:Tempest +Index:21|Code2:SH|Code3:STH|Name:Stronghold +Index:22|Code2:EX|Code3:EXO|Name:Exodus +Index:23|Code2:P2|Code3:PO2|Name:Portal Second Age +Index:24|Code2:US|Code3:USG|Name:Urza's Saga +Index:25|Code2:UL|Code3:ULG|Name:Urza's Legacy +Index:26|Code2:6E|Code3:6ED|Name:Classic (Sixth Edition) +Index:27|Code2:UD|Code3:UDS|Name:Urza's Destiny +Index:28|Code2:P3|Code3:PTK|Name:Portal Three Kingdoms +Index:29|Code2:ST|Code3:S99|Name:Starter 1999 + +Index:30|Code2:MM|Code3:MMQ|Name:Mercadian Masques +Index:31|Code2:NE|Code3:NMS|Name:Nemesis +Index:32|Code2:S2K|Code3:S00|Name:Starter 2000 +Index:33|Code2:PY|Code3:PCY|Name:Prophecy +Index:34|Code2:IN|Code3:INV|Name:Invasion +Index:35|Code2:PS|Code3:PLS|Name:Planeshift +Index:36|Code2:7E|Code3:7ED|Name:Seventh Edition +Index:37|Code2:AP|Code3:APC|Name:Apocalypse +Index:38|Code2:OD|Code3:ODY|Name:Odyssey +Index:39|Code2:TO|Code3:TOR|Name:Torment + +Index:40|Code2:JU|Code3:JUD|Name:Judgment +Index:41|Code2:ON|Code3:ONS|Name:Onslaught +Index:42|Code2:LE|Code3:LGN|Name:Legions +Index:43|Code2:SC|Code3:SCG|Name:Scourge +Index:44|Code2:8E|Code3:8ED|Name:Core Set - Eighth Edition +Index:45|Code2:MR|Code3:MRD|Name:Mirrodin +Index:46|Code2:DS|Code3:DST|Name:Darksteel +Index:47|Code2:FD|Code3:5DN|Name:Fifth Dawn +Index:48|Code2:CHK|Code3:CHK|Name:Champions of Kamigawa +Index:49|Code2:BOK|Code3:BOK|Name:Betrayers of Kamigawa + +Index:50|Code2:SOK|Code3:SOK|Name:Saviors of Kamigawa +Index:51|Code2:9E|Code3:9ED|Name:Core Set - Ninth Edition +Index:52|Code2:RAV|Code3:RAV|Name:Ravnica: City of Guilds +Index:53|Code2:GP|Code3:GPT|Name:Guildpact +Index:54|Code2:DIS|Code3:DIS|Name:Dissension +Index:55|Code2:CS|Code3:CSP|Name:Coldsnap +Index:56|Code2:TSP|Code3:TSP|Name:Time Spiral +Index:57|Code2:TSB|Code3:TSB|Name:Time Spiral Timeshifted +Index:58|Code2:PLC|Code3:PLC|Name:Planar Chaos +Index:59|Code2:FUT|Code3:FUT|Name:Future Sight + +Index:60|Code2:10E|Code3:10E|Name:Core Set - Tenth Edition +Index:61|Code2:LRW|Code3:LRW|Name:Lorwyn +Index:62|Code2:MOR|Code3:MOR|Name:Morningtide +Index:63|Code2:SHM|Code3:SHM|Name:Shadowmoor +Index:64|Code2:EVE|Code3:EVE|Name:Eventide +Index:65|Code2:ALA|Code3:ALA|Name:Shards of Alara +Index:66|Code2:CFX|Code3:CFX|Name:Conflux +Index:67|Code2:ARB|Code3:ARB|Name:Alara Reborn +Index:68|Code2:M10|Code3:M10|Name:Magic The Gathering 2010 +Index:69|Code2:ZEN|Code3:ZEN|Name:Zendikar + +Index:70|Code2:WWK|Code3:WWK|Name:Worldwake +Index:71|Code2:ROE|Code3:ROE|Name:Rise of the Eldrazi +Index:72|Code2:M11|Code3:M11|Name:Magic The Gathering 2011 +Index:73|Code2:SOM|Code3:SOM|Name:Scars of Mirrodin +Index:74|Code2:MBS|Code3:MBS|Name:Mirrodin Besieged +Index:75|Code2:NPH|Code3:NPH|Name:New Phyrexia \ No newline at end of file diff --git a/src/forge/SetInfoUtil.java b/src/forge/SetInfoUtil.java index 6a2a3b3f534..eba3a2e2f2a 100644 --- a/src/forge/SetInfoUtil.java +++ b/src/forge/SetInfoUtil.java @@ -1,94 +1,42 @@ package forge; import java.util.ArrayList; +import java.util.HashMap; public class SetInfoUtil { + private static ArrayList> setData = new ArrayList>(); - private static String[][] sets = { - {"MBP", "MBP", "Media Insert Promo"}, - {"A", "LEA", "Limited Edition Alpha"}, - {"B", "LEB", "Limited Edition Beta"}, - {"U", "2ED", "Unlimited"}, - {"AN", "ARN", "Arabian Nights"}, - {"AQ", "ATQ", "Antiquities"}, - {"R", "3ED", "Revised Edition"}, - {"LG", "LEG", "Legends"}, - {"DK", "DRK", "The Dark"}, - {"FE", "FEM", "Fallen Empires"}, - {"4E", "4ED", "Fourth Edition"}, - {"IA", "ICE", "Ice Age"}, - {"CH", "CHR", "Chronicles"}, - {"HL", "HML", "Homelands"}, - {"AL", "ALL", "Alliances"}, - {"MI", "MIR", "Mirage"}, - {"VI", "VIS", "Visions"}, - {"5E", "5ED", "Fifth Edition"}, - {"PT", "POR", "Portal"}, - {"WL", "WTH", "Weatherlight"}, - {"TE", "TMP", "Tempest"}, - {"SH", "STH", "Stronghold"}, - {"EX", "EXO", "Exodus"}, - {"P2", "PO2", "Portal Second Age"}, - {"US", "USG", "Urza's Saga"}, - {"UL", "ULG", "Urza's Legacy"}, - {"6E", "6ED", "Classic (Sixth Edition)"}, - {"UD", "UDS", "Urza's Destiny"}, - {"P3", "PTK", "Portal Three Kingdoms"}, - {"ST", "S99", "Starter 1999"}, - {"MM", "MMQ", "Mercadian Masques"}, - {"NE", "NMS", "Nemesis"}, - {"S2K", "S00", "Starter 2000"}, - {"PY", "PCY", "Prophecy"}, - {"IN", "INV", "Invasion"}, - {"PS", "PLS", "Planeshift"}, - {"7E", "7ED", "Seventh Edition"}, - {"AP", "APC", "Apocalypse"}, - {"OD", "ODY", "Odyssey"}, - {"TO", "TOR", "Torment"}, - {"JU", "JUD", "Judgment"}, - {"ON", "ONS", "Onslaught"}, - {"LE", "LGN", "Legions"}, - {"SC", "SCG", "Scourge"}, - {"8E", "8ED", "Core Set - Eighth Edition"}, - {"MR", "MRD", "Mirrodin"}, - {"DS", "DST", "Darksteel"}, - {"FD", "5DN", "Fifth Dawn"}, - {"CHK", "CHK", "Champions of Kamigawa"}, - {"BOK", "BOK", "Betrayers of Kamigawa"}, - {"SOK", "SOK", "Saviors of Kamigawa"}, - {"9E", "9ED", "Core Set - Ninth Edition"}, - {"RAV", "RAV", "Ravnica: City of Guilds"}, - {"GP", "GPT", "Guildpact"}, - {"DIS", "DIS", "Dissension"}, - {"CS", "CSP", "Coldsnap"}, - {"TSP", "TSP", "Time Spiral"}, - {"TSB", "TSB", "Time Spiral Timeshifted"}, - {"PLC", "PLC", "Planar Chaos"}, - {"FUT", "FUT", "Future Sight"}, - {"10E", "10E", "Core Set - Tenth Edition"}, - {"LRW", "LRW", "Lorwyn"}, - {"MOR", "MOR", "Morningtide"}, - {"SHM", "SHM", "Shadowmoor"}, - {"EVE", "EVE", "Eventide"}, - {"ALA", "ALA", "Shards of Alara"}, - {"CFX", "CFX", "Conflux"}, - {"ARB", "ARB", "Alara Reborn"}, - {"M10", "M10", "Magic The Gathering 2010"}, - {"ZEN", "ZEN", "Zendikar"}, - {"WWK", "WWK", "Worldwake"}, - {"ROE", "ROE", "Rise of the Eldrazi"}, - {"M11", "M11", "Magic The Gathering 2011"}, - {"SOM", "SOM", "Scars of Mirrodin"}, - {"MBS", "MBS", "Mirrodin Besieged"}, - {"NPH", "NPH", "New Phyrexia"} - }; + private static void loadSetData() { + ArrayList fData = FileUtil.readFile("res/blockdata/setdata.txt"); + + if (fData.size() > 0) { + for (int i=0; i 5) { + HashMap sm = new HashMap(); + + String ss[] = s.split("\\|"); + for (int j=0; j getSetCode2List() { ArrayList scl = new ArrayList(); - for (int i=0; i getSetCode3List() { ArrayList scl = new ArrayList(); + + if (setData.size() == 0) + loadSetData(); - for (int i=0; i getSetNameList() { ArrayList snl = new ArrayList(); + + if (setData.size() == 0) + loadSetData(); - for (int i=0; i alSI) { + if (setData.size() == 0) + loadSetData(); + int mostRecent = -1; for (int i=0; i mostRecent) { @@ -190,7 +165,7 @@ public class SetInfoUtil { } if (mostRecent > -1) - return sets[mostRecent][1]; + return setData.get(mostRecent).get("Code3"); return ""; } @@ -198,7 +173,7 @@ public class SetInfoUtil { public static SetInfo getSetInfo_Code(ArrayList SetList, String SetCode) { SetInfo si; - + for (int i=0; i> blockData = new ArrayList>(); + + private static void loadBlockData() { + ArrayList fData = FileUtil.readFile("res/blockdata/blocks.txt"); + + if (fData.size() > 0) { + for (int i=0; i 5) { + HashMap sm = new HashMap(); + + String ss[] = s.split("\\|"); + for (int j=0; j getBlockNameList() { ArrayList bnl = new ArrayList(); + + if (blockData.size() == 0) + loadBlockData(); - for (int i=0; i getSets_BlockName(String blockName) { ArrayList sets = new ArrayList(); - - for (int i=0; i