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
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 1 deletions

View file

@ -45,6 +45,8 @@ mod.featured.dialog.title = Mod Browser (WIP)
mods.browser.selected = Selected mod
mods.browser.add = Install
mods.github.open = View
mods.browser.sortdate = Sort by recent
mods.browser.sortstars = Sort by stars
schematic = Schematic
schematic.add = Save Schematic...

View file

@ -45,6 +45,8 @@ mod.featured.dialog.title = 모드 탐색 (WIP)
mods.browser.selected = 선택된 모드
mods.browser.add = 모드 설치
mods.github.open = 깃허브 사이트 열기
mods.browser.sortdate = 최근 업데이트
mods.browser.sortstars = 추천(스타) 수
schematic = 설계도
schematic.add = 설계도 저장하기

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;