Skip to content
This repository was archived by the owner on Dec 30, 2022. It is now read-only.

Commit 4613d94

Browse files
committed
Add back button and move the done text to the right
1 parent 1161d36 commit 4613d94

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

src/main/kotlin/xyz/deathsgun/modmanager/gui/UpdateAllScreen.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package xyz.deathsgun.modmanager.gui
22

33
import kotlinx.coroutines.DelicateCoroutinesApi
44
import net.minecraft.client.gui.screen.Screen
5+
import net.minecraft.client.gui.screen.ScreenTexts
6+
import net.minecraft.client.gui.widget.ButtonWidget
57
import net.minecraft.client.util.math.MatrixStack
68
import net.minecraft.text.TranslatableText
79
import xyz.deathsgun.modmanager.ModManager
@@ -14,6 +16,7 @@ class UpdateAllScreen(private val parentScreen: Screen) : Screen(TranslatableTex
1416
IListScreen {
1517

1618
private lateinit var updateList: UpdateProgressListWidget
19+
private lateinit var doneButton: ButtonWidget
1720
private var updated = ArrayList<String>()
1821

1922
@OptIn(DelicateCoroutinesApi::class)
@@ -28,6 +31,10 @@ class UpdateAllScreen(private val parentScreen: Screen) : Screen(TranslatableTex
2831
this
2932
)
3033
updateList.setLeftPos(25)
34+
doneButton = addDrawableChild(ButtonWidget(width / 2 - 100, height - 30, 200, 20, ScreenTexts.DONE) {
35+
onClose()
36+
})
37+
doneButton.active = false
3138
}
3239

3340
override fun render(matrices: MatrixStack, mouseX: Int, mouseY: Int, delta: Float) {
@@ -40,6 +47,9 @@ class UpdateAllScreen(private val parentScreen: Screen) : Screen(TranslatableTex
4047
override fun tick() {
4148
updateList.tick()
4249
val pendingUpdates = getPendingUpdates()
50+
if (pendingUpdates.isEmpty()) {
51+
doneButton.active = true
52+
}
4353
if (pendingUpdates.isEmpty() || !updateList.children().all { it.progress == 1.0 }) {
4454
return
4555
}

src/main/kotlin/xyz/deathsgun/modmanager/gui/widget/UpdateProgressListEntry.kt

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ import kotlinx.coroutines.GlobalScope
55
import kotlinx.coroutines.delay
66
import kotlinx.coroutines.launch
77
import net.minecraft.client.MinecraftClient
8+
import net.minecraft.client.gui.DrawableHelper
89
import net.minecraft.client.gui.hud.BackgroundHelper.ColorMixer
9-
import net.minecraft.client.gui.screen.Screen
1010
import net.minecraft.client.gui.screen.ScreenTexts
1111
import net.minecraft.client.util.math.MatrixStack
1212
import net.minecraft.text.LiteralText
1313
import net.minecraft.text.Text
14+
import net.minecraft.util.math.MathHelper
1415
import xyz.deathsgun.modmanager.ModManager
1516
import xyz.deathsgun.modmanager.api.gui.list.ListWidget
1617
import xyz.deathsgun.modmanager.update.ProgressListener
@@ -43,13 +44,14 @@ class UpdateProgressListEntry(list: ListWidget<UpdateProgressListEntry>, val upd
4344
tickDelta: Float
4445
) {
4546
val textRenderer = MinecraftClient.getInstance().textRenderer
46-
textRenderer.draw(matrices, update.mod.name, x.toFloat(), y + 1f, 0xFFFFFF)
47-
val nameWidth = textRenderer.getWidth(update.mod.name) + 5
47+
val infoText = "${update.mod.name} v${update.installedVersion} to ${update.version.version}"
48+
textRenderer.draw(matrices, infoText, x.toFloat(), y + 1f, 0xFFFFFF)
49+
val infoTextWidth = textRenderer.getWidth(infoText) + 5
4850
if (progress == 1.0) {
49-
textRenderer.draw(matrices, ScreenTexts.DONE, (x + nameWidth).toFloat(), y + 1f, 0xFFFFFF)
51+
textRenderer.draw(matrices, ScreenTexts.DONE, (x + entryWidth - textRenderer.getWidth(ScreenTexts.DONE)).toFloat(), y + 1f, 0xFFFFFF)
5052
return
5153
}
52-
renderProgressBar(matrices, entryWidth - nameWidth, x + nameWidth, y, x + entryWidth, y + entryHeight)
54+
renderProgressBar(matrices, entryWidth - infoTextWidth, x + infoTextWidth, y, x + entryWidth, y + entryHeight)
5355
}
5456

5557
fun tick() {
@@ -70,11 +72,11 @@ class UpdateProgressListEntry(list: ListWidget<UpdateProgressListEntry>, val upd
7072
if ((minX + pos) - maxX + 2 > 0) {
7173
pos = 0
7274
}
73-
Screen.fill(matrices, minX + 2 + pos, minY + 2, minX + pos + barWidth, maxY - 2, color)
74-
Screen.fill(matrices, minX + 1, minY, maxX - 1, minY + 1, color)
75-
Screen.fill(matrices, minX + 1, maxY, maxX - 1, maxY - 1, color)
76-
Screen.fill(matrices, minX, minY, minX + 1, maxY, color)
77-
Screen.fill(matrices, maxX, minY, maxX - 1, maxY, color)
75+
DrawableHelper.fill(matrices, minX + 2 + pos, minY + 2, minX + pos + barWidth, maxY - 2, color)
76+
DrawableHelper.fill(matrices, minX + 1, minY, maxX - 1, minY + 1, color)
77+
DrawableHelper.fill(matrices, minX + 1, maxY, maxX - 1, maxY - 1, color)
78+
DrawableHelper.fill(matrices, minX, minY, minX + 1, maxY, color)
79+
DrawableHelper.fill(matrices, maxX, minY, maxX - 1, maxY, color)
7880
}
7981

8082
override fun getNarration(): Text {

0 commit comments

Comments
 (0)