diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index f1f22de6dc..a71af9f728 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -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... diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index cb15a9e49c..aca4318573 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -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 = 설계도 저장하기 diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index a6434690cf..55cb26b629 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -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 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 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;