mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Fix so quest deck editor can work properly after first opening other editor or switching quests
This commit is contained in:
@@ -101,7 +101,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
return new Deck();
|
return new Deck();
|
||||||
}
|
}
|
||||||
})),
|
})),
|
||||||
Quest(new DeckController<Deck>(FModel.getQuest().getMyDecks(), new Supplier<Deck>() {
|
Quest(new DeckController<Deck>(null, new Supplier<Deck>() { //delay setting root folder until quest loaded
|
||||||
@Override
|
@Override
|
||||||
public Deck get() {
|
public Deck get() {
|
||||||
return new Deck();
|
return new Deck();
|
||||||
@@ -1199,20 +1199,24 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
private T model;
|
private T model;
|
||||||
private boolean saved;
|
private boolean saved;
|
||||||
private boolean modelInStorage;
|
private boolean modelInStorage;
|
||||||
private final IStorage<T> rootFolder;
|
private IStorage<T> rootFolder;
|
||||||
private IStorage<T> currentFolder;
|
private IStorage<T> currentFolder;
|
||||||
private String modelPath;
|
private String modelPath;
|
||||||
private FDeckEditor editor;
|
private FDeckEditor editor;
|
||||||
private final Supplier<T> newModelCreator;
|
private final Supplier<T> newModelCreator;
|
||||||
|
|
||||||
protected DeckController(final IStorage<T> folder0, final Supplier<T> newModelCreator0) {
|
protected DeckController(final IStorage<T> folder0, final Supplier<T> newModelCreator0) {
|
||||||
|
setRootFolder(folder0);
|
||||||
|
newModelCreator = newModelCreator0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRootFolder(IStorage<T> folder0) {
|
||||||
rootFolder = folder0;
|
rootFolder = folder0;
|
||||||
currentFolder = rootFolder;
|
currentFolder = folder0;
|
||||||
model = null;
|
model = null;
|
||||||
saved = true;
|
saved = true;
|
||||||
modelInStorage = false;
|
modelInStorage = false;
|
||||||
modelPath = "";
|
modelPath = "";
|
||||||
newModelCreator = newModelCreator0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Deck getDeck() {
|
public Deck getDeck() {
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ import java.io.File;
|
|||||||
import forge.FThreads;
|
import forge.FThreads;
|
||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.assets.FSkinImage;
|
import forge.assets.FSkinImage;
|
||||||
|
import forge.deck.Deck;
|
||||||
|
import forge.deck.FDeckEditor.DeckController;
|
||||||
|
import forge.deck.FDeckEditor.EditorType;
|
||||||
import forge.interfaces.IButton;
|
import forge.interfaces.IButton;
|
||||||
import forge.interfaces.ICheckBox;
|
import forge.interfaces.ICheckBox;
|
||||||
import forge.interfaces.IComboBox;
|
import forge.interfaces.IComboBox;
|
||||||
@@ -152,8 +155,10 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats {
|
|||||||
if (data.exists()) {
|
if (data.exists()) {
|
||||||
LoadingOverlay.show("Loading current quest...", new Runnable() {
|
LoadingOverlay.show("Loading current quest...", new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public void run() {
|
public void run() {
|
||||||
FModel.getQuest().load(QuestDataIO.loadData(data));
|
FModel.getQuest().load(QuestDataIO.loadData(data));
|
||||||
|
((DeckController<Deck>)EditorType.Quest.getController()).setRootFolder(FModel.getQuest().getMyDecks());
|
||||||
if (reason == LaunchReason.StartQuestMode) {
|
if (reason == LaunchReason.StartQuestMode) {
|
||||||
if (QuestUtil.getCurrentDeck() == null) {
|
if (QuestUtil.getCurrentDeck() == null) {
|
||||||
Forge.openScreen(decksScreen); //if quest doesn't have a deck specified, open decks screen by default
|
Forge.openScreen(decksScreen); //if quest doesn't have a deck specified, open decks screen by default
|
||||||
|
|||||||
Reference in New Issue
Block a user