use of org.terasology.engine.rendering.nui.layers.mainMenu.MessagePopup in project Terasology by MovingBlocks.
the class CoreCommands method join.
/**
* Join a game
*
* @param address String containing address of game server
* @param portParam Integer containing game server port
*/
@Command(shortDescription = "Join a game", requiredPermission = PermissionManager.NO_PERMISSION)
public void join(@CommandParam("address") final String address, @CommandParam(value = "port", required = false) Integer portParam) {
final int port = portParam != null ? portParam : TerasologyConstants.DEFAULT_PORT;
Callable<JoinStatus> operation = () -> networkSystem.join(address, port);
final WaitPopup<JoinStatus> popup = nuiManager.pushScreen(WaitPopup.ASSET_URI, WaitPopup.class);
popup.setMessage("Join Game", "Connecting to '" + address + ":" + port + "' - please wait ...");
popup.onSuccess(result -> {
if (result.getStatus() != JoinStatus.Status.FAILED) {
gameEngine.changeState(new StateLoading(result));
} else {
MessagePopup screen = nuiManager.pushScreen(MessagePopup.ASSET_URI, MessagePopup.class);
screen.setMessage("Failed to Join", "Could not connect to server - " + result.getErrorMessage());
}
});
popup.startOperation(operation, true);
}
use of org.terasology.engine.rendering.nui.layers.mainMenu.MessagePopup in project Terasology by MovingBlocks.
the class ModuleDetailsScreen method onOpened.
@Override
public void onOpened() {
super.onOpened();
if (!isScreenValid()) {
final MessagePopup popup = getManager().createScreen(MessagePopup.ASSET_URI, MessagePopup.class);
popup.setMessage(translationSystem.translate("${engine:menu#game-details-errors-message-title}"), translationSystem.translate("${engine:menu#game-details-errors-message-body}"));
popup.subscribeButton(e -> triggerBackAnimation());
getManager().pushScreen(popup);
// disable child widgets
setEnabled(false);
}
}
use of org.terasology.engine.rendering.nui.layers.mainMenu.MessagePopup in project Terasology by MovingBlocks.
the class ModuleDetailsScreen method startDownloadingNewestModulesRequiredFor.
private void startDownloadingNewestModulesRequiredFor(final DependencyInfo dependencyInfo) {
final Set<Module> modulesToDownload;
try {
modulesToDownload = moduleManager.getInstallManager().getAllModulesToDownloadFor(dependencyInfo.getId());
} catch (DependencyResolutionFailedException ex) {
MessagePopup messagePopup = getManager().pushScreen(MessagePopup.ASSET_URI, MessagePopup.class);
messagePopup.setMessage("Error", ex.getMessage());
return;
}
final ConfirmPopup confirmPopup = getManager().pushScreen(ConfirmPopup.ASSET_URI, ConfirmPopup.class);
confirmPopup.setMessage("Confirm Download", modulesToDownload.size() + " modules will be downloaded");
confirmPopup.setOkHandler(() -> downloadModules(modulesToDownload));
}
use of org.terasology.engine.rendering.nui.layers.mainMenu.MessagePopup in project Terasology by MovingBlocks.
the class AdvancedGameSetupScreen method startDownloadingNewestModulesRequiredFor.
private void startDownloadingNewestModulesRequiredFor(ModuleSelectionInfo moduleMetadata) {
Set<Module> modulesToDownload;
try {
modulesToDownload = moduleManager.getInstallManager().getAllModulesToDownloadFor(moduleMetadata.getMetadata().getId());
} catch (DependencyResolutionFailedException ex) {
MessagePopup messagePopup = getManager().pushScreen(MessagePopup.ASSET_URI, MessagePopup.class);
messagePopup.setMessage("Error", ex.getMessage());
return;
}
ConfirmPopup confirmPopup = getManager().pushScreen(ConfirmPopup.ASSET_URI, ConfirmPopup.class);
confirmPopup.setMessage("Confirm Download", modulesToDownload.size() + " modules will be downloaded");
confirmPopup.setOkHandler(() -> downloadModules(modulesToDownload));
}
use of org.terasology.engine.rendering.nui.layers.mainMenu.MessagePopup in project Terasology by MovingBlocks.
the class StateMainMenu method init.
@Override
public void init(GameEngine gameEngine) {
context = gameEngine.createChildContext();
headless = context.get(DisplayDevice.class).isHeadless();
initEntityAndComponentManagers(headless);
createLocalPlayer(context);
if (!headless) {
// TODO: REMOVE this and handle refreshing of core game state at the engine level - see Issue #1127
new RegisterInputSystem(context).step();
nuiManager = context.get(NUIManager.class);
eventSystem.registerEventHandler(nuiManager);
NUIEditorSystem nuiEditorSystem = new NUIEditorSystem();
context.put(NUIEditorSystem.class, nuiEditorSystem);
componentSystemManager.register(nuiEditorSystem, "engine:NUIEditorSystem");
NUISkinEditorSystem nuiSkinEditorSystem = new NUISkinEditorSystem();
context.put(NUISkinEditorSystem.class, nuiSkinEditorSystem);
componentSystemManager.register(nuiSkinEditorSystem, "engine:NUISkinEditorSystem");
inputSystem = context.get(InputSystem.class);
}
componentSystemManager.initialise();
console = context.get(Console.class);
storageServiceWorker = context.get(StorageServiceWorker.class);
playBackgroundMusic();
if (!headless) {
// guiManager.openWindow("main");
context.get(NUIManager.class).pushScreen("engine:mainMenuScreen");
}
if (!messageOnLoad.isEmpty()) {
TranslationSystem translationSystem = context.get(TranslationSystem.class);
if (headless) {
throw new RuntimeException(String.format("Game could not be started, server attempted to return to main menu: [%s]. See logs before", translationSystem.translate(messageOnLoad)));
} else {
MessagePopup popup = nuiManager.pushScreen(MessagePopup.ASSET_URI, MessagePopup.class);
popup.setMessage("Error", translationSystem.translate(messageOnLoad));
}
}
// TODO: enable it when exposing the telemetry to users
// pushLaunchPopup();
}
Aggregations