diff --git a/core/src/mindustry/editor/BannedContentDialog.java b/core/src/mindustry/editor/BannedContentDialog.java index 2a15742195d..f78b4a2e98e 100644 --- a/core/src/mindustry/editor/BannedContentDialog.java +++ b/core/src/mindustry/editor/BannedContentDialog.java @@ -56,7 +56,7 @@ public void build(){ t.table(s -> { s.label(() -> "@search").padRight(10); var field = s.field(contentSearch, value -> { - contentSearch = value; + contentSearch = value.trim().replaceAll(" +", " ").toLowerCase(); rebuildTables(); }).get(); s.button(Icon.cancel, Styles.emptyi, () -> { diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index ad35a4a45f6..93b679be7c3 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -757,7 +757,7 @@ private void rebuildBlockSelection(String searchText){ if(!Core.atlas.isFound(region) || !block.inEditor || block.buildVisibility == BuildVisibility.debugOnly - || (!searchText.isEmpty() && !block.localizedName.toLowerCase().contains(searchText.toLowerCase())) + || (!searchText.isEmpty() && !block.localizedName.toLowerCase().contains(searchText.trim().replaceAll(" +", " ").toLowerCase())) ) continue; ImageButton button = new ImageButton(Tex.whiteui, Styles.clearNoneTogglei); diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 1ba96cc93a7..9730a88d46d 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1431,7 +1431,7 @@ public void run(LExecutor exec){ Team t = team.team(); - if(type.obj() instanceof UnitType type && !type.internal && !type.hidden && t != null && Units.canCreate(t, type)){ + if(type.obj() instanceof UnitType type && !type.internal && Units.canCreate(t, type)){ //random offset to prevent stacking var unit = type.spawn(t, World.unconv(x.numf()) + Mathf.range(0.01f), World.unconv(y.numf()) + Mathf.range(0.01f)); spawner.spawnEffect(unit, rotation.numf()); diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 8c9e1a16c5d..56e67f460ed 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -22,6 +22,7 @@ import mindustry.ui.*; import mindustry.world.*; +import static arc.Core.*; import static arc.util.Time.*; import static mindustry.Vars.*; @@ -117,24 +118,30 @@ public void show(Rules rules, Prov resetter){ } void setup(){ - categories.clear(); cont.clear(); cont.table(t -> { t.add("@search").padRight(10); var field = t.field(ruleSearch, text -> { ruleSearch = text.trim().replaceAll(" +", " ").toLowerCase(); - setup(); + setupMain(); }).grow().pad(8).get(); field.setCursorPosition(ruleSearch.length()); Core.scene.setKeyboardFocus(field); t.button(Icon.cancel, Styles.emptyi, () -> { ruleSearch = ""; - setup(); + setupMain(); }).padLeft(10f).size(35f); - t.button(Icon.zoom, Styles.emptyi, this::setup).size(54f); }).row(); - cont.pane(m -> main = m).scrollX(false); - main.margin(10f); + Cell paneCell = cont.pane(m -> main = m); + + setupMain(); + + paneCell.scrollX(main.getPrefWidth() + 40f > graphics.getWidth()); + } + + void setupMain(){ + categories.clear(); + main.clear(); main.left().defaults().fillX().left(); main.row(); @@ -333,7 +340,7 @@ void setup(){ public void category(String name){ current = new Table(); - current.left().defaults().fillX().left().pad(5); + current.left().defaults().fillX().expandX().left().pad(5); currentName = name; categories.add(current); categoryNames.add(currentName); @@ -403,7 +410,7 @@ public void number(String text, boolean integer, Floatc cons, Floatp prov, Boolp t.add(text).left().padRight(5) .update(a -> a.setColor(condition.get() ? Color.white : Color.gray)); t.field((integer ? (int)prov.get() : prov.get()) + "", s -> cons.get(Strings.parseFloat(s))) - .padRight(100f) + .padRight(50f) .update(a -> a.setDisabled(!condition.get())) .valid(f -> Strings.canParsePositiveFloat(f) && Strings.parseFloat(f) >= min && Strings.parseFloat(f) <= max).width(120f).left(); }).padTop(0); @@ -429,7 +436,7 @@ public void ruleInfo(Cell cell, String text){ Table table = new Table(); table.add(cell.get()).left().expandX().fillX(); cell.clearElement(); - table.button(Icon.infoSmall, () -> ui.showInfo(text + ".info")).size(32f).padRight(24f).right(); + table.button(Icon.infoSmall, () -> ui.showInfo(text + ".info")).size(32f).right(); cell.setElement(table).left().expandX().fillX(); }else{ cell.tooltip(text + ".info"); diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index 0b414e59d4c..eee250268ae 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -107,7 +107,7 @@ private void rebuildBlockSelection(Table blockSelection, String searchText){ || (!block.inEditor && !(block instanceof RemoveWall) && !(block instanceof RemoveOre)) || !block.isOnPlanet(state.rules.planet) || block.buildVisibility == BuildVisibility.debugOnly - || (!searchText.isEmpty() && !block.localizedName.toLowerCase().contains(searchText.toLowerCase())) + || (!searchText.isEmpty() && !block.localizedName.toLowerCase().contains(searchText.trim().replaceAll(" +", " ").toLowerCase())) ) continue; ImageButton button = new ImageButton(Tex.whiteui, Styles.clearNoneTogglei);