package com.gdxjam.screens; import java.io.IOException; import java.util.Random; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.input.GestureDetector; import com.gdxjam.EntityManager; import com.gdxjam.GameManager; import com.gdxjam.GameManager.GameConfig; import com.gdxjam.GameManager.GameConfig.BUILD; import com.gdxjam.components.Components; import com.gdxjam.input.DesktopGestureListener; import com.gdxjam.input.DesktopInputProcessor; import com.gdxjam.input.DeveloperInputProcessor; import com.gdxjam.input.EntityController; import com.gdxjam.net.Network; import com.gdxjam.systems.CameraSystem; import com.gdxjam.systems.ClientSystem; import com.gdxjam.systems.InputSystem; import com.gdxjam.systems.ServerSystem; import com.gdxjam.utils.WorldGenerator; public class GameScreen extends AbstractScreen { private EntityManager engine; private InputSystem input; public GameScreen() { } @Override public void show() { engine = GameManager.initEngine(); input = engine.getSystem(InputSystem.class); createWorld(1024, 1024); createConnection(); input.addProcessor(new GestureDetector(new DesktopGestureListener(engine))); input.addProcessor(new DesktopInputProcessor(engine)); if (GameConfig.build == BUILD.DEV) { input.addProcessor(new DeveloperInputProcessor()); } input.addProcessor(new EntityController(engine, GameManager.getPlayer())); engine.getSystem(CameraSystem.class).smoothFollow(Components.PHYSICS.get(GameManager.getPlayer()).getBody().getPosition()); Gdx.input.setInputProcessor(input.getInput()); } public void createWorld(int width, int height) { long seed = new Random().nextLong(); WorldGenerator generator = new WorldGenerator(width, height, seed); generator.generate(); } public void createConnection() { if (Network.isServer) { engine.getSystem(ServerSystem.class).init(); } else { engine.removeSystem(engine.getSystem(ServerSystem.class)); } engine.getSystem(ClientSystem.class).init(); engine.getSystem(CameraSystem.class).setWorldBounds(1024, 1024); } @Override public void render(float delta) { super.render(delta); engine.update(delta); } @Override public void dispose() { } @Override public void pause() { } @Override public void resume() { } @Override public void resize(int width, int height) { } @Override public void hide() { } }