mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Improved thread handling for constructed mode game start.
This commit is contained in:
@@ -18,8 +18,8 @@ import java.util.Random;
|
|||||||
import javax.swing.JList;
|
import javax.swing.JList;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.ListSelectionModel;
|
import javax.swing.ListSelectionModel;
|
||||||
|
import javax.swing.SwingUtilities;
|
||||||
import net.miginfocom.swing.MigLayout;
|
import javax.swing.SwingWorker;
|
||||||
|
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
@@ -37,9 +37,6 @@ import forge.game.GameNew;
|
|||||||
import forge.gui.OverlayUtils;
|
import forge.gui.OverlayUtils;
|
||||||
import forge.gui.home.ICSubmenu;
|
import forge.gui.home.ICSubmenu;
|
||||||
import forge.gui.toolbox.FLabel;
|
import forge.gui.toolbox.FLabel;
|
||||||
import forge.gui.toolbox.FOverlay;
|
|
||||||
import forge.gui.toolbox.FPanel;
|
|
||||||
import forge.gui.toolbox.FSkin;
|
|
||||||
import forge.item.CardPrinted;
|
import forge.item.CardPrinted;
|
||||||
import forge.properties.ForgePreferences;
|
import forge.properties.ForgePreferences;
|
||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
@@ -340,9 +337,17 @@ public enum CSubmenuConstructed implements ICSubmenu {
|
|||||||
|
|
||||||
/** @param lists0   {@link java.util.List}<{@link javax.swing.JList}> */
|
/** @param lists0   {@link java.util.List}<{@link javax.swing.JList}> */
|
||||||
private void startGame() {
|
private void startGame() {
|
||||||
|
SwingUtilities.invokeLater(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
OverlayUtils.startGameOverlay();
|
OverlayUtils.startGameOverlay();
|
||||||
OverlayUtils.showOverlay();
|
OverlayUtils.showOverlay();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
final SwingWorker<Object, Void> worker = new SwingWorker<Object, Void>() {
|
||||||
|
@Override
|
||||||
|
public Object doInBackground() {
|
||||||
Constant.Runtime.HUMAN_DECK[0] =
|
Constant.Runtime.HUMAN_DECK[0] =
|
||||||
generateDeck(VSubmenuConstructed.SINGLETON_INSTANCE.getLstHumanDecks(), PlayerType.HUMAN);
|
generateDeck(VSubmenuConstructed.SINGLETON_INSTANCE.getLstHumanDecks(), PlayerType.HUMAN);
|
||||||
Constant.Runtime.COMPUTER_DECK[0] =
|
Constant.Runtime.COMPUTER_DECK[0] =
|
||||||
@@ -351,9 +356,16 @@ public enum CSubmenuConstructed implements ICSubmenu {
|
|||||||
if (Constant.Runtime.HUMAN_DECK[0] != null && Constant.Runtime.COMPUTER_DECK[0] != null) {
|
if (Constant.Runtime.HUMAN_DECK[0] != null && Constant.Runtime.COMPUTER_DECK[0] != null) {
|
||||||
GameNew.newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]);
|
GameNew.newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]);
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void done() {
|
||||||
OverlayUtils.hideOverlay();
|
OverlayUtils.hideOverlay();
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
worker.execute();
|
||||||
|
}
|
||||||
|
|
||||||
/** Generates deck from current list selection(s). */
|
/** Generates deck from current list selection(s). */
|
||||||
private static Deck generateDeck(final JList lst0, final PlayerType player0) {
|
private static Deck generateDeck(final JList lst0, final PlayerType player0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user