Improved player list
This commit is contained in:
@@ -267,6 +267,7 @@ public class NetClient extends Module {
|
||||
Net.handle(KickPacket.class, packet -> {
|
||||
kicked = true;
|
||||
Net.disconnect();
|
||||
GameState.set(State.menu);
|
||||
Gdx.app.postRunnable(() -> Vars.ui.showError("$text.server.kicked." + KickReason.values()[packet.reason].name()));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ public class UI extends SceneModule{
|
||||
public void addChatMessage(String sender, String message){
|
||||
((ChatFragment)chatfrag).addMessage(message, sender);
|
||||
}
|
||||
|
||||
|
||||
public void showGameError(){
|
||||
gameerror.show();
|
||||
}
|
||||
|
||||
@@ -128,8 +128,6 @@ public class ChatFragment extends Table implements Fragment{
|
||||
|
||||
if(message.replaceAll(" ", "").isEmpty()) return;
|
||||
|
||||
|
||||
|
||||
Vars.netClient.handleSendMessage(message);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,44 +13,54 @@ import io.anuke.ucore.util.Bundles;
|
||||
|
||||
public class PlayerListFragment implements Fragment{
|
||||
Table content = new Table();
|
||||
int last = 0;
|
||||
|
||||
@Override
|
||||
public void build(){
|
||||
new table(){{
|
||||
new table("pane"){{
|
||||
new label(() -> Bundles.format("text.players", Vars.control.playerGroup.amount()));
|
||||
margin(14f);
|
||||
new label(() -> Bundles.format(Vars.control.playerGroup.amount() == 1 ? "text.players.single" :
|
||||
"text.players", Vars.control.playerGroup.amount()));
|
||||
row();
|
||||
add(content).grow();
|
||||
}}.end();
|
||||
|
||||
visible(() -> Inputs.keyDown("player_list"));
|
||||
update(t -> {
|
||||
if(Vars.control.playerGroup.amount() != last){
|
||||
rebuild();
|
||||
last = Vars.control.playerGroup.amount();
|
||||
}
|
||||
});
|
||||
|
||||
visible(() -> Inputs.keyDown("player_list") && Net.active()); //TODO move elsewhere?
|
||||
}}.end();
|
||||
|
||||
rebuild();
|
||||
}
|
||||
|
||||
public void rebuild(){
|
||||
if(!Net.active()) return;
|
||||
content.clear();
|
||||
|
||||
float h = 80f;
|
||||
float h = 60f;
|
||||
|
||||
for(Player player : Vars.control.playerGroup.all()){
|
||||
Table button = new Table("button");
|
||||
button.left();
|
||||
button.margin(0);
|
||||
button.margin(5).marginBottom(10);
|
||||
BorderImage image = new BorderImage(Draw.region(player.isAndroid ? "ship-standard" : "mech-standard"), 3f);
|
||||
button.add(image).size(h);
|
||||
button.add(player.name).pad(10);
|
||||
button.add().grow();
|
||||
|
||||
if(Net.server() && !player.isLocal){
|
||||
button.add().growY();
|
||||
button.addIButton("icon-cancel", 14*3, () ->
|
||||
Net.kickConnection(player.clientid)
|
||||
).size(h);
|
||||
).pad(-5).padBottom(-10).size(h+10, h+14);
|
||||
}
|
||||
|
||||
content.add(button).padBottom(-5).width(250f);
|
||||
content.add(button).padBottom(-5).width(350f);
|
||||
content.row();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user