Add search option for mod browser (#4391)

* add search option

* mods.browser.sortdate

* mods.browser

* Update bundle_ko.properties

* oopsie

* clearPartiali

* half of my brain cells failed to boot
This commit is contained in:
Sunny Kim
2021-01-21 22:51:43 +09:00
committed by GitHub
parent d393230add
commit 65f97edbc5
3 changed files with 17 additions and 1 deletions

View File

@@ -8,6 +8,7 @@ import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.input.*;
import arc.scene.style.*;
import arc.scene.ui.*;
import arc.scene.ui.TextButton.*;
import arc.struct.*;
import arc.util.*;
@@ -31,6 +32,7 @@ import static mindustry.Vars.*;
public class ModsDialog extends BaseDialog{
private String searchtxt = "";
private @Nullable Seq<ModListing> modList;
private boolean orderDate = true;
public ModsDialog(){
super("@mods");
@@ -176,6 +178,10 @@ public class ModsDialog extends BaseDialog{
searchtxt = res;
rebuildBrowser[0].run();
}).growX().get();
table.button(Icon.list, Styles.clearPartiali, 32f, () -> {
orderDate = !orderDate;
rebuildBrowser[0].run();
}).update(b -> b.getStyle().imageUp = (orderDate? Icon.list : Icon.star)).size(40f).get().addListener(new Tooltip(tip -> tip.label(() -> orderDate? "$mods.browser.sortdate" : "$mods.browser.sortstars").left()));
}).fillX().padBottom(4);
browser.cont.row();
@@ -186,8 +192,14 @@ public class ModsDialog extends BaseDialog{
tablebrow.clear();
tablebrow.add("@loading");
getModList(listings -> {
getModList(rlistings -> {
tablebrow.clear();
Seq<ModListing> listings = rlistings;
if(!orderDate){
listings = rlistings.copy();
listings.sort((m1, m2) -> Integer.compare(m2.stars, m1.stars));
}
for(ModListing mod : listings){
if(mod.hasJava || !searchtxt.isEmpty() && !mod.repo.toLowerCase().contains(searchtxt.toLowerCase()) || (Vars.ios && mod.hasScripts)) continue;