use of org.terasology.engine.core.modes.loadProcesses.RegisterInputSystem in project Terasology by MovingBlocks.
the class StateLoading method initClient.
private void initClient() {
loadProcesses.add(new JoinServer(context, gameManifest, joinStatus));
if (!headless) {
loadProcesses.add(new InitialiseRendering(context));
}
loadProcesses.add(new InitialiseEntitySystem(context));
loadProcesses.add(new RegisterBlocks(context, gameManifest));
if (!headless) {
loadProcesses.add(new InitialiseGraphics(context));
}
loadProcesses.add(new LoadPrefabs(context));
loadProcesses.add(new ProcessBlockPrefabs(context));
loadProcesses.add(new LoadExtraBlockData(context));
loadProcesses.add(new InitialiseComponentSystemManager(context));
if (!headless) {
loadProcesses.add(new RegisterInputSystem(context));
}
loadProcesses.add(new RegisterSystems(context, netMode));
loadProcesses.add(new InitialiseCommandSystem(context));
loadProcesses.add(new InitialiseRemoteWorld(context, gameManifest));
loadProcesses.add(new InitialisePhysics(context));
loadProcesses.add(new InitialiseSystems(context));
loadProcesses.add(new PreBeginSystems(context));
loadProcesses.add(new CreateRemoteWorldEntity(context));
loadProcesses.add(new PostBeginSystems(context));
loadProcesses.add(new SetupRemotePlayer(context));
loadProcesses.add(new AwaitCharacterSpawn(context));
loadProcesses.add(new RegisterBlockFamilies(context));
loadProcesses.add(new PrepareWorld(context));
}
use of org.terasology.engine.core.modes.loadProcesses.RegisterInputSystem in project Terasology by MovingBlocks.
the class StateLoading method initHost.
private void initHost() {
loadProcesses.add(new RegisterMods(context, gameManifest));
if (!headless) {
loadProcesses.add(new InitialiseRendering(context));
}
loadProcesses.add(new InitialiseEntitySystem(context));
loadProcesses.add(new RegisterBlocks(context, gameManifest));
if (!headless) {
loadProcesses.add(new InitialiseGraphics(context));
}
loadProcesses.add(new LoadPrefabs(context));
loadProcesses.add(new ProcessBlockPrefabs(context));
loadProcesses.add(new InitialiseComponentSystemManager(context));
if (!headless) {
loadProcesses.add(new RegisterInputSystem(context));
}
loadProcesses.add(new RegisterSystems(context, netMode));
loadProcesses.add(new InitialiseCommandSystem(context));
loadProcesses.add(new LoadExtraBlockData(context));
loadProcesses.add(new InitialiseWorld(gameManifest, context));
loadProcesses.add(new RegisterBlockFamilies(context));
loadProcesses.add(new EnsureSaveGameConsistency(context));
loadProcesses.add(new InitialisePhysics(context));
loadProcesses.add(new InitialiseSystems(context));
loadProcesses.add(new PreBeginSystems(context));
loadProcesses.add(new LoadEntities(context));
loadProcesses.add(new InitialiseBlockTypeEntities(context));
loadProcesses.add(new CreateWorldEntity(context, gameManifest));
loadProcesses.add(new InitialiseWorldGenerator(context));
loadProcesses.add(new InitialiseRecordAndReplay(context));
if (netMode.isServer()) {
boolean dedicated;
if (netMode == NetworkMode.DEDICATED_SERVER) {
dedicated = true;
} else if (netMode == NetworkMode.LISTEN_SERVER) {
dedicated = false;
} else {
throw new IllegalStateException("Invalid server mode: " + netMode);
}
loadProcesses.add(new StartServer(context, dedicated));
}
loadProcesses.add(new PostBeginSystems(context));
if (netMode.hasLocalClient()) {
loadProcesses.add(new SetupLocalPlayer(context));
loadProcesses.add(new AwaitCharacterSpawn(context));
}
loadProcesses.add(new PrepareWorld(context));
}
use of org.terasology.engine.core.modes.loadProcesses.RegisterInputSystem 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