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

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

View File

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

View File

@@ -8,6 +8,7 @@ import arc.graphics.*;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import arc.input.*; import arc.input.*;
import arc.scene.style.*; import arc.scene.style.*;
import arc.scene.ui.*;
import arc.scene.ui.TextButton.*; import arc.scene.ui.TextButton.*;
import arc.struct.*; import arc.struct.*;
import arc.util.*; import arc.util.*;
@@ -31,6 +32,7 @@ import static mindustry.Vars.*;
public class ModsDialog extends BaseDialog{ public class ModsDialog extends BaseDialog{
private String searchtxt = ""; private String searchtxt = "";
private @Nullable Seq<ModListing> modList; private @Nullable Seq<ModListing> modList;
private boolean orderDate = true;
public ModsDialog(){ public ModsDialog(){
super("@mods"); super("@mods");
@@ -176,6 +178,10 @@ public class ModsDialog extends BaseDialog{
searchtxt = res; searchtxt = res;
rebuildBrowser[0].run(); rebuildBrowser[0].run();
}).growX().get(); }).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); }).fillX().padBottom(4);
browser.cont.row(); browser.cont.row();
@@ -186,9 +192,15 @@ public class ModsDialog extends BaseDialog{
tablebrow.clear(); tablebrow.clear();
tablebrow.add("@loading"); tablebrow.add("@loading");
getModList(listings -> { getModList(rlistings -> {
tablebrow.clear(); 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){ for(ModListing mod : listings){
if(mod.hasJava || !searchtxt.isEmpty() && !mod.repo.toLowerCase().contains(searchtxt.toLowerCase()) || (Vars.ios && mod.hasScripts)) continue; if(mod.hasJava || !searchtxt.isEmpty() && !mod.repo.toLowerCase().contains(searchtxt.toLowerCase()) || (Vars.ios && mod.hasScripts)) continue;