mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Loading overlay for Deck Editor
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -292,73 +292,94 @@ public class FDeckChooser extends FScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isGeneratedDeck(DeckType deckType) {
|
||||||
|
switch (deckType) {
|
||||||
|
case COLOR_DECK:
|
||||||
|
case STANDARD_COLOR_DECK:
|
||||||
|
case STANDARD_CARDGEN_DECK:
|
||||||
|
case RANDOM_CARDGEN_COMMANDER_DECK:
|
||||||
|
case RANDOM_COMMANDER_DECK:
|
||||||
|
case MODERN_CARDGEN_DECK:
|
||||||
|
case PIONEER_CARDGEN_DECK:
|
||||||
|
case LEGACY_CARDGEN_DECK:
|
||||||
|
case VINTAGE_CARDGEN_DECK:
|
||||||
|
case MODERN_COLOR_DECK:
|
||||||
|
case THEME_DECK:
|
||||||
|
case RANDOM_DECK:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
private void createNewDeck() {
|
private void createNewDeck() {
|
||||||
FDeckEditor editor;
|
final FDeckEditor[] editor = new FDeckEditor[1];
|
||||||
switch (selectedDeckType) {
|
final DeckProxy deck = lstDecks.getSelectedItem();
|
||||||
case DRAFT_DECK:
|
String overlayText = "Loading ";
|
||||||
|
if (selectedDeckType == DeckType.DRAFT_DECK) {
|
||||||
NewGameScreen.BoosterDraft.open();
|
NewGameScreen.BoosterDraft.open();
|
||||||
return;
|
return;
|
||||||
case SEALED_DECK:
|
}
|
||||||
|
if (selectedDeckType == DeckType.SEALED_DECK) {
|
||||||
NewGameScreen.SealedDeck.open();
|
NewGameScreen.SealedDeck.open();
|
||||||
return;
|
return;
|
||||||
case COLOR_DECK:
|
}
|
||||||
case STANDARD_COLOR_DECK:
|
if (isGeneratedDeck(selectedDeckType)) {
|
||||||
case STANDARD_CARDGEN_DECK:
|
overlayText += "Deck";
|
||||||
case RANDOM_CARDGEN_COMMANDER_DECK:
|
if (deck == null) {
|
||||||
case RANDOM_COMMANDER_DECK:
|
|
||||||
case MODERN_CARDGEN_DECK:
|
|
||||||
case PIONEER_CARDGEN_DECK:
|
|
||||||
case LEGACY_CARDGEN_DECK:
|
|
||||||
case VINTAGE_CARDGEN_DECK:
|
|
||||||
case MODERN_COLOR_DECK:
|
|
||||||
case THEME_DECK:
|
|
||||||
case RANDOM_DECK:
|
|
||||||
final DeckProxy deck = lstDecks.getSelectedItem();
|
|
||||||
if (deck != null) {
|
|
||||||
Deck generatedDeck = deck.getDeck();
|
|
||||||
if (generatedDeck == null) { return; }
|
|
||||||
|
|
||||||
generatedDeck = (Deck)generatedDeck.copyTo(""); //prevent deck having a name by default
|
|
||||||
editor = new FDeckEditor(getEditorType(), generatedDeck, true);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
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
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void run() {
|
||||||
//ensure user returns to proper deck type and that list is refreshed if new deck is saved
|
LoadingOverlay.show(finalOverlay, new Runnable() {
|
||||||
if (!needRefreshOnActivate) {
|
@Override
|
||||||
needRefreshOnActivate = true;
|
public void run() {
|
||||||
if (lstDecks.getGameType() == GameType.DeckManager) {
|
if (isGeneratedDeck(selectedDeckType)) {
|
||||||
switch (selectedDeckType) {
|
Deck generatedDeck = deck.getDeck();
|
||||||
case COMMANDER_DECK:
|
if (generatedDeck == null) { return; }
|
||||||
case OATHBREAKER_DECK:
|
generatedDeck = (Deck)generatedDeck.copyTo(""); //prevent deck having a name by default
|
||||||
case TINY_LEADERS_DECK:
|
editor[0] = new FDeckEditor(getEditorType(), generatedDeck, true);
|
||||||
case BRAWL_DECK:
|
} else {
|
||||||
case SCHEME_DECK:
|
editor[0] = new FDeckEditor(getEditorType(), "", false);
|
||||||
case PLANAR_DECK:
|
|
||||||
case DRAFT_DECK:
|
|
||||||
case SEALED_DECK:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
setSelectedDeckType(DeckType.CONSTRUCTED_DECK);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
editor[0].setSaveHandler(new FEventHandler() {
|
||||||
|
@Override
|
||||||
|
public void handleEvent(FEvent e) {
|
||||||
|
//ensure user returns to proper deck type and that list is refreshed if new deck is saved
|
||||||
|
if (!needRefreshOnActivate) {
|
||||||
|
needRefreshOnActivate = true;
|
||||||
|
if (lstDecks.getGameType() == GameType.DeckManager) {
|
||||||
|
switch (selectedDeckType) {
|
||||||
|
case COMMANDER_DECK:
|
||||||
|
case OATHBREAKER_DECK:
|
||||||
|
case TINY_LEADERS_DECK:
|
||||||
|
case BRAWL_DECK:
|
||||||
|
case SCHEME_DECK:
|
||||||
|
case PLANAR_DECK:
|
||||||
|
case DRAFT_DECK:
|
||||||
|
case SEALED_DECK:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
setSelectedDeckType(DeckType.CONSTRUCTED_DECK);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setSelectedDeckType(DeckType.CUSTOM_DECK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Forge.openScreen(editor[0]);
|
||||||
}
|
}
|
||||||
else {
|
});
|
||||||
setSelectedDeckType(DeckType.CUSTOM_DECK);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Forge.openScreen(editor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void editSelectedDeck() {
|
private void editSelectedDeck() {
|
||||||
|
|||||||
Reference in New Issue
Block a user