@Override public void initialise() { nuiManager.getHUD().addHUDElement("inventoryHud"); nuiManager.addOverlay("core:transferItemCursor", ControlWidget.class); }
private void buttonCallback(Runnable action) { getManager().popScreen(); action.run(); }
@Override public void toggleEditor() { nuiManager.toggleScreen(NUISkinEditorScreen.ASSET_URI); editorActive = !editorActive; }
@ReceiveEvent(components = {CharacterComponent.class}) public void onPlayerDeath(PlayerDeathEvent event, EntityRef character) { EntityRef client = character.getComponent(CharacterComponent.class).controller; if (client.getComponent(ClientComponent.class).local) { nuiManager.removeOverlay("engine:onlinePlayersOverlay"); nuiManager.pushScreen("engine:deathScreen"); if (event.damageTypeName != null) { ((DeathScreen) nuiManager.getScreen("engine:deathScreen")).setDeathDetails(event.instigatorName, event.damageTypeName); } } }
@ReceiveEvent(components = ClientComponent.class) public void onShowOnlinePlayers(OnlinePlayersButton event, EntityRef entity) { boolean show = event.isDown(); String onlinePlayersOverlay = "engine:onlinePlayersOverlay"; if (show) { nuiManager.addOverlay(onlinePlayersOverlay, OnlinePlayersOverlay.class); } else { nuiManager.removeOverlay(onlinePlayersOverlay); } event.consume(); } }
private void openModuleDetailsScreen() { final ModuleDetailsScreen moduleDetailsScreen = getManager().createScreen(ModuleDetailsScreen.ASSET_URI, ModuleDetailsScreen.class); final Collection<Module> modules = gameModules.getList().stream() .map(ModuleSelectionInfo::getModule) .filter(Objects::nonNull) .collect(Collectors.toSet()); moduleDetailsScreen.setModules(modules); moduleDetailsScreen.setSelectedModule( modules.stream() .filter(module -> module.getId().equals(moduleInfoBinding.get().getModule().getId())) .findFirst() .orElse(null) ); getManager().pushScreen(moduleDetailsScreen); }
@Override public void update(float delta) { super.update(delta); if (parallelTask == null) { return; // idle } if (!parallelTask.isDone()) { return; // still running } if (parallelTask.isCancelled()) { // wait for the thread to die if (!thread.isAlive()) { getManager().popScreen(); } return; } try { T result = parallelTask.get(); getManager().popScreen(); if (resultEvent != null) { resultEvent.accept(result); } } catch (InterruptedException | ExecutionException e) { logger.warn("An error occurred during execution", e); getManager().popScreen(); getManager().pushScreen(MessagePopup.ASSET_URI, MessagePopup.class).setMessage("Error", e.getMessage()); } }
@Override public void initialise() { nuiManager.getHUD().addHUDElement("healthHud"); } }
getManager().setFocus(commandLine); commandLine.setText(""); scrollArea.moveToBottom(); NotificationOverlay overlay = nuiManager.addOverlay(NotificationOverlay.ASSET_URI, NotificationOverlay.class); overlay.setVisible(true); nuiManager.closeScreen(this); } else { commandLine.setText(""); nuiManager.closeScreen(this);
@Override public void initialise() { overlay = nuiManager.addOverlay(NotificationOverlay.ASSET_URI, NotificationOverlay.class); console.subscribe((Message message) -> { if (!nuiManager.isOpen("engine:console")) { // make sure the message isn't already shown in the chat overlay if (message.getType() != CoreMessageType.CHAT && message.getType() != CoreMessageType.NOTIFICATION || !nuiManager.isOpen("engine:chat")) { overlay.setVisible(true); } } }); }
/** * Initialize and display a {@link ContextMenuScreen} based on a given menu tree. * * @param manager The {@link NUIManager} to be used to display the screen. * @param position The position of the initial menu tree. * @param tree The menu tree the context menu is based on. */ public static void showContextMenu(NUIManager manager, Vector2i position, MenuTree tree) { if (!manager.isOpen(ContextMenuScreen.ASSET_URI)) { manager.pushScreen(ContextMenuScreen.ASSET_URI, ContextMenuScreen.class); } ContextMenuScreen contextMenuScreen = (ContextMenuScreen) manager.getScreen(ContextMenuScreen.ASSET_URI); contextMenuScreen.setMenuWidgets(getMenuLevelList(manager, new VisibleTree(tree, true))); contextMenuScreen.setPosition(position); }
/** * Reloads ui screen * * @param ui String containing ui screen name * @return String containing Success if UI was reloaded or No unique resource found if more screens were found */ @Command(shortDescription = "Reloads a ui screen") public String reloadScreen(@CommandParam("ui") String ui) { Set<ResourceUrn> urns = assetManager.resolve(ui, UIElement.class); if (urns.size() == 1) { ResourceUrn urn = urns.iterator().next(); boolean wasOpen = nuiManager.isOpen(urn); if (wasOpen) { nuiManager.closeScreen(urn); } if (wasOpen) { nuiManager.pushScreen(urn); } return "Success"; } else { return "No unique resource found"; } }
@ReceiveEvent(components = ClientComponent.class) public void onTogglePause(PauseButton event, EntityRef entity) { if (event.getState() == ButtonState.DOWN) { nuiManager.toggleScreen("engine:pauseMenu"); event.consume(); } if (networkSystem.getMode() == NetworkMode.NONE) { if (nuiManager.isOpen("engine:pauseMenu")) { time.setPaused(true); } else { time.setPaused(false); } } }
/** * {@inheritDoc} */ @Override protected void addWidget(JsonTree node) { getManager().pushScreen(WidgetSelectionScreen.ASSET_URI, WidgetSelectionScreen.class); // Initialise and show the widget selection screen. WidgetSelectionScreen widgetSelectionScreen = (WidgetSelectionScreen) getManager() .getScreen(WidgetSelectionScreen.ASSET_URI); widgetSelectionScreen.setNode(node); widgetSelectionScreen.subscribeClose(() -> { JsonTree widget = node.getChildAt(node.getChildren().size() - 1); widget.setExpanded(true); getEditor().fireUpdateListeners(); }); }
@Override public void initialise() { WidgetUtil.trySubscribe(this, "nuiEditor", button -> nuiEditorSystem.toggleEditor()); WidgetUtil.trySubscribe(this, "nuiSkinEditor", button -> nuiSkinEditorSystem.toggleEditor()); WidgetUtil.trySubscribe(this, "btEditor", button -> getManager().toggleScreen("engine:behaviorEditorScreen")); WidgetUtil.trySubscribe(this, "close", button -> getManager().closeScreen(ASSET_URI)); }
@Override public void update(float delta) { GameEngine gameEngine = context.get(GameEngine.class); EngineTime time = (EngineTime) context.get(Time.class); long startTime = time.getRealTimeInMs(); while (current != null && time.getRealTimeInMs() - startTime < 20 && !gameEngine.hasPendingState()) { if (current.step()) { popStep(); } } if (current == null) { nuiManager.closeScreen(loadingScreen); nuiManager.setHUDVisible(true); context.get(GameEngine.class).changeState(new StateIngame(gameManifest, context)); } else { float progressValue = (progress + current.getExpectedCost() * current.getProgress()) / maxProgress; loadingScreen.updateStatus(current.getMessage(), progressValue); nuiManager.update(delta); } }
@Override public void init(GameEngine engine) { // context from loading state gets used. nuiManager = context.get(NUIManager.class); worldRenderer = context.get(WorldRenderer.class); eventSystem = context.get(EventSystem.class); componentSystemManager = context.get(ComponentSystemManager.class); entityManager = context.get(EngineEntityManager.class); cameraTargetSystem = context.get(CameraTargetSystem.class); inputSystem = context.get(InputSystem.class); eventSystem.registerEventHandler(nuiManager); networkSystem = context.get(NetworkSystem.class); storageManager = context.get(StorageManager.class); storageServiceWorker = context.get(StorageServiceWorker.class); console = context.get(Console.class); // Show or hide the HUD according to the settings nuiManager.getHUD().bindVisible(new ReadOnlyBinding<Boolean>() { @Override public Boolean get() { return !context.get(Config.class).getRendering().getDebug().isHudHidden(); } }); if (networkSystem.getMode() == NetworkMode.CLIENT) { String motd = networkSystem.getServer().getInfo().getMOTD(); if (motd != null && motd.length() != 0) { nuiManager.pushScreen(MessagePopup.ASSET_URI, MessagePopup.class).setMessage("Server MOTD", motd); } } }
@Override public void initialise() { WidgetUtil.trySubscribe(this, "close", widget -> getManager().closeScreen(PauseMenu.this)); WidgetUtil.trySubscribe(this, "settings", widget -> getManager().pushScreen("settingsMenuScreen")); WidgetUtil.trySubscribe(this, "mainMenu", widget -> CoreRegistry.get(GameEngine.class).changeState(new StateMainMenu())); WidgetUtil.trySubscribe(this, "exit", widget -> CoreRegistry.get(GameEngine.class).shutdown()); WidgetUtil.trySubscribe(this, "crashReporter", widget -> CrashReporter.report(new Throwable("There is no error."), LoggingContext.getLoggingPath(), CrashReporter.MODE.ISSUE_REPORTER)); WidgetUtil.trySubscribe(this, "devTools", widget -> getManager().pushScreen("devToolsMenuScreen")); WidgetUtil.trySubscribe(this, "telemetry", button -> triggerForwardAnimation(TelemetryScreen.ASSET_URI)); }