use of de.gg.network.NetworkHandler in project ProjektGG by eskalon.
the class LobbyScreen method initUI.
@Override
protected void initUI() {
// backgroundTexture = assetManager.get(BACKGROUND_IMAGE_PATH);
Sound clickSound = assetManager.get(BUTTON_SOUND);
// mainTable.setBackground(skin.getDrawable("parchment-small"));
ImageTextButton leaveButton = new ImageTextButton("Verlassen", skin);
leaveButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
clickSound.play(1F);
game.getNetworkHandler().disconnect();
game.pushScreen("mainMenu");
return true;
}
});
NetworkHandler netHandler = game.getNetworkHandler();
readyUpLobbyButton = new ImageTextButton("Bereit", skin);
if (netHandler.isHost()) {
readyUpLobbyButton.setDisabled(true);
readyUpLobbyButton.setText("Spiel starten");
}
readyUpLobbyButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
clickSound.play(1F);
getLocalPlayer().toggleReady();
netHandler.onLocalPlayerChange(getLocalPlayer());
updateLobbyUI();
return true;
}
});
Table playerTable = new Table();
Table settingsTable = new Table();
Table buttonTable = new Table();
Table chatTable = new Table();
// settings table + player table
buttonTable.add(readyUpLobbyButton).bottom().padBottom(20).row();
buttonTable.add(leaveButton);
Table chatInputTable = new Table();
ImageTextButton sendButton = new ImageTextButton("Senden", skin);
TextField chatInputField = new TextField("", skin);
chatInputField.setTextFieldListener(new TextFieldListener() {
@Override
public void keyTyped(TextField textField, char key) {
if (!textField.getText().isEmpty() && (key == (char) 13)) {
// Enter
clickSound.play(1F);
netHandler.sendChatMessage(chatInputField.getText());
onNewChatMessage(new NewChatMessagEvent(localNetworkId, chatInputField.getText()));
chatInputField.setText("");
}
}
});
sendButton.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
if (!chatInputField.getText().isEmpty()) {
clickSound.play(1F);
netHandler.sendChatMessage(chatInputField.getText());
onNewChatMessage(new NewChatMessagEvent(localNetworkId, chatInputField.getText()));
chatInputField.setText("");
}
return true;
}
});
messagesArea = new TextArea("", skin);
messagesArea.setDisabled(true);
ScrollPane messagesPane = new ScrollPane(messagesArea);
chatInputTable.add(chatInputField).left().width(325).padRight(15);
chatInputTable.add(sendButton);
chatTable.debug();
chatTable.add(messagesPane).height(125).width(425).top().row();
chatTable.add(chatInputTable).left().padTop(10).width(425).bottom();
playerSlots = new Table[6];
playerSlots[0] = new Table();
playerSlots[1] = new Table();
playerSlots[2] = new Table();
playerSlots[3] = new Table();
playerSlots[4] = new Table();
playerSlots[5] = new Table();
playerTable.add(playerSlots[0]).height(25).width(425).row();
playerTable.add(playerSlots[1]).height(25).width(425).row();
playerTable.add(playerSlots[2]).height(25).width(425).row();
playerTable.add(playerSlots[3]).height(25).width(425).row();
playerTable.add(playerSlots[4]).height(25).width(425).row();
playerTable.add(playerSlots[5]).height(25).width(425).row();
mainTable.add(playerTable).width(425).height(155);
mainTable.add(settingsTable).width(155).row();
mainTable.add(chatTable).height(165).bottom();
mainTable.add(buttonTable).height(165);
mainTable.setDebug(true);
// updateLobbyUI();
}
use of de.gg.network.NetworkHandler in project ProjektGG by eskalon.
the class ProjektGG method create.
@Override
public final void create() {
if (debug)
Gdx.app.setLogLevel(Gdx.app.LOG_DEBUG);
else
Gdx.app.setLogLevel(Gdx.app.LOG_INFO);
// Initialize sprite batch
this.batch = new SpriteBatch();
// Initialize asset manager
FileHandleResolver resolver = new InternalFileHandleResolver();
this.assetManager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
this.assetManager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));
this.assetManager.setLoader(Text.class, new TextLoader(new InternalFileHandleResolver()));
this.viewportWidth = Gdx.graphics.getWidth();
this.viewportHeight = Gdx.graphics.getHeight();
// Initialize cameras
this.uiCamera = new OrthographicCamera(viewportWidth, viewportHeight);
this.uiCamera.translate(viewportWidth / 2, viewportHeight / 2, 0);
this.uiCamera.update();
this.gameCamera = new CameraWrapper(new PerspectiveCamera(67, viewportWidth, viewportHeight));
this.gameCamera.getCamera().translate(viewportWidth / 2, viewportHeight / 2, 0);
// this.camera.update();
this.batch.setProjectionMatrix(this.gameCamera.getCamera().combined);
// Load game settings
this.settings = new GameSettings("projekt-gg");
// Create the event bus
this.eventBus = new EventQueueBus();
// Create the network handler
this.networkHandler = new NetworkHandler(eventBus);
// Set input processor
Gdx.input.setInputProcessor(inputProcessor);
// Add screens
addScreen("splash", new SplashScreen());
addScreen("mainMenu", new MainMenuScreen());
addScreen("loading", new LoadingScreen());
addScreen("gameLoading", new GameLoadingScreen());
addScreen("serverBrowser", new ServerBrowserScreen());
addScreen("lobby", new LobbyScreen());
addScreen("lobbyCreation", new LobbyCreationScreen());
addScreen("map", new GameMapScreen());
addScreen("house", new GameInHouseScreen());
addScreen("roundEnd", new GameRoundendScreen());
// Push screen
if (showSplashscreen)
pushScreen("splash");
else
pushScreen("loading");
}
Aggregations