Search in sources :

Example 1 with NUIManagerInternal

use of org.terasology.rendering.nui.internal.NUIManagerInternal in project Terasology by MovingBlocks.

the class StateHeadlessSetup method init.

@Override
public void init(GameEngine gameEngine) {
    context = gameEngine.createChildContext();
    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));
    NUIManager nuiManager = new NUIManagerInternal(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");
    componentSystemManager.register(context.get(InputSystem.class), "engine:InputSystem");
    EntityRef localPlayerEntity = entityManager.create(new ClientComponent());
    LocalPlayer localPlayer = new LocalPlayer();
    context.put(LocalPlayer.class, localPlayer);
    localPlayer.setClientEntity(localPlayerEntity);
    componentSystemManager.initialise();
    GameManifest gameManifest = null;
    List<GameInfo> savedGames = GameProvider.getSavedGames();
    if (savedGames.size() > 0) {
        gameManifest = savedGames.get(0).getManifest();
    } else {
        gameManifest = createGameManifest();
    }
    gameEngine.changeState(new StateLoading(gameManifest, NetworkMode.LISTEN_SERVER));
}
Also used : EngineEntityManager(org.terasology.entitySystem.entity.internal.EngineEntityManager) GameInfo(org.terasology.rendering.nui.layers.mainMenu.savedGames.GameInfo) StateLoading(org.terasology.engine.modes.StateLoading) ConsoleImpl(org.terasology.logic.console.ConsoleImpl) CanvasRenderer(org.terasology.rendering.nui.internal.CanvasRenderer) LocalPlayer(org.terasology.logic.players.LocalPlayer) InputSystem(org.terasology.input.InputSystem) CoreCommands(org.terasology.logic.console.commands.CoreCommands) ClientComponent(org.terasology.network.ClientComponent) NUIManagerInternal(org.terasology.rendering.nui.internal.NUIManagerInternal) ComponentSystemManager(org.terasology.engine.ComponentSystemManager) ConsoleSystem(org.terasology.logic.console.ConsoleSystem) GameManifest(org.terasology.game.GameManifest) EventSystem(org.terasology.entitySystem.event.internal.EventSystem) NUIManager(org.terasology.rendering.nui.NUIManager) EntityRef(org.terasology.entitySystem.entity.EntityRef)

Example 2 with NUIManagerInternal

use of org.terasology.rendering.nui.internal.NUIManagerInternal in project Terasology by MovingBlocks.

the class StateLoading method init.

@Override
public void init(GameEngine engine) {
    this.context = engine.createChildContext();
    CoreRegistry.setContext(context);
    this.nuiManager = new NUIManagerInternal(context.get(CanvasRenderer.class), context);
    context.put(NUIManager.class, nuiManager);
    EngineTime time = (EngineTime) context.get(Time.class);
    time.setPaused(true);
    time.setGameTime(gameManifest.getTime());
    context.get(Game.class).load(gameManifest);
    switch(netMode) {
        case CLIENT:
            initClient();
            break;
        default:
            initHost();
            break;
    }
    progress = 0;
    maxProgress = 0;
    for (LoadProcess process : loadProcesses) {
        maxProgress += process.getExpectedCost();
    }
    popStep();
    loadingScreen = nuiManager.pushScreen("engine:loadingScreen", LoadingScreen.class);
    loadingScreen.updateStatus(current.getMessage(), current.getProgress());
}
Also used : Game(org.terasology.game.Game) EngineTime(org.terasology.engine.EngineTime) Time(org.terasology.engine.Time) EngineTime(org.terasology.engine.EngineTime) LoadingScreen(org.terasology.rendering.nui.layers.mainMenu.loadingScreen.LoadingScreen) NUIManagerInternal(org.terasology.rendering.nui.internal.NUIManagerInternal)

Example 3 with NUIManagerInternal

use of org.terasology.rendering.nui.internal.NUIManagerInternal in project Terasology by MovingBlocks.

the class StateMainMenu method init.

@Override
public void init(GameEngine gameEngine) {
    context = gameEngine.createChildContext();
    CoreRegistry.setContext(context);
    // let's get the entity event system running
    EntitySystemSetupUtil.addEntityManagementRelatedClasses(context);
    entityManager = context.get(EngineEntityManager.class);
    eventSystem = context.get(EventSystem.class);
    console = new ConsoleImpl(context);
    context.put(Console.class, console);
    nuiManager = new NUIManagerInternal(context.get(CanvasRenderer.class), context);
    context.put(NUIManager.class, nuiManager);
    eventSystem.registerEventHandler(nuiManager);
    componentSystemManager = new ComponentSystemManager(context);
    context.put(ComponentSystemManager.class, componentSystemManager);
    // TODO: Reduce coupling between Input system and CameraTargetSystem,
    // TODO: potentially eliminating the following lines. See Issue #1126
    CameraTargetSystem cameraTargetSystem = new CameraTargetSystem();
    context.put(CameraTargetSystem.class, cameraTargetSystem);
    componentSystemManager.register(cameraTargetSystem, "engine:CameraTargetSystem");
    componentSystemManager.register(new ConsoleSystem(), "engine:ConsoleSystem");
    componentSystemManager.register(new CoreCommands(), "engine:CoreCommands");
    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);
    // TODO: REMOVE this and handle refreshing of core game state at the engine level - see Issue #1127
    new RegisterInputSystem(context).step();
    EntityRef localPlayerEntity = entityManager.create(new ClientComponent());
    LocalPlayer localPlayer = new LocalPlayer();
    context.put(LocalPlayer.class, localPlayer);
    localPlayer.setClientEntity(localPlayerEntity);
    componentSystemManager.initialise();
    storageServiceWorker = context.get(StorageServiceWorker.class);
    playBackgroundMusic();
    // guiManager.openWindow("main");
    context.get(NUIManager.class).pushScreen("engine:mainMenuScreen");
    if (!messageOnLoad.isEmpty()) {
        nuiManager.pushScreen(MessagePopup.ASSET_URI, MessagePopup.class).setMessage("Error", messageOnLoad);
    }
// TODO: enable it when exposing the telemetry to users
// pushLaunchPopup();
}
Also used : EngineEntityManager(org.terasology.entitySystem.entity.internal.EngineEntityManager) NUIEditorSystem(org.terasology.rendering.nui.editor.systems.NUIEditorSystem) ConsoleImpl(org.terasology.logic.console.ConsoleImpl) LocalPlayer(org.terasology.logic.players.LocalPlayer) MessagePopup(org.terasology.rendering.nui.layers.mainMenu.MessagePopup) NUISkinEditorSystem(org.terasology.rendering.nui.editor.systems.NUISkinEditorSystem) RegisterInputSystem(org.terasology.engine.modes.loadProcesses.RegisterInputSystem) RegisterInputSystem(org.terasology.engine.modes.loadProcesses.RegisterInputSystem) InputSystem(org.terasology.input.InputSystem) CoreCommands(org.terasology.logic.console.commands.CoreCommands) ClientComponent(org.terasology.network.ClientComponent) NUIManagerInternal(org.terasology.rendering.nui.internal.NUIManagerInternal) ComponentSystemManager(org.terasology.engine.ComponentSystemManager) ConsoleSystem(org.terasology.logic.console.ConsoleSystem) EventSystem(org.terasology.entitySystem.event.internal.EventSystem) NUIManager(org.terasology.rendering.nui.NUIManager) EntityRef(org.terasology.entitySystem.entity.EntityRef) StorageServiceWorker(org.terasology.identity.storageServiceClient.StorageServiceWorker) CameraTargetSystem(org.terasology.input.cameraTarget.CameraTargetSystem)

Example 4 with NUIManagerInternal

use of org.terasology.rendering.nui.internal.NUIManagerInternal 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();
    // TODO: This should be elsewhere
    // Create gelatinousCubeMesh
    Tessellator tessellator = new Tessellator();
    TessellatorHelper.addBlockMesh(tessellator, new Vector4f(1.0f, 1.0f, 1.0f, 1.0f), 0.8f, 0.8f, 0.6f, 0f, 0f, 0f);
    TessellatorHelper.addBlockMesh(tessellator, new Vector4f(1.0f, 1.0f, 1.0f, 0.6f), 1.0f, 1.0f, 0.8f, 0f, 0f, 0f);
    tessellator.generateMesh(new ResourceUrn(TerasologyConstants.ENGINE_MODULE, new Name("gelatinousCube")));
    return true;
}
Also used : Tessellator(org.terasology.rendering.primitives.Tessellator) Vector4f(org.terasology.math.geom.Vector4f) NUIManager(org.terasology.rendering.nui.NUIManager) ResourceUrn(org.terasology.assets.ResourceUrn) NUIManagerInternal(org.terasology.rendering.nui.internal.NUIManagerInternal) Name(org.terasology.naming.Name)

Example 5 with NUIManagerInternal

use of org.terasology.rendering.nui.internal.NUIManagerInternal in project Terasology by MovingBlocks.

the class ContextMenuUtilsTest method setupInput.

@BeforeClass
public static void setupInput() {
    context.put(InputSystem.class, new InputSystem());
    context.put(TranslationSystem.class, new TranslationSystemImpl(context));
    context.put(CanvasRenderer.class, new HeadlessCanvasRenderer());
    context.put(NUIManager.class, new NUIManagerInternal(context.get(CanvasRenderer.class), context));
    File file = new File(ContextMenuUtilsTest.class.getClassLoader().getResource("contextMenuBuilderInput.ui").getFile());
    String content = null;
    try {
        content = Files.toString(file, Charsets.UTF_8);
    } catch (IOException e) {
        fail("Could not load input file");
    }
    inputTree = JsonTreeConverter.serialize(new JsonParser().parse(content));
}
Also used : TranslationSystemImpl(org.terasology.i18n.TranslationSystemImpl) InputSystem(org.terasology.input.InputSystem) IOException(java.io.IOException) File(java.io.File) HeadlessCanvasRenderer(org.terasology.engine.subsystem.headless.renderer.HeadlessCanvasRenderer) NUIManagerInternal(org.terasology.rendering.nui.internal.NUIManagerInternal) JsonParser(com.google.gson.JsonParser) BeforeClass(org.junit.BeforeClass)

Aggregations

NUIManagerInternal (org.terasology.rendering.nui.internal.NUIManagerInternal)5 InputSystem (org.terasology.input.InputSystem)3 NUIManager (org.terasology.rendering.nui.NUIManager)3 ComponentSystemManager (org.terasology.engine.ComponentSystemManager)2 EntityRef (org.terasology.entitySystem.entity.EntityRef)2 EngineEntityManager (org.terasology.entitySystem.entity.internal.EngineEntityManager)2 EventSystem (org.terasology.entitySystem.event.internal.EventSystem)2 ConsoleImpl (org.terasology.logic.console.ConsoleImpl)2 ConsoleSystem (org.terasology.logic.console.ConsoleSystem)2 CoreCommands (org.terasology.logic.console.commands.CoreCommands)2 LocalPlayer (org.terasology.logic.players.LocalPlayer)2 ClientComponent (org.terasology.network.ClientComponent)2 JsonParser (com.google.gson.JsonParser)1 File (java.io.File)1 IOException (java.io.IOException)1 BeforeClass (org.junit.BeforeClass)1 ResourceUrn (org.terasology.assets.ResourceUrn)1 EngineTime (org.terasology.engine.EngineTime)1 Time (org.terasology.engine.Time)1 StateLoading (org.terasology.engine.modes.StateLoading)1