Start working on more reliable way to load and save Planar Conquest data

This commit is contained in:
drdev
2015-12-27 00:31:24 +00:00
parent 36c16ebe08
commit 6a9d30e931
11 changed files with 284 additions and 202 deletions

View File

@@ -10,7 +10,7 @@ import forge.deck.FDeckEditor.EditorType;
import forge.menu.FMenuItem;
import forge.menu.FPopupMenu;
import forge.model.FModel;
import forge.planarconquest.ConquestDataIO;
import forge.planarconquest.ConquestData;
import forge.planarconquest.ConquestPreferences.CQPref;
import forge.properties.ForgeConstants;
import forge.screens.FScreen;
@@ -75,14 +75,14 @@ public class ConquestMenu extends FPopupMenu {
public static void launchPlanarConquest(final LaunchReason reason) {
//attempt to load current quest
final File dirConquests = new File(ForgeConstants.CONQUEST_SAVE_DIR);
final String questname = FModel.getConquestPreferences().getPref(CQPref.CURRENT_CONQUEST);
final File data = new File(dirConquests.getPath(), questname);
final String conquestname = FModel.getConquestPreferences().getPref(CQPref.CURRENT_CONQUEST);
final File data = new File(dirConquests.getPath(), conquestname);
if (data.exists()) {
LoadingOverlay.show("Loading current conquest...", new Runnable() {
@Override
@SuppressWarnings("unchecked")
public void run() {
FModel.getConquest().load(ConquestDataIO.loadData(data));
FModel.getConquest().load(new ConquestData(data));
((DeckController<Deck>)EditorType.PlanarConquest.getController()).setRootFolder(FModel.getConquest().getDecks());
if (reason == LaunchReason.StartPlanarConquest) {
Forge.openScreen(multiverseScreen);

View File

@@ -1,7 +1,6 @@
package forge.screens.planarconquest;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -21,7 +20,6 @@ import forge.assets.FSkinImage;
import forge.model.FModel;
import forge.planarconquest.ConquestController;
import forge.planarconquest.ConquestData;
import forge.planarconquest.ConquestDataIO;
import forge.planarconquest.ConquestPreferences.CQPref;
import forge.properties.ForgeConstants;
import forge.quest.QuestUtil;
@@ -93,17 +91,11 @@ public class LoadConquestScreen extends LaunchScreen {
final File dirConquests = new File(ForgeConstants.CONQUEST_SAVE_DIR);
final ConquestController qc = FModel.getConquest();
// Iterate over files and load quest data for each.
FilenameFilter takeDatFiles = new FilenameFilter() {
@Override
public boolean accept(final File dir, final String name) {
return name.endsWith(".dat");
}
};
File[] arrFiles = dirConquests.listFiles(takeDatFiles);
Map<String, ConquestData> arrConquests = new HashMap<String, ConquestData>();
for (File f : arrFiles) {
arrConquests.put(f.getName(), ConquestDataIO.loadData(f));
for (File f : dirConquests.listFiles()) {
if (f.isDirectory()) {
arrConquests.put(f.getName(), new ConquestData(f));
}
}
// Populate list with available quest data.