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

Commit 1e23e96

Browse files
committed
Port to 1.16
Signed-off-by: DeathsGun <deathsgun@protonmail.com>
1 parent 7ab8366 commit 1e23e96

File tree

19 files changed

+172
-123
lines changed

19 files changed

+172
-123
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
//file:noinspection GroovyAssignabilityCheck
1818
//file:noinspection GroovyAccessibility
1919
plugins {
20-
id "fabric-loom" version "0.9-SNAPSHOT"
20+
id "fabric-loom" version "0.10-SNAPSHOT"
2121
id "com.modrinth.minotaur" version "1.2.1"
2222
id "org.jetbrains.kotlin.jvm" version "1.5.30"
2323
id "org.jetbrains.kotlin.plugin.serialization" version "1.5.30"

gradle.properties

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@
1616
org.gradle.jvmargs=-Xms2G -Xmx4G
1717
# Fabric Properties
1818
# check this on https://modmuss50.me/fabric.html
19-
minecraft_version=1.17.1
20-
yarn_mappings=1.17.1+build.61
21-
loader_version=0.12.1
19+
minecraft_version=1.16.5
20+
yarn_mappings=1.16.5+build.10
21+
loader_version=0.12.5
2222
# Mod Properties
23-
mod_version=1.2.0-alpha+1.17
23+
mod_version=1.2.0+1.16
2424
maven_group=xyz.deathsgun
2525
archives_base_name=modmanager
2626
# Dependencies
27-
modmenu_version=2.0.5
27+
modmenu_version=1.16.22
2828
# Kotlin
2929
kotlin_version=1.5.30
3030
fabric_kotlin_version=1.6.4+kotlin.1.5.30

src/main/java/xyz/deathsgun/modmanager/mixin/ModsScreenMixin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,16 @@ protected ModsScreenMixin(Text title) {
6363
@Inject(method = "init", at = @At("TAIL"))
6464
public void onInit(CallbackInfo ci) {
6565
int searchBoxWidth = this.paneWidth - 32 - 22;
66-
this.addDrawableChild(new ModMenuTexturedButtonWidget(this.paneWidth / 2 + searchBoxWidth / 2 + 14,
66+
this.addButton(new ModMenuTexturedButtonWidget(this.paneWidth / 2 + searchBoxWidth / 2 + 14,
6767
22, 20, 20, 0, 0, MODMANAGER_BUTTON_LOCATION, 32, 64,
68-
button -> MinecraftClient.getInstance().setScreen(new ModsOverviewScreen(this)), LiteralText.EMPTY,
68+
button -> MinecraftClient.getInstance().openScreen(new ModsOverviewScreen(this)), LiteralText.EMPTY,
6969
(button, matrices, mouseX, mouseY) -> {
7070
if (!button.isHovered()) {
7171
return;
7272
}
7373
this.renderTooltip(matrices, new TranslatableText("modmanager.button.open"), mouseX, mouseY);
7474
}));
75-
this.hideButton = this.addDrawableChild(new TexturedButton(width - 24 - 22, paneY, 20, 20, 0,
75+
this.hideButton = this.addButton(new TexturedButton(width - 24 - 22, paneY, 20, 20, 0,
7676
0, MODMANAGER_HIDE_BUTTON, 32, 64, button -> {
7777
if (ModManager.modManager.config.getHidden().contains(selected.getMod().getId())) {
7878
ModManager.modManager.config.getHidden().remove(selected.getMod().getId());

src/main/kotlin/xyz/deathsgun/modmanager/api/gui/list/ListWidget.kt

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,15 @@ package xyz.deathsgun.modmanager.api.gui.list
1818

1919
import com.mojang.blaze3d.systems.RenderSystem
2020
import net.minecraft.client.MinecraftClient
21-
import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder
2221
import net.minecraft.client.gui.widget.AlwaysSelectedEntryListWidget
23-
import net.minecraft.client.render.GameRenderer
2422
import net.minecraft.client.render.Tessellator
25-
import net.minecraft.client.render.VertexFormat
2623
import net.minecraft.client.render.VertexFormats
2724
import net.minecraft.client.util.math.MatrixStack
2825
import net.minecraft.util.math.MathHelper
2926
import java.util.*
3027
import kotlin.math.max
3128

29+
3230
/**
3331
* Using ModMenu's implementation because the implementation from
3432
* Mojang is broken. [com.terraformersmc.modmenu.gui.ModsScreen].
@@ -57,7 +55,7 @@ abstract class ListWidget<E : ListWidget.Entry<E>>(
5755
override fun setSelected(entry: E?) {
5856
super.setSelected(entry)
5957
selectedId = entry?.id
60-
parent.updateSelectedEntry(this, selectedOrNull)
58+
parent.updateSelectedEntry(this, selected)
6159
}
6260

6361
override fun isSelectedEntry(index: Int): Boolean {
@@ -90,18 +88,16 @@ abstract class ListWidget<E : ListWidget.Entry<E>>(
9088
val selectionRight = x + rowWidth + 2
9189
RenderSystem.disableTexture()
9290
val color = if (this.isFocused) 1.0f else 0.5f
93-
RenderSystem.setShader { GameRenderer.getPositionShader() }
94-
RenderSystem.setShaderColor(color, color, color, 1.0f)
91+
RenderSystem.color4f(color, color, color, 1.0f)
9592
val matrix = matrices!!.peek().model
96-
buffer.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION)
93+
buffer.begin(7, VertexFormats.POSITION)
9794
buffer.vertex(matrix, entryLeft.toFloat(), (entryTop + entryHeight + 2).toFloat(), 0.0f).next()
9895
buffer.vertex(matrix, selectionRight.toFloat(), (entryTop + entryHeight + 2).toFloat(), 0.0f).next()
9996
buffer.vertex(matrix, selectionRight.toFloat(), (entryTop - 2).toFloat(), 0.0f).next()
10097
buffer.vertex(matrix, entryLeft.toFloat(), (entryTop - 2).toFloat(), 0.0f).next()
10198
tessellator.draw()
102-
RenderSystem.setShader { GameRenderer.getPositionShader() }
103-
RenderSystem.setShaderColor(0.0f, 0.0f, 0.0f, 1.0f)
104-
buffer.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION)
99+
RenderSystem.color4f(0.0f, 0.0f, 0.0f, 1.0f)
100+
buffer.begin(7, VertexFormats.POSITION)
105101
buffer.vertex(matrix, (entryLeft + 1).toFloat(), (entryTop + entryHeight + 1).toFloat(), 0.0f)
106102
.next()
107103
buffer.vertex(matrix, (selectionRight - 1).toFloat(), (entryTop + entryHeight + 1).toFloat(), 0.0f)
@@ -137,10 +133,6 @@ abstract class ListWidget<E : ListWidget.Entry<E>>(
137133
return super.getMaxPosition() + 4
138134
}
139135

140-
override fun appendNarrations(builder: NarrationMessageBuilder?) {
141-
super.appendNarrations(builder)
142-
}
143-
144136
open fun isSelectedEntry(entry: Entry<E>): Boolean {
145137
return selectedId == entry.id
146138
}

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

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import net.minecraft.client.font.MultilineText
2020
import net.minecraft.client.gui.screen.Screen
2121
import net.minecraft.client.gui.screen.ScreenTexts
2222
import net.minecraft.client.gui.widget.ButtonWidget
23-
import net.minecraft.client.gui.widget.CyclingButtonWidget
2423
import net.minecraft.client.util.math.MatrixStack
2524
import net.minecraft.text.LiteralText
2625
import net.minecraft.text.TranslatableText
@@ -29,34 +28,55 @@ import xyz.deathsgun.modmanager.config.Config
2928

3029
class ConfigScreen(private val previousScreen: Screen) : Screen(LiteralText("Config")) {
3130

32-
private lateinit var defaultProvider: CyclingButtonWidget<String>
33-
private lateinit var updateChannel: CyclingButtonWidget<Config.UpdateChannel>
31+
private var channel = 0
32+
private var provider = 0
33+
private lateinit var defaultProvider: ButtonWidget
34+
private lateinit var updateChannel: ButtonWidget
3435
private var config: Config = ModManager.modManager.config.copy()
3536

3637
override fun init() {
37-
defaultProvider = addDrawableChild(CyclingButtonWidget.builder<String> { LiteralText(it) }
38-
.values(ModManager.modManager.provider.keys.toList())
39-
.initially(config.defaultProvider)
40-
.build(width - 220, 30, 200, 20, TranslatableText("modmanager.button.defaultProvider"))
41-
{ _: CyclingButtonWidget<Any>, s: String -> config.defaultProvider = s })
38+
defaultProvider = addButton(
39+
ButtonWidget(
40+
width - 220,
41+
30,
42+
200,
43+
20,
44+
TranslatableText("modmanager.button.defaultProvider").append(config.updateChannel.text())
45+
) {
46+
provider++
47+
if (provider > ModManager.modManager.provider.size) {
48+
provider = 0
49+
}
50+
config.defaultProvider = ModManager.modManager.provider.keys.toMutableList()[provider]
51+
it.message = TranslatableText("modmanager.button.defaultProvider").append(config.updateChannel.text())
52+
}
53+
)
4254
defaultProvider.active = ModManager.modManager.provider.size > 1
4355

44-
updateChannel = addDrawableChild(CyclingButtonWidget.builder<Config.UpdateChannel> { it.text() }
45-
.values(listOf(Config.UpdateChannel.ALL, Config.UpdateChannel.STABLE))
46-
.initially(config.updateChannel)
47-
.build(width - 220, 60, 200, 20, TranslatableText("modmanager.button.updateChannel"))
48-
{ _: CyclingButtonWidget<Any>, channel: Config.UpdateChannel -> config.updateChannel = channel })
56+
updateChannel =
57+
addButton(
58+
ButtonWidget(
59+
width - 220, 60, 200, 20, TranslatableText("modmanager.button.updateChannel")
60+
) {
61+
channel++
62+
if (channel > Config.UpdateChannel.values().size) {
63+
channel = 0
64+
}
65+
config.updateChannel = Config.UpdateChannel.values()[channel]
66+
it.message = TranslatableText("modmanager.button.updateChannel").append(config.updateChannel.text())
67+
}
68+
)
4969

50-
addDrawableChild(ButtonWidget(
70+
addButton(ButtonWidget(
5171
width / 2 - 154, height - 28, 150, 20, ScreenTexts.CANCEL,
5272
) {
53-
client!!.setScreen(previousScreen)
73+
client!!.openScreen(previousScreen)
5474
})
55-
addDrawableChild(ButtonWidget(
75+
addButton(ButtonWidget(
5676
width / 2 + 4, height - 28, 150, 20, TranslatableText("modmanager.button.save")
5777
) {
5878
ModManager.modManager.config = Config.saveConfig(this.config)
59-
client!!.setScreen(previousScreen)
79+
client!!.openScreen(previousScreen)
6080
})
6181

6282
}
@@ -72,7 +92,7 @@ class ConfigScreen(private val previousScreen: Screen) : Screen(LiteralText("Con
7292
}
7393

7494
override fun onClose() {
75-
client!!.setScreen(previousScreen)
95+
client!!.openScreen(previousScreen)
7696
}
7797

7898
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,26 @@ class ErrorScreen(
3838
this.text = MultilineText.create(this.textRenderer, this.error, this.width - 50)
3939
val linesHeight = this.text.count() * 9
4040
val bottom = MathHelper.clamp(90 + linesHeight + 12, this.height / 6 + 69, this.height - 24)
41-
addDrawableChild(
41+
addButton(
4242
ButtonWidget(
4343
this.width / 2 - 155,
4444
bottom,
4545
150,
4646
20,
4747
ScreenTexts.BACK
4848
) {
49-
client!!.setScreen(previousScreen)
49+
client!!.openScreen(previousScreen)
5050
}
5151
)
52-
addDrawableChild(
52+
addButton(
5353
ButtonWidget(
5454
this.width / 2 + 5,
5555
bottom,
5656
150,
5757
20,
5858
TranslatableText("modmanager.button.tryAgain")
5959
) {
60-
client!!.setScreen(actionScreen)
60+
client!!.openScreen(actionScreen)
6161
}
6262
)
6363
}

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class ModDetailScreen(private val previousScreen: Screen, var mod: Mod) : Screen
4242
if (provider != null) {
4343
when (val result = provider.getMod(mod.id)) {
4444
is ModResult.Error -> {
45-
client!!.setScreen(ErrorScreen(previousScreen, this, result.text))
45+
client!!.openScreen(ErrorScreen(previousScreen, this, result.text))
4646
}
4747
is ModResult.Success -> {
4848
val tmp = mod
@@ -56,7 +56,7 @@ class ModDetailScreen(private val previousScreen: Screen, var mod: Mod) : Screen
5656

5757
override fun init() {
5858
val buttonX = width / 8
59-
descriptionWidget = addSelectableChild(
59+
descriptionWidget = addChild(
6060
DescriptionWidget(
6161
client!!,
6262
width - 20,
@@ -70,10 +70,10 @@ class ModDetailScreen(private val previousScreen: Screen, var mod: Mod) : Screen
7070
)
7171
descriptionWidget.setLeftPos(10)
7272
descriptionWidget.init()
73-
addDrawableChild(ButtonWidget(buttonX, height - 28, 150, 20, ScreenTexts.BACK) {
74-
client!!.setScreen(previousScreen)
73+
addButton(ButtonWidget(buttonX, height - 28, 150, 20, ScreenTexts.BACK) {
74+
client!!.openScreen(previousScreen)
7575
})
76-
this.actionButton = addDrawableChild(
76+
this.actionButton = addButton(
7777
ButtonWidget(
7878
this.width - buttonX - 150,
7979
this.height - 28,
@@ -83,7 +83,7 @@ class ModDetailScreen(private val previousScreen: Screen, var mod: Mod) : Screen
8383
) {
8484
when (ModManager.modManager.getModState(mod.id)) {
8585
State.DOWNLOADABLE -> {
86-
client!!.setScreen(
86+
client!!.openScreen(
8787
ModProgressScreen(
8888
mod,
8989
ModProgressScreen.Action.INSTALL,
@@ -93,7 +93,7 @@ class ModDetailScreen(private val previousScreen: Screen, var mod: Mod) : Screen
9393
)
9494
}
9595
State.OUTDATED -> {
96-
client!!.setScreen(
96+
client!!.openScreen(
9797
ModProgressScreen(
9898
mod,
9999
ModProgressScreen.Action.UPDATE,
@@ -111,8 +111,8 @@ class ModDetailScreen(private val previousScreen: Screen, var mod: Mod) : Screen
111111

112112
private fun removeMod() {
113113
when (val result = ModManager.modManager.update.removeMod(mod)) {
114-
is ModRemoveResult.Success -> client!!.setScreen(previousScreen)
115-
is ModRemoveResult.Error -> client!!.setScreen(ErrorScreen(previousScreen, this, result.text))
114+
is ModRemoveResult.Success -> client!!.openScreen(previousScreen)
115+
is ModRemoveResult.Error -> client!!.openScreen(ErrorScreen(previousScreen, this, result.text))
116116
}
117117
}
118118

@@ -130,7 +130,7 @@ class ModDetailScreen(private val previousScreen: Screen, var mod: Mod) : Screen
130130

131131
val iconSize = 64
132132
ModManager.modManager.icons.bindIcon(mod)
133-
RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f)
133+
RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f)
134134
ModManager.modManager.icons.bindIcon(mod)
135135
RenderSystem.enableBlend()
136136
drawTexture(matrices, 20, 10, 0.0f, 0.0f, iconSize, iconSize, iconSize, iconSize)
@@ -179,7 +179,7 @@ class ModDetailScreen(private val previousScreen: Screen, var mod: Mod) : Screen
179179
}
180180

181181
override fun onClose() {
182-
client!!.setScreen(previousScreen)
182+
client!!.openScreen(previousScreen)
183183
}
184184

185185
override fun <E> updateSelectedEntry(widget: Any, entry: E?) {

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ class ModProgressScreen(
5454

5555
@OptIn(DelicateCoroutinesApi::class)
5656
override fun init() {
57-
backButton = addDrawableChild(
57+
backButton = addButton(
5858
ButtonWidget(
5959
width / 2 - 75,
6060
(height * 0.6 + 40).roundToInt(),
6161
150,
6262
20,
6363
ScreenTexts.BACK
6464
) {
65-
client!!.setScreen(previousScreen)
65+
client!!.openScreen(previousScreen)
6666
})
6767
backButton.visible = false
6868
GlobalScope.launch {
@@ -121,7 +121,7 @@ class ModProgressScreen(
121121
is ModInstallResult.Error -> {
122122
LogManager.getLogger().error(result.text.key, result.cause)
123123
client!!.send {
124-
MinecraftClient.getInstance().setScreen(ErrorScreen(previousScreen, infoScreen, result.text))
124+
MinecraftClient.getInstance().openScreen(ErrorScreen(previousScreen, infoScreen, result.text))
125125
}
126126
}
127127
is ModInstallResult.Success -> {
@@ -139,7 +139,7 @@ class ModProgressScreen(
139139
is ModUpdateResult.Error -> {
140140
LogManager.getLogger().error(result.text.key, result.cause)
141141
client!!.send {
142-
MinecraftClient.getInstance().setScreen(ErrorScreen(previousScreen, infoScreen, result.text))
142+
MinecraftClient.getInstance().openScreen(ErrorScreen(previousScreen, infoScreen, result.text))
143143
}
144144
}
145145
is ModUpdateResult.Success -> {
@@ -155,7 +155,7 @@ class ModProgressScreen(
155155
}
156156

157157
override fun onClose() {
158-
client!!.setScreen(previousScreen)
158+
client!!.openScreen(previousScreen)
159159
}
160160

161161
enum class Action {

0 commit comments

Comments
 (0)