mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
bugfix that allows to import older .deck files, before Deck changed to forge.Deck
This commit is contained in:
@@ -14,7 +14,6 @@ import java.util.Map;
|
||||
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
import forge.Deck;
|
||||
import forge.DeckIO;
|
||||
import forge.NewDeckIO;
|
||||
import forge.properties.ForgeProps;
|
||||
@@ -46,8 +45,8 @@ public class DeckConverter {
|
||||
System.out.println("migrating deck file...");
|
||||
|
||||
DeckIO odio = new OldDeckIO(oldDecks);
|
||||
List<Deck> deckList = new ArrayList<Deck>(Arrays.asList(odio.getDecks()));
|
||||
Map<String, Deck[]> boosterMap = odio.getBoosterDecks();
|
||||
List<forge.Deck> deckList = new ArrayList<forge.Deck>(Arrays.asList(odio.getDecks()));
|
||||
Map<String, forge.Deck[]> boosterMap = odio.getBoosterDecks();
|
||||
System.out.println("Decks found:");
|
||||
System.out.printf("\t%d normal decks%n", deckList.size());
|
||||
System.out.printf("\t%d booster decks%n", boosterMap.size());
|
||||
@@ -64,4 +63,29 @@ public class DeckConverter {
|
||||
|
||||
JOptionPane.showMessageDialog(null, "Your deck file was successfully migrated!");
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static Object toForgeDeck(Object o) {
|
||||
if(o instanceof forge.Deck) {
|
||||
//a single new-type deck
|
||||
return o;
|
||||
} else if(o instanceof forge.Deck[]) {
|
||||
//a new-type booster deck
|
||||
Deck d = (Deck) o;
|
||||
return d.migrate();
|
||||
} else if(o instanceof Deck) {
|
||||
// an old type deck
|
||||
Deck d = (Deck) o;
|
||||
return d.migrate();
|
||||
} else if(o instanceof Deck[]) {
|
||||
Deck[] d = (Deck[]) o;
|
||||
forge.Deck[] result = new forge.Deck[d.length];
|
||||
for(int i = 0; i < d.length; i++) {
|
||||
result[i] = d[i].migrate();
|
||||
}
|
||||
return result;
|
||||
} else throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -438,6 +438,12 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants {
|
||||
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
|
||||
check = in.readObject();
|
||||
|
||||
//deck migration - this is a little hard to read, because i can't just plainly reference a class in the
|
||||
//default package
|
||||
Class<?> deckConverterClass = Class.forName("DeckConverter");
|
||||
//invoke public static Object toForgeDeck(Object o) of DeckConverter
|
||||
check = deckConverterClass.getDeclaredMethod("toForgeDeck", Object.class).invoke(null, check);
|
||||
|
||||
in.close();
|
||||
} catch(Exception ex) {
|
||||
ErrorViewer.showError(ex);
|
||||
|
||||
@@ -111,8 +111,7 @@ public class Gui_Quest_DeckEditor_Menu extends JMenuBar {
|
||||
g.setEnabled(false);
|
||||
g.filterUsed = true;
|
||||
filt.setVisible(true);
|
||||
}else
|
||||
{
|
||||
} else {
|
||||
g.blackCheckBox.setSelected(true);
|
||||
g.blackCheckBox.setEnabled(true);
|
||||
g.blueCheckBox.setSelected(true);
|
||||
@@ -210,7 +209,6 @@ public class Gui_Quest_DeckEditor_Menu extends JMenuBar {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@@ -417,6 +415,12 @@ public class Gui_Quest_DeckEditor_Menu extends JMenuBar {
|
||||
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
|
||||
check = in.readObject();
|
||||
|
||||
//deck migration - this is a little hard to read, because i can't just plainly reference a class in the
|
||||
//default package
|
||||
Class<?> deckConverterClass = Class.forName("DeckConverter");
|
||||
//invoke public static Object toForgeDeck(Object o) of DeckConverter
|
||||
check = deckConverterClass.getDeclaredMethod("toForgeDeck", Object.class).invoke(null, check);
|
||||
|
||||
in.close();
|
||||
} catch(Exception ex) {
|
||||
ErrorViewer.showError(ex);
|
||||
@@ -424,6 +428,7 @@ public class Gui_Quest_DeckEditor_Menu extends JMenuBar {
|
||||
}
|
||||
|
||||
Deck deck = (Deck) check;
|
||||
|
||||
deckDisplay.setTitle(deckEditorName + " - " + deck.getName());
|
||||
|
||||
CardList cardpool;
|
||||
|
||||
Reference in New Issue
Block a user