From 882800042bc036683c3381a4d32060834a0ac1c5 Mon Sep 17 00:00:00 2001 From: ApsZoldat Date: Sun, 16 Feb 2025 17:52:56 +0300 Subject: [PATCH 1/3] Rules search and info button tweaks --- .../mindustry/editor/BannedContentDialog.java | 2 +- .../ui/dialogs/CustomRulesDialog.java | 25 ++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/core/src/mindustry/editor/BannedContentDialog.java b/core/src/mindustry/editor/BannedContentDialog.java index 2a15742195d..9759295455d 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().toLowerCase(); rebuildTables(); }).get(); s.button(Icon.cancel, Styles.emptyi, () -> { 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"); From c9967d5d9317922288d235ee17f5d9a27fa3d98e Mon Sep 17 00:00:00 2001 From: ApsZoldat Date: Sun, 16 Feb 2025 23:03:37 +0300 Subject: [PATCH 2/3] Tweak spawnunit and some searching (again) --- core/src/mindustry/editor/BannedContentDialog.java | 2 +- core/src/mindustry/editor/MapEditorDialog.java | 2 +- core/src/mindustry/logic/LExecutor.java | 2 +- core/src/mindustry/ui/fragments/HudFragment.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/editor/BannedContentDialog.java b/core/src/mindustry/editor/BannedContentDialog.java index 9759295455d..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.trim().toLowerCase(); + 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..ba5b84b1fce 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 && t != null && 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/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); From a2b181a8cb446b527167cb94ccd72887676b87ed Mon Sep 17 00:00:00 2001 From: ApsZoldat Date: Mon, 24 Feb 2025 20:12:37 +0300 Subject: [PATCH 3/3] Just revert a condition removal --- core/src/mindustry/logic/LExecutor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index ba5b84b1fce..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 && 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());