use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.
the class DialogLoading method populate.
public void populate() {
Table t = getContentTable();
Label label = new Label("Loading...", skin, !DialogSceneComposer.isShowing() ? "title" : "scene-title");
label.setAlignment(Align.center);
t.add(label);
t.row();
Table table = new Table(skin);
table.setBackground(!DialogSceneComposer.isShowing() ? loadingAnimation : loadingAnimation2);
t.add(table);
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project skin-composer by raeleus.
the class Core method create.
@Override
public void create() {
// read properties file
properties = new ObjectMap<>();
try {
PropertiesUtils.load(properties, Gdx.files.internal("values.properties").reader());
} catch (IOException e) {
Gdx.app.error(getClass().getName(), "Error reading installer properties file.", e);
}
// create user interface
skin = new Skin(Gdx.files.internal("ui/skin-composer-installer-ui.json"));
stage = new Stage(new ScreenViewport());
Gdx.input.setInputProcessor(stage);
root = new Table();
root.pad(10.0f);
root.setFillParent(true);
root.setTouchable(Touchable.enabled);
root.setName("root");
stage.addActor(root);
// Add drag listener to move window
stage.addListener(new DragListener() {
@Override
public void drag(InputEvent event, float x, float y, int pointer) {
if (event.getTarget() == root) {
desktopWorker.dragWindow(windowStartX + (int) x - dragStartX, windowStartY + dragStartY - (int) y);
windowStartX = desktopWorker.getWindowX();
windowStartY = desktopWorker.getWindowY();
}
}
@Override
public void dragStart(InputEvent event, float x, float y, int pointer) {
dragStartX = (int) x;
dragStartY = (int) y;
windowStartX = desktopWorker.getWindowX();
windowStartY = desktopWorker.getWindowY();
}
});
root.defaults().space(6);
var label = new Label(properties.get("product-name"), skin, "small");
label.setTouchable(Touchable.disabled);
root.add(label).expandX().left();
root.row();
var button = new TextButton("Uninstall", skin);
root.add(button).grow();
button.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
performUninstall();
}
});
root.row();
button = new TextButton("Quit", skin);
root.add(button).height(30).growX();
button.addListener(new ChangeListener() {
@Override
public void changed(ChangeListener.ChangeEvent event, Actor actor) {
Gdx.app.exit();
}
});
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project ProjektGG by eskalon.
the class GameMapScreen method create.
@Override
protected void create() {
super.create();
camera = new CameraWrapper(67, application.getWidth(), application.getHeight());
camera.setPosition(application.getWidth() / 2, application.getHeight() / 2, 0);
postProcessor = new PostProcessingPipeline(application.getWidth(), application.getHeight(), true);
pausePostProcessingEffect = new ColorBlendEffect(application.getUICamera(), new Color(0.4F, 0.4F, 0.4F, 0.4F));
gameRenderer = new GameRenderer(camera.getCamera(), fragmentShader.getString());
selectionInputController = new MapSelectionInputController(application.getEventBus(), camera.getCamera());
addInputProcessor(selectionInputController);
movementInputController = new MapMovementInputController(camera, application.getSettings());
addInputProcessor(movementInputController);
gameSpeedInputProcessor = new GameSpeedInputProcessor(application.getSettings());
addInputProcessor(gameSpeedInputProcessor);
// CHARACTER DIALOG
BasicDialog characterMenuDialog = new BasicDialog(Lang.get("screen.map.character_config"), skin, "big");
ImageTextButton closeCharacterMenuButton = new ImageTextButton(Lang.get("ui.generic.close"), skin);
closeCharacterMenuButton.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
characterMenuDialog.hide();
}
});
Table characterMenuTable = new Table();
Table changeableCharacterMenuTable = new Table();
ImageTextButton characterMenuTab1Button = new ImageTextButton(Lang.get("screen.map.character_config.character"), skin);
ImageTextButton characterMenuTab2Button = new ImageTextButton(Lang.get("screen.map.character_config.privileges"), skin);
characterMenuTab1Button.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
// CHARACTER & FAMILY
changeableCharacterMenuTable.clear();
changeableCharacterMenuTable.add(new Label(Lang.get("screen.map.character_config.name"), skin, "dark")).padBottom(50).row();
changeableCharacterMenuTable.add(new Label(Lang.get("screen.map.character_config.family"), skin, "dark")).row();
changeableCharacterMenuTable.add(new Label(Lang.get("screen.map.character_config.find_so"), skin, "dark"));
}
});
characterMenuTab2Button.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
// PRIVILEGES
changeableCharacterMenuTable.clear();
changeableCharacterMenuTable.add(new Label(Lang.get("screen.map.character_config.privileges_list"), skin, "dark")).row();
if (application.getClient().getLocalPlayerCharacter().getPosition() != null) {
// TODO Position privileges
// TODO Impeachment
ImageTextButton kickButton = new ImageTextButton(Lang.get("screen.map.character_config.privilege.impeach"), skin);
kickButton.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
short mayor = application.getClient().getSession().getWorld().getPosition(PositionType.MAYOR).getCurrentHolder();
if (mayor != -1)
application.getClient().getActionHandler().arrangeImpeachmentVote(mayor, (param) -> {
if ((Boolean) param == true) {
SimpleTextDialog.createAndShow(stage, skin, Lang.get("screen.map.character_config.privilege.success"), Lang.get("ui.generic.wip"));
} else {
SimpleTextDialog.createAndShow(stage, skin, Lang.get("ui.generic.error"), Lang.get("ui.generic.rmi_error"));
}
});
}
});
changeableCharacterMenuTable.add(kickButton);
}
}
});
Table characterMenuTabTable = new Table();
characterMenuTabTable.add(characterMenuTab1Button).padRight(5);
characterMenuTabTable.add(characterMenuTab2Button);
characterMenuTable.add(characterMenuTabTable).padRight(30).padBottom(15).center().top().row();
characterMenuTable.add(changeableCharacterMenuTable).padBottom(15).top().height(315).row();
characterMenuTable.add(closeCharacterMenuButton).padRight(30).center().top();
characterMenuDialog.add(characterMenuTable).pad(30);
// PLAYER ICON
iconButton = new ImageButton(skin.getDrawable(PlayerIcon.values()[0].getShieldDrawableName()));
iconButton.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
characterMenuDialog.show(stage);
characterMenuDialog.setPosition(0, 103);
}
});
Table iconTable = new Table();
iconTable.setBackground(skin.getDrawable("icon_background"));
iconTable.add(iconButton).padLeft(8).padRight(10).padBottom(1);
// INFO STUFF
Table infoTable = new Table();
// Gold
Table goldTable = new Table();
goldTable.setBackground(skin.getDrawable("info_background"));
goldTable.add(new Image(skin.getDrawable("icon_gold_coin"))).left().top().padLeft(4).padBottom(2).padRight(4);
goldTable.add(new Label("19 Gulden", skin, "dark")).padBottom(5).expandX().left().top();
// Name
Table nameTable = new Table();
nameTable.setBackground(skin.getDrawable("info_background"));
nameTable.add(new Label("Freiherr Franz von Woyzeck", skin, "big_dark")).padBottom(2).expandX().left();
// Notifications
Table notificationTable = new Table();
infoTable.add(goldTable).row();
infoTable.add(nameTable).left().row();
infoTable.add(notificationTable).left().padLeft(2).padTop(2).row();
// DATE STUFF
Table dateTimeTable = new Table();
// Date
Table dateTable = new Table();
dateLabel = new Label("", skin, "dark");
dateTable.setBackground(skin.getDrawable("date_background"));
dateTable.add(dateLabel).padLeft(9).padBottom(5).expandX().left();
// Clock
Table clockTable = new Table();
clockTable.setBackground(skin.getDrawable("clock_background"));
dateTimeTable.add(dateTable).row();
dateTimeTable.add(clockTable).right();
// MISC
Table miscTable = new Table();
Table misc2Table = new Table();
// Inventory
ImageButton inventoryButton = new ImageButton(skin, "inventory");
// Book
ImageButton bookButton = new ImageButton(skin, "leaning_book");
// Minimap
Table minimapTable = new Table();
minimapTable.setBackground(skin.getDrawable("minimap_test"));
misc2Table.add(inventoryButton).padRight(2);
misc2Table.add(bookButton).padTop(2).row();
miscTable.add(misc2Table).right().row();
miscTable.add(minimapTable);
mainTable.setSkin(skin);
mainTable.setFillParent(true);
mainTable.add(iconTable).top().left();
mainTable.add(infoTable).top().left();
mainTable.add(dateTimeTable).right().expandX().row();
mainTable.add("").fill();
mainTable.add("").expand().fill();
mainTable.add(miscTable).expandY().bottom().right();
// PAUSE DIALOG
pauseDialog = new BasicDialog("", skin) {
@Override
protected void result(Object object) {
pauseShown = false;
postProcessor.removeEffect(pausePostProcessingEffect);
if (object == (Integer) 1) {
application.getScreenManager().pushScreen("settings", "blendingTransition");
} else {
Log.info("Client", "Verbindung wird getrennt");
final GameClient client = application.getClient();
final GameServer server = application.getServer();
// Set stuff to null to stop updates
application.setClient(null);
application.setServer(null);
ThreadHandler.getInstance().executeRunnable(() -> {
client.disconnect();
if (server != null) {
server.stop();
}
});
DiscordGGHandler.getInstance().setMenuPresence();
application.getScreenManager().pushScreen("main_menu", null);
}
}
};
pauseDialog.button(Lang.get("screen.map.pause.settings"), 1).button(Lang.get("screen.map.pause.disconnect"), 2);
houseSelectionDialog = new BasicDialog("", skin);
houseSelectionDialog.button("Test");
stage.addListener(new InputListener() {
@Override
public boolean keyDown(InputEvent event, int keycode) {
if (keycode == Keys.ESCAPE) {
if (pauseShown) {
pauseDialog.hide();
postProcessor.removeEffect(pausePostProcessingEffect);
} else {
pauseDialog.show(stage);
postProcessor.addEffect(pausePostProcessingEffect);
}
pauseShown = !pauseShown;
return true;
}
return false;
}
});
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project ProjektGG by eskalon.
the class LobbyScreen method create.
@Override
protected void create() {
super.create();
setImage(backgroundTexture);
PlayerLobbyConfigDialog playerConfigDialog = new PlayerLobbyConfigDialog(application, skin);
ImageTextButton playerSettingsButton = new ImageTextButton(Lang.get("screen.lobby.configure"), skin);
playerSettingsButton.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
playerConfigDialog.initUIValues(application.getClient().getLobbyPlayers(), application.getClient().getLocalLobbyPlayer());
playerConfigDialog.show(stage);
}
});
ImageTextButton leaveButton = new ImageTextButton(Lang.get("screen.lobby.disconnect"), skin);
leaveButton.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
Log.info("Client", "Disconnecting from Lobby");
final GameClient client = application.getClient();
final GameServer server = application.getServer();
application.setClient(null);
application.setServer(null);
ThreadHandler.getInstance().executeRunnable(() -> {
client.disconnect();
Log.info("Client", "Client disconnected");
if (server != null) {
server.stop();
}
Log.info("Server", "Server stopped");
});
application.getScreenManager().pushScreen("server_browser", null);
}
});
readyUpLobbyButton = new ImageTextButton(Lang.get("screen.lobby.ready"), skin);
readyUpLobbyButton.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
// TODO warum nicht readyUp(); ?
application.getClient().getLocalLobbyPlayer().toggleReady();
application.getClient().getActionHandler().changeLocalPlayer(application.getClient().getLocalLobbyPlayer());
updateLobbyUI();
}
});
settingsArea = new Label("", skin);
settingsArea.setAlignment(Align.topLeft);
settingsArea.setWrap(true);
Table playerTable = new Table();
Table buttonTable = new Table();
Table chatTable = new Table();
buttonTable.add(playerSettingsButton).bottom().padBottom(18).row();
buttonTable.add(readyUpLobbyButton).padBottom(18).row();
buttonTable.add(leaveButton).padBottom(50);
Table chatInputTable = new Table();
ImageTextButton sendButton = new ImageTextButton(Lang.get("screen.lobby.send"), skin);
chatInputField = new OffsettableTextField("", skin, "large", 8);
chatInputField.setTextFieldListener(new TextFieldListener() {
@Override
public void keyTyped(TextField textField, char key) {
if (!textField.getText().isEmpty() && key == '\n') {
// Enter
application.getSoundManager().playSoundEffect("button_click");
application.getClient().getActionHandler().sendChatmessage(chatInputField.getText());
application.getClient().getChatMessages().add(new ChatMessage(application.getClient().getLocalLobbyPlayer(), chatInputField.getText()));
setUIValues();
chatInputField.setText("");
}
}
});
sendButton.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
application.getClient().getActionHandler().sendChatmessage(chatInputField.getText());
application.getClient().getChatMessages().add(new ChatMessage(application.getClient().getLocalLobbyPlayer(), chatInputField.getText()));
setUIValues();
chatInputField.setText("");
}
@Override
protected boolean arePreconditionsMet() {
return !chatInputField.getText().isEmpty();
}
});
messagesArea = new Label("", skin, "text");
messagesArea.setWidth(425);
messagesArea.setWrap(true);
Table messagesTable = new Table();
messagesTable.add(messagesArea).padLeft(10).left().top().expand();
messagesPane = new ScrollPane(messagesTable, skin, "with-background");
messagesPane.setForceScroll(false, true);
chatInputTable.add(chatInputField).left().width(325).padRight(15);
chatInputTable.add(sendButton);
chatTable.add(messagesPane).height(135).width(465).top().row();
chatTable.add(chatInputTable).left().padTop(10).width(465).bottom();
playerSlots = new Table[maxPlayerCount];
for (int i = 0; i < playerSlots.length; i++) {
playerSlots[i] = new Table();
playerTable.add(playerSlots[i]).height(29).width(465).row();
}
Table mTable = new Table();
mTable.setWidth(615);
mTable.setHeight(475);
mTable.setBackground(skin.getDrawable("parchment1"));
mTable.add(playerTable).width(465).height(185).padBottom(15);
mTable.add(settingsArea).width(155).height(185).row();
mTable.add(chatTable).height(185).bottom();
mTable.add(buttonTable).height(185);
mainTable.add(mTable);
}
use of com.badlogic.gdx.scenes.scene2d.ui.Table in project ProjektGG by eskalon.
the class SettingsScreen method create.
@Override
protected void create() {
super.create();
BackInputProcessor backInput = new BackInputProcessor() {
@Override
public void onBackAction() {
if (application.getScreenManager().getLastScreen() instanceof GameMapScreen)
application.getScreenManager().pushScreen("map", "blendingTransition");
else
application.getScreenManager().pushScreen("main_menu", "blendingTransition");
}
};
addInputProcessor(backInput);
mainTable.addListener(new BackInputActorListener() {
@Override
public void onBackAction() {
backInput.onBackAction();
}
});
EskalonSettings settings = application.getSettings();
// VOLUME
Label masterVolume = new Label(Lang.get("screen.settings.master_volume"), skin);
LeftClickSlider masterSlider = new LeftClickSlider(0, 1, 0.05F, false, skin);
masterSlider.setValue(settings.getMasterVolume());
masterSlider.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
settings.setMasterVolume(masterSlider.getValue());
application.getSoundManager().setMasterVolume(masterSlider.getValue());
}
});
Label effectVolume = new Label(Lang.get("screen.settings.effect_volume"), skin);
LeftClickSlider effectSlider = new LeftClickSlider(0, 1, 0.05F, false, skin);
effectSlider.setValue(settings.getEffectVolume());
effectSlider.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
settings.setEffectVolume(effectSlider.getValue());
application.getSoundManager().setEffectVolume(effectSlider.getValue());
}
});
Label musicVolume = new Label(Lang.get("screen.settings.music_volume"), skin);
LeftClickSlider musicSlider = new LeftClickSlider(0, 1, 0.05F, false, skin);
musicSlider.setValue(settings.getMusicVolume());
musicSlider.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
settings.setMusicVolume(musicSlider.getValue());
application.getSoundManager().setMusicVolume(musicSlider.getValue());
}
});
// KEYS
Label forwardLabel = new Label(Lang.get("screen.settings.forward_key"), skin);
KeySelectionInputField forwardButton = new KeySelectionInputField(settings, "cameraForward", skin, stage, application.getSoundManager());
Label leftLabel = new Label(Lang.get("screen.settings.left_key"), skin);
KeySelectionInputField leftButton = new KeySelectionInputField(settings, "cameraLeft", skin, stage, application.getSoundManager());
Label backwardLabel = new Label(Lang.get("screen.settings.backwards_key"), skin);
KeySelectionInputField backwardButton = new KeySelectionInputField(settings, "cameraBackward", skin, stage, application.getSoundManager());
Label rightLabel = new Label(Lang.get("screen.settings.right_key"), skin);
KeySelectionInputField rightButton = new KeySelectionInputField(settings, "cameraRight", skin, stage, application.getSoundManager());
Label speedUpLabel = new Label(Lang.get("screen.settings.speed_up_key"), skin);
KeySelectionInputField speedUpButton = new KeySelectionInputField(settings, "speedUpTime", skin, stage, application.getSoundManager());
Label speedDownLabel = new Label(Lang.get("screen.settings.speed_down_key"), skin);
KeySelectionInputField speedDownButton = new KeySelectionInputField(settings, "speedDownTime", skin, stage, application.getSoundManager());
ImageTextButton backButton = new ImageTextButton(Lang.get("ui.generic.done"), skin);
backButton.addListener(new ButtonClickListener(application.getSoundManager()) {
@Override
protected void onClick() {
if (application.getScreenManager().getLastScreen() instanceof GameMapScreen)
application.getScreenManager().pushScreen("map", "blendingTransition");
else
application.getScreenManager().pushScreen("main_menu", "blendingTransition");
}
});
Table settingsTable = new Table();
Table settings2ColTable = new Table();
settings2ColTable.padTop(20);
Table buttonTable = new Table();
settings2ColTable.add(forwardLabel).padBottom(22).left();
settings2ColTable.add(forwardButton).padBottom(22);
settings2ColTable.add(masterVolume).padBottom(28).padLeft(75).padRight(10);
settings2ColTable.add(masterSlider).padBottom(22).row();
settings2ColTable.add(leftLabel).padBottom(22).left();
settings2ColTable.add(leftButton).padBottom(22);
settings2ColTable.add(effectVolume).padBottom(28).padLeft(75).padRight(10);
settings2ColTable.add(effectSlider).padBottom(22).row();
settings2ColTable.add(backwardLabel).padBottom(22).left();
settings2ColTable.add(backwardButton).padBottom(22);
settings2ColTable.add(musicVolume).padBottom(28).padLeft(75).padRight(10);
settings2ColTable.add(musicSlider).padBottom(22).row();
settings2ColTable.add(rightLabel).padBottom(55).left();
settings2ColTable.add(rightButton).padBottom(55).row();
settings2ColTable.add(speedUpLabel).padBottom(22).padRight(13).left();
settings2ColTable.add(speedUpButton).padBottom(22).row();
settings2ColTable.add(speedDownLabel).padBottom(22).padRight(13).left();
settings2ColTable.add(speedDownButton).padBottom(22);
settingsTable.left().top().add(settings2ColTable).row();
buttonTable.add(backButton);
Table mTable = new Table();
mTable.setWidth(615);
mTable.setHeight(475);
mTable.setBackground(skin.getDrawable("parchment2"));
mTable.add(settingsTable).width(580).height(405).padRight(90).row();
mTable.add(buttonTable).height(50).bottom();
mainTable.add(mTable);
}
Aggregations