mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-07-13 09:17:28 +07:00
Add search bar in playerlist (#1572)
* add "search" bar in playerlist
* remove log.info
* clear keyboard focus & text on toggle
* refactor sField -> field (fixes build??)
* refactor field -> sField (revert) should build now 👍
* remove drawEach boolean, simplify everything (please ignore previous commits)
* escape color codes
* use Strings.stripcolors & check for & without color codes
This commit is contained in:
@ -142,6 +142,8 @@ research = Research
|
|||||||
researched = [lightgray]{0} researched.
|
researched = [lightgray]{0} researched.
|
||||||
players = {0} players
|
players = {0} players
|
||||||
players.single = {0} player
|
players.single = {0} player
|
||||||
|
players.search = search
|
||||||
|
players.notfound = [gray]no players found
|
||||||
server.closing = [accent]Closing server...
|
server.closing = [accent]Closing server...
|
||||||
server.kicked.kick = You have been kicked from the server!
|
server.kicked.kick = You have been kicked from the server!
|
||||||
server.kicked.whitelist = You are not whitelisted here.
|
server.kicked.whitelist = You are not whitelisted here.
|
||||||
|
@ -21,6 +21,7 @@ public class PlayerListFragment extends Fragment{
|
|||||||
private boolean visible = false;
|
private boolean visible = false;
|
||||||
private Table content = new Table().marginRight(13f).marginLeft(13f);
|
private Table content = new Table().marginRight(13f).marginLeft(13f);
|
||||||
private Interval timer = new Interval();
|
private Interval timer = new Interval();
|
||||||
|
private TextField sField;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void build(Group parent){
|
public void build(Group parent){
|
||||||
@ -44,6 +45,12 @@ public class PlayerListFragment extends Fragment{
|
|||||||
cont.table(Tex.buttonTrans, pane -> {
|
cont.table(Tex.buttonTrans, pane -> {
|
||||||
pane.label(() -> Core.bundle.format(playerGroup.size() == 1 ? "players.single" : "players", playerGroup.size()));
|
pane.label(() -> Core.bundle.format(playerGroup.size() == 1 ? "players.single" : "players", playerGroup.size()));
|
||||||
pane.row();
|
pane.row();
|
||||||
|
sField = pane.addField(null, text -> {
|
||||||
|
rebuild();
|
||||||
|
}).grow().pad(8).get();
|
||||||
|
sField.setMaxLength(maxNameLength);
|
||||||
|
sField.setMessageText(Core.bundle.format("players.search"));
|
||||||
|
pane.row();
|
||||||
pane.pane(content).grow().get().setScrollingDisabled(true, false);
|
pane.pane(content).grow().get().setScrollingDisabled(true, false);
|
||||||
pane.row();
|
pane.row();
|
||||||
|
|
||||||
@ -71,6 +78,7 @@ public class PlayerListFragment extends Fragment{
|
|||||||
NetConnection connection = user.con;
|
NetConnection connection = user.con;
|
||||||
|
|
||||||
if(connection == null && net.server() && !user.isLocal) return;
|
if(connection == null && net.server() && !user.isLocal) return;
|
||||||
|
if(sField.getText().length() > 0 && !user.name.toLowerCase().contains(sField.getText().toLowerCase()) && !Strings.stripColors(user.name.toLowerCase()).contains(sField.getText().toLowerCase())) return;
|
||||||
|
|
||||||
Table button = new Table();
|
Table button = new Table();
|
||||||
button.left();
|
button.left();
|
||||||
@ -143,6 +151,10 @@ public class PlayerListFragment extends Fragment{
|
|||||||
content.row();
|
content.row();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if(sField.getText().length() > 0 && !playerGroup.all().contains(user -> user.name.toLowerCase().contains(sField.getText().toLowerCase()))) {
|
||||||
|
content.add(Core.bundle.format("players.notfound")).padBottom(6).width(350f).maxHeight(h + 14);
|
||||||
|
}
|
||||||
|
|
||||||
content.marginBottom(5);
|
content.marginBottom(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,6 +162,9 @@ public class PlayerListFragment extends Fragment{
|
|||||||
visible = !visible;
|
visible = !visible;
|
||||||
if(visible){
|
if(visible){
|
||||||
rebuild();
|
rebuild();
|
||||||
|
}else{
|
||||||
|
Core.scene.setKeyboardFocus(null);
|
||||||
|
sField.clearText();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user