use of org.terasology.engine.rendering.nui.NUIManager in project Terasology by MovingBlocks.
the class StartServer method step.
@Override
public boolean step() {
try {
Config config = context.get(Config.class);
int port = config.getNetwork().getServerPort();
context.get(NetworkSystem.class).host(port, dedicated);
} catch (HostingFailedException e) {
NUIManager nui = context.get(NUIManager.class);
if (nui != null) {
nui.pushScreen(MessagePopup.ASSET_URI, MessagePopup.class).setMessage("Failed to Host", e.getMessage() + " - Reverting to single player");
} else {
logger.error("Failed to Host. NUI was also unavailable for warning popup (headless?)", e);
throw new RuntimeException("Cannot host game successfully from likely headless start, terminating");
}
}
return true;
}
use of org.terasology.engine.rendering.nui.NUIManager in project Terasology by MovingBlocks.
the class InitialiseGraphics method step.
@Override
public boolean step() {
// Refresh widget library after modules got laoded:
NUIManager nuiManager = context.get(NUIManager.class);
((NUIManagerInternal) nuiManager).refreshWidgetsLibrary();
return true;
}
use of org.terasology.engine.rendering.nui.NUIManager in project Terasology by MovingBlocks.
the class AbstractState method initEntityAndComponentManagers.
protected void initEntityAndComponentManagers(boolean isHeadless) {
verifyNotNull(context);
CoreRegistry.setContext(context);
// let's get the entity event system running
EntitySystemSetupUtil.addEntityManagementRelatedClasses(context);
entityManager = context.get(EngineEntityManager.class);
eventSystem = context.get(EventSystem.class);
context.put(Console.class, new ConsoleImpl(context));
if (!isHeadless) {
NUIManager nuiManager = new NUIManagerInternal((TerasologyCanvasRenderer) context.get(CanvasRenderer.class), context);
context.put(NUIManager.class, nuiManager);
}
componentSystemManager = new ComponentSystemManager(context);
context.put(ComponentSystemManager.class, componentSystemManager);
componentSystemManager.register(new ConsoleSystem(), "engine:ConsoleSystem");
componentSystemManager.register(new CoreCommands(), "engine:CoreCommands");
}
use of org.terasology.engine.rendering.nui.NUIManager in project Terasology by MovingBlocks.
the class UIFormat method load.
public UIData load(JsonElement element, Locale otherLocale) throws IOException {
NUIManager nuiManager = CoreRegistry.get(NUIManager.class);
TranslationSystem translationSystem = CoreRegistry.get(TranslationSystem.class);
TypeHandlerLibrary library = CoreRegistry.get(TypeHandlerLibrary.class).copy();
library.addTypeHandler(UISkinAsset.class, new AssetTypeHandler<>(UISkinAsset.class));
library.addTypeHandler(UISkin.class, new UISkinTypeHandler());
// TODO: Rewrite to use TypeHandlerLibrary
GsonBuilder gsonBuilder = new GsonBuilder().registerTypeAdapterFactory(new GsonTypeSerializationLibraryAdapterFactory(library)).registerTypeAdapterFactory(new CaseInsensitiveEnumTypeAdapterFactory()).registerTypeAdapter(UIData.class, new UIDataTypeAdapter()).registerTypeHierarchyAdapter(UIWidget.class, new UIWidgetTypeAdapter(nuiManager));
// override the String TypeAdapter from the serialization library
gsonBuilder.registerTypeAdapter(String.class, new I18nStringTypeAdapter(translationSystem, otherLocale));
Gson gson = gsonBuilder.create();
return gson.fromJson(element, UIData.class);
}
use of org.terasology.engine.rendering.nui.NUIManager 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