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:
@@ -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...
|
||||||
|
|||||||
@@ -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 = 설계도 저장하기
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user