Moved SetInfo lists to external files.

This commit is contained in:
jendave
2011-08-07 01:06:06 +00:00
parent e678980a46
commit 3f95238d84
4 changed files with 281 additions and 167 deletions

2
.gitattributes vendored
View File

@@ -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

42
res/blockdata/blocks.txt Normal file
View File

@@ -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

83
res/blockdata/setdata.txt Normal file
View File

@@ -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

View File

@@ -1,94 +1,42 @@
package forge;
import java.util.ArrayList;
import java.util.HashMap;
public class SetInfoUtil {
private static ArrayList<HashMap<String, String>> setData = new ArrayList<HashMap<String, String>>();
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<String> fData = FileUtil.readFile("res/blockdata/setdata.txt");
if (fData.size() > 0) {
for (int i=0; i<fData.size(); i++) {
String s = fData.get(i);
if (s.length() > 5) {
HashMap<String, String> sm = new HashMap<String, String>();
String ss[] = s.split("\\|");
for (int j=0; j<ss.length; j++) {
String kv[] = ss[i].split(":");
sm.put(kv[0], kv[1]);
}
setData.add(sm);
}
}
}
}
public static ArrayList<String> getSetCode2List()
{
ArrayList<String> scl = new ArrayList<String>();
for (int i=0; i<sets.length; i++)
scl.add(sets[i][0]);
if (setData.size() == 0)
loadSetData();
for (int i=0; i<setData.size(); i++)
scl.add(setData.get(i).get("Code2"));
return scl;
}
@@ -96,9 +44,12 @@ public class SetInfoUtil {
public static ArrayList<String> getSetCode3List()
{
ArrayList<String> scl = new ArrayList<String>();
if (setData.size() == 0)
loadSetData();
for (int i=0; i<sets.length; i++)
scl.add(sets[i][1]);
for (int i=0; i<setData.size(); i++)
scl.add(setData.get(i).get("Code3"));
return scl;
}
@@ -106,78 +57,102 @@ public class SetInfoUtil {
public static ArrayList<String> getSetNameList()
{
ArrayList<String> snl = new ArrayList<String>();
if (setData.size() == 0)
loadSetData();
for (int i=0; i<sets.length; i++)
snl.add(sets[i][2]);
for (int i=0; i<setData.size(); i++)
snl.add(setData.get(i).get("Name"));
return snl;
}
public static String getSetCode2_SetName(String SetName)
{
for (int i=0; i<sets.length; i++)
if (sets[i][2].equals(SetName))
return sets[i][0];
if (setData.size() == 0)
loadSetData();
for (int i=0; i<setData.size(); i++)
if (setData.get(i).get("Name").equals(SetName))
return setData.get(i).get("Code2");
return "";
}
public static String getSetCode3_SetName(String SetName)
{
for (int i=0; i<sets.length; i++)
if (sets[i][2].equals(SetName))
return sets[i][1];
if (setData.size() == 0)
loadSetData();
for (int i=0; i<setData.size(); i++)
if (setData.get(i).get("Name").equals(SetName))
return setData.get(i).get("Code3");
return "";
}
public static String getSetCode2_SetCode3(String SetCode3)
{
for (int i=0; i<sets.length; i++)
if (sets[i][1].equals(SetCode3))
return sets[i][0];
if (setData.size() == 0)
loadSetData();
for (int i=0; i<setData.size(); i++)
if (setData.get(i).get("Code3").equals(SetCode3))
return setData.get(i).get("Code2");
return "";
}
public static String getSetCode3_SetCode2(String SetCode2)
{
for (int i=0; i<sets.length; i++)
if (sets[i][0].equals(SetCode2))
return sets[i][1];
if (setData.size() == 0)
loadSetData();
for (int i=0; i<setData.size(); i++)
if (setData.get(i).get("Code2").equals(SetCode2))
return setData.get(i).get("Code3");
return "";
}
public static String getSetName_SetCode2(String SetCode2)
{
for (int i=0; i<sets.length; i++)
if (sets[i][0].equals(SetCode2))
return sets[i][2];
if (setData.size() == 0)
loadSetData();
for (int i=0; i<setData.size(); i++)
if (setData.get(i).get("Code2").equals(SetCode2))
return setData.get(i).get("Name");
return "";
}
public static String getSetName_SetCode3(String SetCode3)
{
for (int i=0; i<sets.length; i++)
if (sets[i][1].equals(SetCode3))
return sets[i][2];
if (setData.size() == 0)
loadSetData();
for (int i=0; i<setData.size(); i++)
if (setData.get(i).get("Code3").equals(SetCode3))
return setData.get(i).get("Name");
return "";
}
public static String getMostRecentSet(ArrayList<SetInfo> alSI)
{
if (setData.size() == 0)
loadSetData();
int mostRecent = -1;
for (int i=0; i<alSI.size(); i++)
{
SetInfo s = alSI.get(i);
for (int j=0; j<sets.length; j++)
for (int j=0; j<setData.size(); j++)
{
if (sets[j][1].equals(s.Code))
if (setData.get(j).get("Code3").equals(s.Code))
{
if (j > 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<SetInfo> SetList, String SetCode)
{
SetInfo si;
for (int i=0; i<SetList.size(); i++)
{
si = SetList.get(i);
@@ -211,95 +186,107 @@ public class SetInfoUtil {
public static int getSetIndex(String SetCode)
{
for (int i=0; i<sets.length; i++)
if (setData.size() == 0)
loadSetData();
for (int i=0; i<setData.size(); i++)
{
if (sets[i][1].equals(SetCode))
return i;
if (setData.get(i).get("Code3").equals(SetCode))
return Integer.parseInt(setData.get(i).get("Index"));
}
return 0;
}
private static String[][] blocks = {
{"LEA", "", "", "Alpha", "3", "LEA"},
{"LEB", "", "", "Beta", "3", "LEB"},
{"2ED", "", "", "Unlimited", "3", "2ED"},
{"ARN", "", "", "Arabian Nights", "5", "2ED"},
{"ATQ", "", "", "Antiquities", "5", "ATQ"},
{"3ED", "", "", "Revised", "3", "3ED"},
{"LEG", "", "", "Legends", "3", "3ED"},
{"DRK", "", "", "The Dark", "5", "3ED"},
{"FEM", "", "", "Fallen Empires", "5", "3ED"},
{"4ED", "", "", "Fourth Edition", "3", "4ED"},
{"ICE", "ALL", "CSP", "Ice Age", "3", "ICE"},
//{"CHR", "", "", "Chronicles", "4", "4ED"},
{"HML", "", "", "Homelands", "5", "4ED"},
{"MIR", "VIS", "WTH", "Mirage", "3", "MIR"},
{"5ED", "", "", "Fifth Edition", "3", "5ED"},
{"POR", "", "", "Portal", "3", "POR"},
{"TMP", "STH", "EXO", "Tempest", "3", "TMP"},
{"PO2", "", "", "Portal Second Age", "3", "PO2"},
{"USG", "ULG", "UDS", "Urza", "3", "USG"},
{"6ED", "", "", "Sixth Edition", "3", "6ED"},
{"PTK", "", "", "Portal Three Kingdoms", "5", "PTK"},
{"MMQ", "NMS", "PCY", "Masques", "3", "MMQ"},
{"INV", "PLS", "APC", "Invasion", "3", "INV"},
{"7ED", "", "", "Seventh Edition", "3", "7ED"},
{"ODY", "TOR", "JUD", "Odyssey", "3", "ODY"},
{"ONS", "LGN", "SCG", "Onslaught", "3", "ONS"},
{"8ED", "", "", "Eighth Edition", "3", "8ED"},
{"MRD", "DST", "5DN", "Mirrodin", "3", "MRD"},
{"CHK", "BOK", "SOK", "Kamigawa", "3", "CHK"},
{"9ED", "", "", "Ninth Edition", "3", "9ED"},
{"RAV", "GPT", "DIS", "Ravnica", "3", "RAV"},
{"CSP", "", "", "Coldsnap", "3", "9ED"},
{"TSP", "PLC", "FUT", "Time Spiral", "3", "TSP"},
{"10E", "", "", "Tenth Edition", "3", "10E"},
{"LRW", "MOR", "", "Lorwyn", "3", "LRW"},
{"SHM", "EVE", "", "Shadowmoor", "3", "SHM"},
{"ALA", "CFX", "ARB", "Shards of Alara", "3", "ALA"},
{"M10", "", "", "Magic 2010", "3", "M10"},
{"ZEN", "WWK", "", "Zendikar", "3", "ZEN"},
{"ROE", "", "", "Rise of the Eldrazi", "3", "ROE"},
{"M11", "", "", "Magic 2011", "3", "M11"},
{"SOM", "MBS", "NPH", "Scars of Mirrodin", "3", "SOM"}
};
private static ArrayList<HashMap<String, String>> blockData = new ArrayList<HashMap<String, String>>();
private static void loadBlockData() {
ArrayList<String> fData = FileUtil.readFile("res/blockdata/blocks.txt");
if (fData.size() > 0) {
for (int i=0; i<fData.size(); i++) {
String s = fData.get(i);
if (s.length() > 5) {
HashMap<String, String> sm = new HashMap<String, String>();
String ss[] = s.split("\\|");
for (int j=0; j<ss.length; j++) {
String kv[] = ss[i].split(":");
sm.put(kv[0], kv[1]);
}
blockData.add(sm);
}
}
}
}
public static ArrayList<String> getBlockNameList() {
ArrayList<String> bnl = new ArrayList<String>();
if (blockData.size() == 0)
loadBlockData();
for (int i=0; i<blocks.length; i++)
bnl.add(blocks[i][3]);
for (int i=0; i<blockData.size(); i++)
bnl.add(blockData.get(i).get("Name"));
return bnl;
}
public static ArrayList<String> getSets_BlockName(String blockName) {
ArrayList<String> sets = new ArrayList<String>();
for (int i=0; i<blocks.length; i++) {
if (blocks[i][3].equals(blockName)) {
for (int j=0; j<3; j++)
sets.add(blocks[i][j]);
if (blockData.size() == 0)
loadBlockData();
for (int i=0; i<blockData.size(); i++) {
if (blockData.get(i).get("Name").equals(blockName)) {
if (blockData.get(i).containsKey("Set0"))
sets.add(blockData.get(i).get("Set0"));
if (blockData.get(i).containsKey("Set1"))
sets.add(blockData.get(i).get("Set1"));
if (blockData.get(i).containsKey("Set2"))
sets.add(blockData.get(i).get("Set2"));
}
}
return sets;
}
public static int getPackCount(String blockName) {
for (int i=0; i<blocks.length; i++) {
if (blocks[i][3].equals(blockName))
return Integer.parseInt(blocks[i][4]);
public static int getDraftPackCount(String blockName) {
if (blockData.size() == 0)
loadBlockData();
for (int i=0; i<blockData.size(); i++) {
if (blockData.get(i).get("Name").equals(blockName))
return Integer.parseInt(blockData.get(i).get("DraftPacks"));
}
return 0;
}
public static int getSealedPackCount(String blockName) {
if (blockData.size() == 0)
loadBlockData();
for (int i=0; i<blockData.size(); i++) {
if (blockData.get(i).get("Name").equals(blockName))
return Integer.parseInt(blockData.get(i).get("SealedPacks"));
}
return 0;
}
public static String getLandCode(String blockName) {
for (int i=0; i<blocks.length; i++) {
if (blocks[i][3].equals(blockName))
return blocks[i][5];
if (blockData.size() == 0)
loadBlockData();
for (int i=0; i<blockData.size(); i++) {
if (blockData.get(i).get("Name").equals(blockName))
return blockData.get(i).get("LandSetCode");
}
return "M11"; // default, should never happen IRL