You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
3.5 KiB
133 lines
3.5 KiB
package net.sector.gui.panels;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import net.sector.App;
|
|
import net.sector.Constants;
|
|
import net.sector.GameConfig;
|
|
import net.sector.gui.panels.dialogs.EDialogColor;
|
|
import net.sector.gui.panels.dialogs.PanelDialogModal;
|
|
import net.sector.gui.panels.dialogs.PanelDialogModal.IDialogListener;
|
|
import net.sector.gui.panels.profiles.PanelProfiles;
|
|
import net.sector.gui.screens.Screen;
|
|
import net.sector.gui.screens.ScreenDesigner;
|
|
import net.sector.gui.screens.ScreenLevels;
|
|
import net.sector.gui.widgets.GuiRoot;
|
|
import net.sector.gui.widgets.Widget;
|
|
import net.sector.gui.widgets.layout.Gap;
|
|
import net.sector.gui.widgets.layout.LayoutV;
|
|
import net.sector.gui.widgets.menu.MenuButton;
|
|
import net.sector.gui.widgets.menu.MenuLoginDisplay;
|
|
import net.sector.gui.widgets.menu.MenuTitle;
|
|
import net.sector.level.SuperContext;
|
|
import net.sector.util.Align;
|
|
import net.sector.util.Log;
|
|
|
|
|
|
/**
|
|
* Main menu panel
|
|
*
|
|
* @author MightyPork
|
|
*/
|
|
public class PanelMenu extends PanelGui {
|
|
private static final int EXIT = 0;
|
|
private static final int PLAY = 1;
|
|
private static final int CONFIG = 3;
|
|
private static final int USERS = 4;
|
|
private static final int LEVELS = 5;
|
|
|
|
public PanelMenu(Screen screen) {
|
|
super(screen);
|
|
}
|
|
|
|
@Override
|
|
public void initGui(GuiRoot root) {
|
|
LayoutV v = new LayoutV(Align.CENTER);
|
|
v.add(new MenuTitle("SECTOR"));
|
|
v.add(new Gap(0, 20));
|
|
//v.add(new MenuButton(PLAY, "Start game"));
|
|
v.add(new MenuButton(LEVELS, "Challenges"));
|
|
//v.add(new MenuButton(HISCORE, "Highscore"));
|
|
v.add(new Gap(0, 15));
|
|
v.add(new MenuLoginDisplay(USERS));
|
|
v.add(new Gap(0, 15));
|
|
v.add(new MenuButton(CONFIG, "Settings"));
|
|
v.add(new MenuButton(EXIT, "Quit game"));
|
|
root.setRootWidget(v);
|
|
}
|
|
|
|
@Override
|
|
public void onPostInit() {
|
|
if (!App.offlineMode && !SuperContext.updateAlertShown && GameConfig.enableUpdateAlerts) {
|
|
if (SuperContext.latestVersionNumber > Constants.VERSION_NUMBER) {
|
|
SuperContext.updateAlertShown = true;
|
|
|
|
String message = "Update your SECTOR!\n";
|
|
message += "New version " + SuperContext.latestVersionName + " is available.\n";
|
|
|
|
IDialogListener listener = new IDialogListener() {
|
|
|
|
@Override
|
|
public void onDialogButton(int dialogId, int button) {
|
|
if (button == 0) {
|
|
try {
|
|
java.awt.Desktop.getDesktop().browse(java.net.URI.create(Constants.WEB_URL));
|
|
} catch (IOException e) {
|
|
Log.e("Error openning website.", e);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
openPanel(new PanelDialogModal(screen, listener, -1, true, message, "Open website", "Close").setEnterButton(1).setColorTheme(
|
|
EDialogColor.GREEN));
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean hasBackgroundLayer() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public void actionPerformed(Widget widget) {
|
|
if (!widget.isEnabled()) return;
|
|
|
|
switch (widget.id) {
|
|
case EXIT:
|
|
PanelDialogModal p;
|
|
|
|
IDialogListener listener = new IDialogListener() {
|
|
@Override
|
|
public void onDialogButton(int dialogId, int button) {
|
|
if (button == 1) App.inst.exit();
|
|
}
|
|
};
|
|
|
|
p = new PanelDialogModal(screen, listener, -1, true, "Do you really want to quit?", "No", "Yes").setEnterButton(1);
|
|
p.setColorTheme(EDialogColor.BLUE);
|
|
|
|
openPanel(p);
|
|
break;
|
|
|
|
case PLAY:
|
|
app.replaceScreen(new ScreenDesigner());
|
|
break;
|
|
|
|
case LEVELS:
|
|
app.replaceScreen(new ScreenLevels());
|
|
break;
|
|
|
|
case CONFIG:
|
|
openPanel(new PanelConfig(screen, 0));
|
|
break;
|
|
|
|
case USERS:
|
|
openPanel(new PanelProfiles(screen));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|