mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
Support generating decks
This commit is contained in:
@@ -64,9 +64,29 @@ public class FDeckChooser extends FScreen {
|
|||||||
btnNewDeck.setCommand(new FEventHandler() {
|
btnNewDeck.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
|
switch (selectedDeckType) {
|
||||||
|
case COLOR_DECK:
|
||||||
|
case THEME_DECK:
|
||||||
|
final DeckProxy deck = lstDecks.getSelectedItem();
|
||||||
|
if (deck != null) {
|
||||||
|
Deck generatedDeck = deck.getDeck();
|
||||||
|
if (generatedDeck != null) {
|
||||||
|
generatedDeck = (Deck)generatedDeck.copyTo(""); //prevent deck having a name by default
|
||||||
needRefreshOnActivate = true;
|
needRefreshOnActivate = true;
|
||||||
setSelectedDeckType(DeckType.CUSTOM_DECK); //ensure user returns to custom user deck
|
setSelectedDeckType(DeckType.CUSTOM_DECK); //ensure user returns to custom user deck
|
||||||
|
Forge.openScreen(new FDeckEditor(EditorType.Constructed, generatedDeck));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
FOptionPane.showErrorDialog("You must select something before you can generate a new deck.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
needRefreshOnActivate = true;
|
||||||
|
setSelectedDeckType(DeckType.CUSTOM_DECK);
|
||||||
Forge.openScreen(new FDeckEditor(EditorType.Constructed, ""));
|
Forge.openScreen(new FDeckEditor(EditorType.Constructed, ""));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnEditDeck.setCommand(new FEventHandler() {
|
btnEditDeck.setCommand(new FEventHandler() {
|
||||||
@@ -250,7 +270,6 @@ public class FDeckChooser extends FScreen {
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(final ColorDeckGenerator d) {
|
public int compareTo(final ColorDeckGenerator d) {
|
||||||
return d instanceof ColorDeckGenerator ? Integer.compare(this.index, ((ColorDeckGenerator)d).index) : 1;
|
return d instanceof ColorDeckGenerator ? Integer.compare(this.index, ((ColorDeckGenerator)d).index) : 1;
|
||||||
|
|||||||
@@ -163,12 +163,15 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
private final FLabel btnMoreOptions = deckHeader.add(new FLabel.Builder().text("...").font(FSkinFont.get(20)).align(HAlignment.CENTER).pressedColor(Header.BTN_PRESSED_COLOR).build());
|
private final FLabel btnMoreOptions = deckHeader.add(new FLabel.Builder().text("...").font(FSkinFont.get(20)).align(HAlignment.CENTER).pressedColor(Header.BTN_PRESSED_COLOR).build());
|
||||||
|
|
||||||
public FDeckEditor(EditorType editorType0, DeckProxy editDeck) {
|
public FDeckEditor(EditorType editorType0, DeckProxy editDeck) {
|
||||||
this(editorType0, editDeck.getName(), editDeck.getPath());
|
this(editorType0, editDeck.getName(), editDeck.getPath(), null);
|
||||||
}
|
}
|
||||||
public FDeckEditor(EditorType editorType0, String editDeckName) {
|
public FDeckEditor(EditorType editorType0, String editDeckName) {
|
||||||
this(editorType0, editDeckName, "");
|
this(editorType0, editDeckName, "", null);
|
||||||
}
|
}
|
||||||
private FDeckEditor(EditorType editorType0, String editDeckName, String editDeckPath) {
|
public FDeckEditor(EditorType editorType0, Deck newDeck) {
|
||||||
|
this(editorType0, "", "", newDeck);
|
||||||
|
}
|
||||||
|
private FDeckEditor(EditorType editorType0, String editDeckName, String editDeckPath, Deck newDeck) {
|
||||||
super(getPages(editorType0));
|
super(getPages(editorType0));
|
||||||
|
|
||||||
editorType = editorType0;
|
editorType = editorType0;
|
||||||
@@ -181,8 +184,13 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
deckHeader.setVisible(false);
|
deckHeader.setVisible(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
if (newDeck == null) {
|
||||||
editorType.getController().newModel();
|
editorType.getController().newModel();
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
editorType.getController().setDeck(newDeck);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (editorType == EditorType.Draft) {
|
if (editorType == EditorType.Draft) {
|
||||||
@@ -658,6 +666,16 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
return modelPath;
|
return modelPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public void setDeck(final Deck deck) {
|
||||||
|
modelInStorage = false;
|
||||||
|
model = (T)deck;
|
||||||
|
currentFolder = rootFolder;
|
||||||
|
modelPath = "";
|
||||||
|
setSaved(false);
|
||||||
|
editor.setDeck(deck);
|
||||||
|
}
|
||||||
|
|
||||||
public void setModel(final T document) {
|
public void setModel(final T document) {
|
||||||
setModel(document, false);
|
setModel(document, false);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user