@@ -27,6 +27,7 @@ import net.minecraft.client.gui.widget.ButtonWidget
2727import net.minecraft.client.gui.widget.CyclingButtonWidget
2828import net.minecraft.client.gui.widget.TextFieldWidget
2929import net.minecraft.client.util.math.MatrixStack
30+ import net.minecraft.text.LiteralText
3031import net.minecraft.text.TranslatableText
3132import org.lwjgl.glfw.GLFW
3233import xyz.deathsgun.modmanager.ModManager
@@ -41,8 +42,7 @@ import xyz.deathsgun.modmanager.gui.widget.ModListEntry
4142import xyz.deathsgun.modmanager.gui.widget.ModListWidget
4243import kotlin.math.min
4344
44- class ModsOverviewScreen (private val previousScreen : Screen ) : Screen(TranslatableText ("modmanager.title.overview")),
45- IListScreen {
45+ class ModsOverviewScreen (private val previousScreen : Screen ) : Screen(LiteralText .EMPTY ), IListScreen {
4646
4747 private var query: String = " "
4848 private var selectedMod: ModListEntry ? = null
@@ -58,6 +58,7 @@ class ModsOverviewScreen(private val previousScreen: Screen) : Screen(Translatab
5858 private lateinit var categoryList: CategoryListWidget
5959 private lateinit var nextPage: ButtonWidget
6060 private lateinit var previousPage: ButtonWidget
61+ private lateinit var updateAll: ButtonWidget
6162
6263 @OptIn(DelicateCoroutinesApi ::class )
6364 override fun init () {
@@ -77,9 +78,16 @@ class ModsOverviewScreen(private val previousScreen: Screen) : Screen(Translatab
7778 sortingButtonWidget = addDrawableChild(
7879 CyclingButtonWidget .builder(Sorting ::translations)
7980 .values(Sorting .RELEVANCE , Sorting .DOWNLOADS , Sorting .NEWEST , Sorting .UPDATED )
80- .build(180 , 10 , 180 , 20 , TranslatableText (" modmanager.sorting.sort" ))
81+ .build(180 , 10 , 120 , 20 , TranslatableText (" modmanager.sorting.sort" ))
8182 { _: CyclingButtonWidget <Any >, sorting: Sorting -> this .sorting = sorting; updateModList() }
8283 )
84+ updateAll = addDrawableChild(
85+ ButtonWidget (width - 100 - 10 , 10 , 100 , 20 , TranslatableText (" modmanager.button.updateAll" )) {
86+ ModManager .modManager.icons.destroyAll()
87+ client?.setScreen(UpdateAllScreen (this ))
88+ }
89+ )
90+ updateAll.visible = false
8391
8492 categoryList = addSelectableChild(
8593 CategoryListWidget (
@@ -150,12 +158,12 @@ class ModsOverviewScreen(private val previousScreen: Screen) : Screen(Translatab
150158 }
151159 if (query.isNotEmpty()) {
152160 showModsBySearch()
161+ modList.scrollAmount = scrollPercentage
153162 return @launch
154163 }
155164 showModsByCategory()
165+ modList.scrollAmount = scrollPercentage
156166 }
157- modList.init ()
158- categoryList.init ()
159167 }
160168
161169 private fun showNextPage () {
@@ -279,6 +287,7 @@ class ModsOverviewScreen(private val previousScreen: Screen) : Screen(Translatab
279287 this .searchField.tick()
280288 this .previousPage.active = page > 0
281289 this .nextPage.active = this .modList.getElementCount() >= limit
290+ this .updateAll.visible = this .selectedCategories.any { it.id == " updatable" }
282291 }
283292
284293 override fun render (matrices : MatrixStack ? , mouseX : Int , mouseY : Int , delta : Float ) {
0 commit comments