Loading overlay for Deck Editor

This commit is contained in:
Anthony Calosa
2020-11-05 17:04:45 +08:00
parent e131da0709
commit 493eff3d27
2 changed files with 76 additions and 57 deletions

View File

@@ -680,12 +680,11 @@ public class Graphics {
batch.draw(image, adjustX(x), adjustY(y, h), w, h); batch.draw(image, adjustX(x), adjustY(y, h), w, h);
} else { } else {
batch.end(); batch.end();
shaderOutline.begin(); shaderOutline.bind();
shaderOutline.setUniformf("u_viewportInverse", new Vector2(1f / w, 1f / h)); shaderOutline.setUniformf("u_viewportInverse", new Vector2(1f / w, 1f / h));
shaderOutline.setUniformf("u_offset", 3f); shaderOutline.setUniformf("u_offset", 3f);
shaderOutline.setUniformf("u_step", Math.min(1f, w / 70f)); shaderOutline.setUniformf("u_step", Math.min(1f, w / 70f));
shaderOutline.setUniformf("u_color", new Vector3(glowColor.r, glowColor.g, glowColor.b)); shaderOutline.setUniformf("u_color", new Vector3(glowColor.r, glowColor.g, glowColor.b));
shaderOutline.end();
batch.setShader(shaderOutline); batch.setShader(shaderOutline);
batch.begin(); batch.begin();
//glow //glow
@@ -704,12 +703,11 @@ public class Graphics {
batch.draw(image, adjustX(x), adjustY(yBox, h), w, h); batch.draw(image, adjustX(x), adjustY(yBox, h), w, h);
} else { } else {
batch.end(); batch.end();
shaderOutline.begin(); shaderOutline.bind();
shaderOutline.setUniformf("u_viewportInverse", new Vector2(1f / w, 1f / h)); shaderOutline.setUniformf("u_viewportInverse", new Vector2(1f / w, 1f / h));
shaderOutline.setUniformf("u_offset", 3f); shaderOutline.setUniformf("u_offset", 3f);
shaderOutline.setUniformf("u_step", Math.min(1f, w / 70f)); shaderOutline.setUniformf("u_step", Math.min(1f, w / 70f));
shaderOutline.setUniformf("u_color", new Vector3(glowColor.r, glowColor.g, glowColor.b)); shaderOutline.setUniformf("u_color", new Vector3(glowColor.r, glowColor.g, glowColor.b));
shaderOutline.end();
batch.setShader(shaderOutline); batch.setShader(shaderOutline);
batch.begin(); batch.begin();
//glow //glow

View File

@@ -292,15 +292,8 @@ public class FDeckChooser extends FScreen {
} }
} }
private void createNewDeck() { private boolean isGeneratedDeck(DeckType deckType) {
FDeckEditor editor; switch (deckType) {
switch (selectedDeckType) {
case DRAFT_DECK:
NewGameScreen.BoosterDraft.open();
return;
case SEALED_DECK:
NewGameScreen.SealedDeck.open();
return;
case COLOR_DECK: case COLOR_DECK:
case STANDARD_COLOR_DECK: case STANDARD_COLOR_DECK:
case STANDARD_CARDGEN_DECK: case STANDARD_CARDGEN_DECK:
@@ -313,24 +306,48 @@ public class FDeckChooser extends FScreen {
case MODERN_COLOR_DECK: case MODERN_COLOR_DECK:
case THEME_DECK: case THEME_DECK:
case RANDOM_DECK: case RANDOM_DECK:
final DeckProxy deck = lstDecks.getSelectedItem(); return true;
if (deck != null) { default:
Deck generatedDeck = deck.getDeck(); return false;
if (generatedDeck == null) { return; }
generatedDeck = (Deck)generatedDeck.copyTo(""); //prevent deck having a name by default
editor = new FDeckEditor(getEditorType(), generatedDeck, true);
} }
else { }
private void createNewDeck() {
final FDeckEditor[] editor = new FDeckEditor[1];
final DeckProxy deck = lstDecks.getSelectedItem();
String overlayText = "Loading ";
if (selectedDeckType == DeckType.DRAFT_DECK) {
NewGameScreen.BoosterDraft.open();
return;
}
if (selectedDeckType == DeckType.SEALED_DECK) {
NewGameScreen.SealedDeck.open();
return;
}
if (isGeneratedDeck(selectedDeckType)) {
overlayText += "Deck";
if (deck == null) {
FOptionPane.showErrorDialog(localizer.getMessage("lblMustSelectGenerateNewDeck")); FOptionPane.showErrorDialog(localizer.getMessage("lblMustSelectGenerateNewDeck"));
return; return;
} }
break; } else {
default: overlayText += "Catalog";
editor = new FDeckEditor(getEditorType(), "", false);
break;
} }
editor.setSaveHandler(new FEventHandler() { String finalOverlay = overlayText;
FThreads.invokeInEdtLater(new Runnable() {
@Override
public void run() {
LoadingOverlay.show(finalOverlay, new Runnable() {
@Override
public void run() {
if (isGeneratedDeck(selectedDeckType)) {
Deck generatedDeck = deck.getDeck();
if (generatedDeck == null) { return; }
generatedDeck = (Deck)generatedDeck.copyTo(""); //prevent deck having a name by default
editor[0] = new FDeckEditor(getEditorType(), generatedDeck, true);
} else {
editor[0] = new FDeckEditor(getEditorType(), "", false);
}
editor[0].setSaveHandler(new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
//ensure user returns to proper deck type and that list is refreshed if new deck is saved //ensure user returns to proper deck type and that list is refreshed if new deck is saved
@@ -358,7 +375,11 @@ public class FDeckChooser extends FScreen {
} }
} }
}); });
Forge.openScreen(editor); Forge.openScreen(editor[0]);
}
});
}
});
} }
private void editSelectedDeck() { private void editSelectedDeck() {