mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
Support creating new deck
This commit is contained in:
@@ -35,6 +35,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
|
|
||||||
private FComboBox<DeckType> cmbDeckTypes;
|
private FComboBox<DeckType> cmbDeckTypes;
|
||||||
private DeckType selectedDeckType;
|
private DeckType selectedDeckType;
|
||||||
|
private boolean needRefreshOnActivate;
|
||||||
|
|
||||||
private final DeckManager lstDecks = new DeckManager(GameType.Constructed);
|
private final DeckManager lstDecks = new DeckManager(GameType.Constructed);
|
||||||
private final FButton btnNewDeck = new FButton("New Deck");
|
private final FButton btnNewDeck = new FButton("New Deck");
|
||||||
@@ -60,6 +61,7 @@ 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) {
|
||||||
|
needRefreshOnActivate = true;
|
||||||
Forge.openScreen(new FDeckEditor(EditorType.Constructed, ""));
|
Forge.openScreen(new FDeckEditor(EditorType.Constructed, ""));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -87,10 +89,20 @@ public class FDeckChooser extends FScreen {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActivate() {
|
||||||
|
if (needRefreshOnActivate) {
|
||||||
|
needRefreshOnActivate = false;
|
||||||
|
updateCustom();
|
||||||
|
lstDecks.setSelectedString(DeckPreferences.getCurrentDeck());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void editSelectedDeck() {
|
private void editSelectedDeck() {
|
||||||
final DeckProxy deck = lstDecks.getSelectedItem();
|
final DeckProxy deck = lstDecks.getSelectedItem();
|
||||||
if (deck == null) { return; }
|
if (deck == null) { return; }
|
||||||
|
|
||||||
|
needRefreshOnActivate = true;
|
||||||
DeckPreferences.setCurrentDeck(deck.getName());
|
DeckPreferences.setCurrentDeck(deck.getName());
|
||||||
Forge.openScreen(new FDeckEditor(EditorType.Constructed, deck));
|
Forge.openScreen(new FDeckEditor(EditorType.Constructed, deck));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,11 +175,14 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
editorType.getController().editor = this;
|
editorType.getController().editor = this;
|
||||||
|
|
||||||
if (StringUtils.isEmpty(editDeckName)) {
|
if (StringUtils.isEmpty(editDeckName)) {
|
||||||
setDeck(new Deck());
|
|
||||||
if (editorType == EditorType.Draft) {
|
if (editorType == EditorType.Draft) {
|
||||||
//hide deck header on while drafting
|
//hide deck header on while drafting
|
||||||
|
setDeck(new Deck());
|
||||||
deckHeader.setVisible(false);
|
deckHeader.setVisible(false);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
editorType.getController().newModel();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (editorType == EditorType.Draft) {
|
if (editorType == EditorType.Draft) {
|
||||||
@@ -274,10 +277,22 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (editorType) {
|
||||||
|
case Sealed:
|
||||||
//if opening brand new sealed deck, show sideboard (card pool) by default
|
//if opening brand new sealed deck, show sideboard (card pool) by default
|
||||||
if (editorType == EditorType.Sealed && deck.getMain().isEmpty()) {
|
if (deck.getMain().isEmpty()) {
|
||||||
setSelectedPage(sideboardPage);
|
setSelectedPage(sideboardPage);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case Draft:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
//if editing existing non-limited deck, show main deck by default
|
||||||
|
if (!deck.getMain().isEmpty()) {
|
||||||
|
setSelectedPage(mainDeckPage);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -327,6 +342,8 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
FOptionPane.showInputDialog("Enter name for new deck:", "New Deck", new Callback<String>() {
|
FOptionPane.showInputDialog("Enter name for new deck:", "New Deck", new Callback<String>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(String result) {
|
public void run(String result) {
|
||||||
|
if (StringUtils.isEmpty(result)) { return; }
|
||||||
|
|
||||||
editorType.getController().saveAs(result);
|
editorType.getController().saveAs(result);
|
||||||
if (callback != null) {
|
if (callback != null) {
|
||||||
callback.run(true);
|
callback.run(true);
|
||||||
@@ -468,7 +485,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void refresh() {
|
public void refresh() {
|
||||||
ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getAllCards(), PaperCard.class);
|
cardManager.setPool(ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getAllCards(), PaperCard.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -689,6 +706,9 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
|
|
||||||
if (editor != null) {
|
if (editor != null) {
|
||||||
String name = this.getModelName();
|
String name = this.getModelName();
|
||||||
|
if (name.isEmpty()) {
|
||||||
|
name = "[New Deck]";
|
||||||
|
}
|
||||||
if (!saved) {
|
if (!saved) {
|
||||||
name = "*" + name;
|
name = "*" + name;
|
||||||
}
|
}
|
||||||
@@ -797,8 +817,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void newModel() {
|
public void newModel() {
|
||||||
model = newModelCreator.get();
|
setModel(newModelCreator.get());
|
||||||
setSaved(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getModelName() {
|
public String getModelName() {
|
||||||
|
|||||||
Reference in New Issue
Block a user