mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Create shell for Online Multiplayer Lobby
This commit is contained in:
@@ -8,6 +8,7 @@ import forge.screens.home.gauntlet.VSubmenuGauntletBuild;
|
||||
import forge.screens.home.gauntlet.VSubmenuGauntletContests;
|
||||
import forge.screens.home.gauntlet.VSubmenuGauntletLoad;
|
||||
import forge.screens.home.gauntlet.VSubmenuGauntletQuick;
|
||||
import forge.screens.home.online.VSubmenuOnlineLobby;
|
||||
import forge.screens.home.quest.*;
|
||||
import forge.screens.home.sanctioned.VSubmenuConstructed;
|
||||
import forge.screens.home.sanctioned.VSubmenuDraft;
|
||||
@@ -29,79 +30,80 @@ import forge.screens.workshop.views.VWorkshopCatalog;
|
||||
*
|
||||
* <br><br><i>(E at beginning of class name denotes an enum.)</i>
|
||||
*/
|
||||
public enum EDocID { /** */
|
||||
CARD_PICTURE (VPicture.SINGLETON_INSTANCE), /** */
|
||||
CARD_DETAIL (VDetail.SINGLETON_INSTANCE), /** */
|
||||
CARD_ANTES (VAntes.SINGLETON_INSTANCE), /** */
|
||||
public enum EDocID {
|
||||
CARD_PICTURE (VPicture.SINGLETON_INSTANCE),
|
||||
CARD_DETAIL (VDetail.SINGLETON_INSTANCE),
|
||||
CARD_ANTES (VAntes.SINGLETON_INSTANCE),
|
||||
|
||||
EDITOR_ALLDECKS (VAllDecks.SINGLETON_INSTANCE), /** */
|
||||
EDITOR_STATISTICS (VStatistics.SINGLETON_INSTANCE), /** */
|
||||
EDITOR_PROBABILITIES (VProbabilities.SINGLETON_INSTANCE), /** */
|
||||
EDITOR_CATALOG (VCardCatalog.SINGLETON_INSTANCE), /** */
|
||||
EDITOR_CURRENTDECK (VCurrentDeck.SINGLETON_INSTANCE), /** */
|
||||
EDITOR_DECKGEN (VDeckgen.SINGLETON_INSTANCE), /** */
|
||||
EDITOR_ALLDECKS (VAllDecks.SINGLETON_INSTANCE),
|
||||
EDITOR_STATISTICS (VStatistics.SINGLETON_INSTANCE),
|
||||
EDITOR_PROBABILITIES (VProbabilities.SINGLETON_INSTANCE),
|
||||
EDITOR_CATALOG (VCardCatalog.SINGLETON_INSTANCE),
|
||||
EDITOR_CURRENTDECK (VCurrentDeck.SINGLETON_INSTANCE),
|
||||
EDITOR_DECKGEN (VDeckgen.SINGLETON_INSTANCE),
|
||||
|
||||
WORKSHOP_CATALOG (VWorkshopCatalog.SINGLETON_INSTANCE), /** */
|
||||
WORKSHOP_CARDDESIGNER (VCardDesigner.SINGLETON_INSTANCE), /** */
|
||||
WORKSHOP_CARDSCRIPT (VCardScript.SINGLETON_INSTANCE), /** */
|
||||
WORKSHOP_CATALOG (VWorkshopCatalog.SINGLETON_INSTANCE),
|
||||
WORKSHOP_CARDDESIGNER (VCardDesigner.SINGLETON_INSTANCE),
|
||||
WORKSHOP_CARDSCRIPT (VCardScript.SINGLETON_INSTANCE),
|
||||
|
||||
HOME_QUESTDRAFTS (VSubmenuQuestDraft.SINGLETON_INSTANCE), /** */
|
||||
HOME_QUESTCHALLENGES (VSubmenuChallenges.SINGLETON_INSTANCE), /** */
|
||||
HOME_QUESTDUELS (VSubmenuDuels.SINGLETON_INSTANCE), /** */
|
||||
HOME_QUESTDATA (VSubmenuQuestData.SINGLETON_INSTANCE), /** */
|
||||
HOME_QUESTDECKS (VSubmenuQuestDecks.SINGLETON_INSTANCE), /** */
|
||||
HOME_QUESTPREFS (VSubmenuQuestPrefs.SINGLETON_INSTANCE), /** */
|
||||
HOME_GAUNTLETBUILD (VSubmenuGauntletBuild.SINGLETON_INSTANCE), /** */
|
||||
HOME_GAUNTLETLOAD (VSubmenuGauntletLoad.SINGLETON_INSTANCE), /** */
|
||||
HOME_GAUNTLETQUICK (VSubmenuGauntletQuick.SINGLETON_INSTANCE), /** */
|
||||
HOME_GAUNTLETCONTESTS (VSubmenuGauntletContests.SINGLETON_INSTANCE), /** */
|
||||
HOME_PREFERENCES (VSubmenuPreferences.SINGLETON_INSTANCE), /** */
|
||||
HOME_ACHIEVEMENTS (VSubmenuAchievements.SINGLETON_INSTANCE), /** */
|
||||
HOME_AVATARS (VSubmenuAvatars.SINGLETON_INSTANCE), /** */
|
||||
HOME_UTILITIES (VSubmenuDownloaders.SINGLETON_INSTANCE), /** */
|
||||
HOME_CONSTRUCTED (VSubmenuConstructed.SINGLETON_INSTANCE), /** */
|
||||
HOME_DRAFT (VSubmenuDraft.SINGLETON_INSTANCE), /** */
|
||||
HOME_SEALED (VSubmenuSealed.SINGLETON_INSTANCE), /** */
|
||||
HOME_WINSTON (VSubmenuWinston.SINGLETON_INSTANCE), /** */
|
||||
HOME_QUESTDRAFTS (VSubmenuQuestDraft.SINGLETON_INSTANCE),
|
||||
HOME_QUESTCHALLENGES (VSubmenuChallenges.SINGLETON_INSTANCE),
|
||||
HOME_QUESTDUELS (VSubmenuDuels.SINGLETON_INSTANCE),
|
||||
HOME_QUESTDATA (VSubmenuQuestData.SINGLETON_INSTANCE),
|
||||
HOME_QUESTDECKS (VSubmenuQuestDecks.SINGLETON_INSTANCE),
|
||||
HOME_QUESTPREFS (VSubmenuQuestPrefs.SINGLETON_INSTANCE),
|
||||
HOME_GAUNTLETBUILD (VSubmenuGauntletBuild.SINGLETON_INSTANCE),
|
||||
HOME_GAUNTLETLOAD (VSubmenuGauntletLoad.SINGLETON_INSTANCE),
|
||||
HOME_GAUNTLETQUICK (VSubmenuGauntletQuick.SINGLETON_INSTANCE),
|
||||
HOME_GAUNTLETCONTESTS (VSubmenuGauntletContests.SINGLETON_INSTANCE),
|
||||
HOME_PREFERENCES (VSubmenuPreferences.SINGLETON_INSTANCE),
|
||||
HOME_ACHIEVEMENTS (VSubmenuAchievements.SINGLETON_INSTANCE),
|
||||
HOME_AVATARS (VSubmenuAvatars.SINGLETON_INSTANCE),
|
||||
HOME_UTILITIES (VSubmenuDownloaders.SINGLETON_INSTANCE),
|
||||
HOME_CONSTRUCTED (VSubmenuConstructed.SINGLETON_INSTANCE),
|
||||
HOME_DRAFT (VSubmenuDraft.SINGLETON_INSTANCE),
|
||||
HOME_SEALED (VSubmenuSealed.SINGLETON_INSTANCE),
|
||||
HOME_WINSTON (VSubmenuWinston.SINGLETON_INSTANCE),
|
||||
HOME_LOBBY (VSubmenuOnlineLobby.SINGLETON_INSTANCE),
|
||||
HOME_RELEASE_NOTES (VSubmenuReleaseNotes.SINGLETON_INSTANCE),
|
||||
|
||||
REPORT_MESSAGE (VPrompt.SINGLETON_INSTANCE), /** */
|
||||
REPORT_STACK (VStack.SINGLETON_INSTANCE), /** */
|
||||
REPORT_COMBAT (VCombat.SINGLETON_INSTANCE), /** */
|
||||
REPORT_LOG (VLog.SINGLETON_INSTANCE), /** */
|
||||
REPORT_PLAYERS (VPlayers.SINGLETON_INSTANCE), /** */
|
||||
REPORT_MESSAGE (VPrompt.SINGLETON_INSTANCE),
|
||||
REPORT_STACK (VStack.SINGLETON_INSTANCE),
|
||||
REPORT_COMBAT (VCombat.SINGLETON_INSTANCE),
|
||||
REPORT_LOG (VLog.SINGLETON_INSTANCE),
|
||||
REPORT_PLAYERS (VPlayers.SINGLETON_INSTANCE),
|
||||
|
||||
DEV_MODE (VDev.SINGLETON_INSTANCE), /** */
|
||||
BUTTON_DOCK (VDock.SINGLETON_INSTANCE), /** */
|
||||
DEV_MODE (VDev.SINGLETON_INSTANCE),
|
||||
BUTTON_DOCK (VDock.SINGLETON_INSTANCE),
|
||||
|
||||
// Non-user battlefields (AI or teammate), use setDoc to register.
|
||||
FIELD_0 (null), /** */
|
||||
FIELD_1 (null), /** */
|
||||
FIELD_2 (null), /** */
|
||||
FIELD_3 (null), /** */
|
||||
FIELD_4 (null), /** */
|
||||
FIELD_5 (null), /** */
|
||||
FIELD_6 (null), /** */
|
||||
FIELD_7 (null), /** */
|
||||
FIELD_0 (null),
|
||||
FIELD_1 (null),
|
||||
FIELD_2 (null),
|
||||
FIELD_3 (null),
|
||||
FIELD_4 (null),
|
||||
FIELD_5 (null),
|
||||
FIELD_6 (null),
|
||||
FIELD_7 (null),
|
||||
|
||||
// Non-user hands (AI or teammate), use setDoc to register.
|
||||
HAND_0 (null), /** */
|
||||
HAND_1 (null), /** */
|
||||
HAND_2 (null), /** */
|
||||
HAND_3 (null), /** */
|
||||
HAND_4 (null), /** */
|
||||
HAND_5 (null), /** */
|
||||
HAND_6 (null), /** */
|
||||
HAND_7 (null), /** */
|
||||
HAND_0 (null),
|
||||
HAND_1 (null),
|
||||
HAND_2 (null),
|
||||
HAND_3 (null),
|
||||
HAND_4 (null),
|
||||
HAND_5 (null),
|
||||
HAND_6 (null),
|
||||
HAND_7 (null),
|
||||
|
||||
COMMAND_0 (null), /** */
|
||||
COMMAND_1 (null), /** */
|
||||
COMMAND_2 (null), /** */
|
||||
COMMAND_3 (null), /** */
|
||||
COMMAND_4 (null), /** */
|
||||
COMMAND_5 (null), /** */
|
||||
COMMAND_6 (null), /** */
|
||||
COMMAND_7 (null); /** */
|
||||
COMMAND_0 (null),
|
||||
COMMAND_1 (null),
|
||||
COMMAND_2 (null),
|
||||
COMMAND_3 (null),
|
||||
COMMAND_4 (null),
|
||||
COMMAND_5 (null),
|
||||
COMMAND_6 (null),
|
||||
COMMAND_7 (null);
|
||||
|
||||
public final static EDocID[] Commands = new EDocID[] {COMMAND_0, COMMAND_1, COMMAND_2, COMMAND_3, COMMAND_4, COMMAND_5, COMMAND_6, COMMAND_7};
|
||||
public final static EDocID[] Fields = new EDocID[] {FIELD_0, FIELD_1, FIELD_2, FIELD_3, FIELD_4, FIELD_5, FIELD_6, FIELD_7};
|
||||
|
||||
@@ -7,10 +7,11 @@ package forge.screens.home;
|
||||
*
|
||||
* <br><br><i>(E at beginning of class name denotes an enum.)</i>
|
||||
*/
|
||||
public enum EMenuGroup { /** */
|
||||
SANCTIONED ("Sanctioned Formats"), /** */
|
||||
QUEST ("Quest Mode"), /** */
|
||||
GAUNTLET ("Gauntlets"), /** */
|
||||
public enum EMenuGroup {
|
||||
SANCTIONED ("Sanctioned Formats"),
|
||||
ONLINE ("Online Multiplayer"),
|
||||
QUEST ("Quest Mode"),
|
||||
GAUNTLET ("Gauntlets"),
|
||||
SETTINGS ("Game Settings");
|
||||
|
||||
private final String strTitle;
|
||||
|
||||
@@ -27,6 +27,7 @@ import forge.screens.home.gauntlet.VSubmenuGauntletBuild;
|
||||
import forge.screens.home.gauntlet.VSubmenuGauntletContests;
|
||||
import forge.screens.home.gauntlet.VSubmenuGauntletLoad;
|
||||
import forge.screens.home.gauntlet.VSubmenuGauntletQuick;
|
||||
import forge.screens.home.online.VSubmenuOnlineLobby;
|
||||
import forge.screens.home.quest.*;
|
||||
import forge.screens.home.sanctioned.VSubmenuConstructed;
|
||||
import forge.screens.home.sanctioned.VSubmenuDraft;
|
||||
@@ -118,6 +119,8 @@ public enum VHomeUI implements IVTopLevelUI {
|
||||
allSubmenus.add(VSubmenuSealed.SINGLETON_INSTANCE);
|
||||
//allSubmenus.add(VSubmenuWinston.SINGLETON_INSTANCE);
|
||||
|
||||
allSubmenus.add(VSubmenuOnlineLobby.SINGLETON_INSTANCE);
|
||||
|
||||
allSubmenus.add(VSubmenuDuels.SINGLETON_INSTANCE);
|
||||
allSubmenus.add(VSubmenuChallenges.SINGLETON_INSTANCE);
|
||||
allSubmenus.add(VSubmenuQuestDraft.SINGLETON_INSTANCE);
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package forge.screens.home.online;
|
||||
|
||||
import forge.UiCommand;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.menus.IMenuProvider;
|
||||
import forge.menus.MenuUtil;
|
||||
import javax.swing.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public enum CSubmenuOnlineLobby implements ICDoc, IMenuProvider {
|
||||
SINGLETON_INSTANCE;
|
||||
|
||||
private final VSubmenuOnlineLobby view = VSubmenuOnlineLobby.SINGLETON_INSTANCE;
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
MenuUtil.setMenuProvider(this);
|
||||
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public UiCommand getCommandOnSelect() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JMenu> getMenus() {
|
||||
List<JMenu> menus = new ArrayList<JMenu>();
|
||||
return menus;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package forge.screens.home.online;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JPanel;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
|
||||
import forge.gui.framework.DragCell;
|
||||
import forge.gui.framework.DragTab;
|
||||
import forge.gui.framework.EDocID;
|
||||
import forge.screens.home.EMenuGroup;
|
||||
import forge.screens.home.IVSubmenu;
|
||||
import forge.screens.home.LblHeader;
|
||||
import forge.screens.home.StartButton;
|
||||
import forge.screens.home.VHomeUI;
|
||||
import forge.toolbox.FSkin;
|
||||
|
||||
|
||||
public enum VSubmenuOnlineLobby implements IVSubmenu<CSubmenuOnlineLobby> {
|
||||
SINGLETON_INSTANCE;
|
||||
|
||||
private DragCell parentCell;
|
||||
private final DragTab tab = new DragTab("Lobby");
|
||||
|
||||
// General variables
|
||||
private final LblHeader lblTitle = new LblHeader("Online Multiplayer: Lobby");
|
||||
|
||||
private final StartButton btnStart = new StartButton();
|
||||
private final JPanel pnlStart = new JPanel(new MigLayout("insets 0, gap 0, wrap 2"));
|
||||
private final JPanel constructedFrame = new JPanel(new MigLayout("insets 0, gap 0, wrap 2")); // Main content frame
|
||||
|
||||
private VSubmenuOnlineLobby() {
|
||||
lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
||||
constructedFrame.setOpaque(false);
|
||||
pnlStart.setOpaque(false);
|
||||
pnlStart.add(btnStart, "align center");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void populate() {
|
||||
JPanel container = VHomeUI.SINGLETON_INSTANCE.getPnlDisplay();
|
||||
|
||||
container.removeAll();
|
||||
container.setLayout(new MigLayout("insets 0, gap 0, wrap 1, ax right"));
|
||||
container.add(lblTitle, "w 80%, h 40px!, gap 0 0 15px 15px, span 2, al right, pushx");
|
||||
|
||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(constructedFrame, "gap 20px 20px 20px 0px, push, grow");
|
||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(pnlStart, "gap 0 0 3.5%! 3.5%!, ax center");
|
||||
|
||||
if (container.isShowing()) {
|
||||
container.validate();
|
||||
container.repaint();
|
||||
}
|
||||
}
|
||||
|
||||
public JButton getBtnStart() {
|
||||
return btnStart;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EMenuGroup getGroupEnum() {
|
||||
return EMenuGroup.ONLINE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMenuTitle() {
|
||||
return "Lobby";
|
||||
}
|
||||
|
||||
@Override
|
||||
public EDocID getItemEnum() {
|
||||
return EDocID.HOME_LOBBY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EDocID getDocumentID() {
|
||||
return EDocID.HOME_LOBBY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DragTab getTabLabel() {
|
||||
return tab;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CSubmenuOnlineLobby getLayoutControl() {
|
||||
return CSubmenuOnlineLobby.SINGLETON_INSTANCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setParentCell(DragCell cell0) {
|
||||
parentCell = cell0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DragCell getParentCell() {
|
||||
return parentCell;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user