Compare commits

...

10 Commits

Author SHA1 Message Date
d60d506c6c
Fix indentation errors in ClickBox.kt
Signed-off-by: Username404-59 <w.iron.zombie@gmail.com>
2024-05-25 17:55:29 +02:00
c58eee6631
Fix font rendering
Signed-off-by: Username404-59 <w.iron.zombie@gmail.com>
2024-05-25 17:53:15 +02:00
c204db0d47
Remove a useless import in Keystrokes.kt
Signed-off-by: Username404-59 <w.iron.zombie@gmail.com>
2024-05-24 23:10:38 +02:00
aebff3e15e
Depend on the right forge version
Signed-off-by: Username404-59 <w.iron.zombie@gmail.com>
2024-05-24 23:10:37 +02:00
01c420b4cc
Update dependencies
Signed-off-by: Username404-59 <w.iron.zombie@gmail.com>
2024-05-24 23:10:37 +02:00
bc10ffa2cf
Update gradle
Signed-off-by: Username404-59 <w.iron.zombie@gmail.com>
2024-05-24 23:10:37 +02:00
5563e59603
Update parchment mappings
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2024-02-25 15:45:09 +01:00
2772d52217
Port to 1.20
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2024-02-25 15:45:09 +01:00
f4834255ec
Port to 1.19.4
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2024-02-25 15:45:07 +01:00
771820f72f
Use 22w16b versions of dependencies
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2024-02-25 15:43:20 +01:00
15 changed files with 76 additions and 67 deletions

View File

@ -13,11 +13,11 @@ buildscript {
} }
plugins { plugins {
kotlin("jvm") version "1.9.22" kotlin("jvm") version "1.9.24"
kotlin("plugin.serialization") version "1.9.22" kotlin("plugin.serialization") version "1.9.24"
id("com.github.johnrengelman.shadow") version "8.1.1" apply false id("com.github.johnrengelman.shadow") version "8.1.1" apply false
id("architectury-plugin") version "[3.4.124, 3.5[" id("architectury-plugin") version "[3.4.124, 3.5["
id("dev.architectury.loom") version "1.4-SNAPSHOT" apply false id("dev.architectury.loom") version "1.5-SNAPSHOT" apply false
id("com.github.ben-manes.versions") version "0.51.0" id("com.github.ben-manes.versions") version "0.51.0"
id("net.kyori.indra.git") version "3.1.3" id("net.kyori.indra.git") version "3.1.3"
id("org.cqfn.diktat.diktat-gradle-plugin") version "1.2.5" id("org.cqfn.diktat.diktat-gradle-plugin") version "1.2.5"
@ -51,7 +51,7 @@ subprojects {
apply(plugin = "org.jetbrains.kotlin.plugin.serialization") apply(plugin = "org.jetbrains.kotlin.plugin.serialization")
extensions.configure<LoomGradleExtension>("loom") { extensions.configure<LoomGradleExtension>("loom") {
mappingsDep = layered { mappingsDep = layered {
officialMojangMappings().parchment("org.parchmentmc.data:parchment-${rootProject.architectury.minecraft}:2022.02.13") officialMojangMappings().parchment("org.parchmentmc.data:parchment-1.20.1:2023.06.26")
} }
silentMojangMappingsLicense() silentMojangMappingsLicense()
val refmap = "snowygui-${project.name}-refmap.json" val refmap = "snowygui-${project.name}-refmap.json"
@ -75,8 +75,8 @@ subprojects {
implementation("$kotlinX:kotlinx-serialization-core:$serializationVer") implementation("$kotlinX:kotlinx-serialization-core:$serializationVer")
implementation("$kotlinX:kotlinx-serialization-json:$serializationVer") implementation("$kotlinX:kotlinx-serialization-json:$serializationVer")
listOf( listOf(
"com.typesafe:config:1.4.2", "com.typesafe:config:1.4.3",
"io.github.config4k:config4k:0.5.0", "io.github.config4k:config4k:0.6.0",
"com.github.Vatuu:discord-rpc:1.6.2" "com.github.Vatuu:discord-rpc:1.6.2"
).forEach { implementation(it); shadowC(it) { isTransitive = false; exclude("com.sun.jna") } } ).forEach { implementation(it); shadowC(it) { isTransitive = false; exclude("com.sun.jna") } }
"minecraft"("com.mojang:minecraft:${rootProject.property("minecraft")}") "minecraft"("com.mojang:minecraft:${rootProject.property("minecraft")}")

View File

@ -1,8 +1,6 @@
package fr.username404.snowygui.config package fr.username404.snowygui.config
import com.mojang.blaze3d.vertex.PoseStack
import fr.username404.snowygui.ClickGui import fr.username404.snowygui.ClickGui
import fr.username404.snowygui.utils.FontUtil
import fr.username404.snowygui.gui.elements.ClickBox import fr.username404.snowygui.gui.elements.ClickBox
import fr.username404.snowygui.gui.elements.ClickBox.Companion.buttonsMax import fr.username404.snowygui.gui.elements.ClickBox.Companion.buttonsMax
import fr.username404.snowygui.gui.elements.ClickBox.Companion.sortAlphabetically import fr.username404.snowygui.gui.elements.ClickBox.Companion.sortAlphabetically
@ -11,6 +9,8 @@ import fr.username404.snowygui.gui.feature.Colors
import fr.username404.snowygui.gui.feature.Macro import fr.username404.snowygui.gui.feature.Macro
import fr.username404.snowygui.gui.feature.Keystrokes import fr.username404.snowygui.gui.feature.Keystrokes
import fr.username404.snowygui.gui.feature.Zoom import fr.username404.snowygui.gui.feature.Zoom
import fr.username404.snowygui.utils.FontUtil
import net.minecraft.client.gui.GuiGraphics
import net.minecraft.client.gui.screens.Screen import net.minecraft.client.gui.screens.Screen
import net.minecraft.network.chat.Component import net.minecraft.network.chat.Component
import net.minecraft.network.chat.Component.translatable import net.minecraft.network.chat.Component.translatable
@ -27,9 +27,9 @@ private fun supplyComponent(string: String?): Optional<Component> = string?.run
val SnowyConfigScreen: Screen = object: Screen(translationComponent) { val SnowyConfigScreen: Screen = object: Screen(translationComponent) {
override fun isPauseScreen(): Boolean = false override fun isPauseScreen(): Boolean = false
override fun render(poseStack: PoseStack, i: Int, j: Int, f: Float) { override fun render(guiGraphics: GuiGraphics, i: Int, j: Int, f: Float) {
super.renderBackground(poseStack) super.renderBackground(guiGraphics)
FontUtil.drawScaled(poseStack, FontUtil.drawScaled(guiGraphics,
text = "An appropriate version of the Cloth Config mod is required for the configuration of snowygui.", 16.0, 16.0, text = "An appropriate version of the Cloth Config mod is required for the configuration of snowygui.", 16.0, 16.0,
color = Colors.WHITE, scaleFactor = 0.85F color = Colors.WHITE, scaleFactor = 0.85F
) )

View File

@ -5,10 +5,11 @@ import fr.username404.snowygui.Snowy
import fr.username404.snowygui.gui.feature.Colors import fr.username404.snowygui.gui.feature.Colors
import fr.username404.snowygui.utils.RenderingUtil import fr.username404.snowygui.utils.RenderingUtil
import fr.username404.snowygui.utils.RenderingUtil.colorEnd import fr.username404.snowygui.utils.RenderingUtil.colorEnd
import net.minecraft.client.gui.GuiGraphics
import net.minecraft.client.gui.components.events.GuiEventListener import net.minecraft.client.gui.components.events.GuiEventListener
fun interface Renderable { fun interface Renderable {
fun render(poseStack: PoseStack?) fun render(guiGraphics: GuiGraphics?)
} }
abstract class Element( abstract class Element(
@ -28,13 +29,13 @@ abstract class Element(
private var caughtError: Boolean = false private var caughtError: Boolean = false
fun fromRenderable(r: Renderable, x: Double, y: Double, width: Int, height: Int): Element { fun fromRenderable(r: Renderable, x: Double, y: Double, width: Int, height: Int): Element {
return object: Element(x, y, width, height) { return object: Element(x, y, width, height) {
override fun render(poseStack: PoseStack?) = r.render(poseStack) override fun render(guiGraphics: GuiGraphics?) = r.render(guiGraphics)
} }
} }
} }
open fun display(stack: PoseStack? = null) { open fun display(guiGraphics: GuiGraphics? = null) {
if (!hidden && !caughtError) try { if (!hidden && !caughtError) try {
render(stack) render(guiGraphics)
} catch (t: Throwable) { } catch (t: Throwable) {
with(Snowy.logs) { with(Snowy.logs) {
error("An element from snowy threw an error: \n\t$t") error("An element from snowy threw an error: \n\t$t")

View File

@ -1,14 +1,14 @@
package fr.username404.snowygui.gui package fr.username404.snowygui.gui
import com.mojang.blaze3d.vertex.PoseStack import net.minecraft.client.gui.GuiGraphics
import net.minecraft.client.gui.screens.Screen import net.minecraft.client.gui.screens.Screen
import net.minecraft.network.chat.Component.translatable import net.minecraft.network.chat.Component.translatable
abstract class SnowyScreen(translatableString: String = "screen.snowy.gui", private val willPauseScreen: Boolean = false): Screen(translatable(translatableString)) { abstract class SnowyScreen(translatableString: String = "screen.snowy.gui", private val willPauseScreen: Boolean = false): Screen(translatable(translatableString)) {
abstract val components: MutableCollection<Element> abstract val components: MutableCollection<Element>
override fun render(poseStack: PoseStack, i: Int, j: Int, f: Float) { override fun render(guiGraphics: GuiGraphics, i: Int, j: Int, f: Float) {
components.forEach { components.forEach {
it.display(poseStack) it.display(guiGraphics)
} }
} }
override fun isPauseScreen(): Boolean = willPauseScreen override fun isPauseScreen(): Boolean = willPauseScreen

View File

@ -1,7 +1,6 @@
package fr.username404.snowygui.gui.elements package fr.username404.snowygui.gui.elements
import com.mojang.blaze3d.vertex.DefaultVertexFormat import com.mojang.blaze3d.vertex.DefaultVertexFormat
import com.mojang.blaze3d.vertex.PoseStack
import fr.username404.snowygui.Snowy.Companion.MissingComponent import fr.username404.snowygui.Snowy.Companion.MissingComponent
import fr.username404.snowygui.config.Configuration import fr.username404.snowygui.config.Configuration
import com.mojang.blaze3d.vertex.VertexFormat import com.mojang.blaze3d.vertex.VertexFormat
@ -16,6 +15,8 @@ import fr.username404.snowygui.utils.RenderingUtil.prepareDraw
import fr.username404.snowygui.utils.RenderingUtil.tessellator import fr.username404.snowygui.utils.RenderingUtil.tessellator
import io.github.config4k.extract import io.github.config4k.extract
import net.minecraft.client.Minecraft import net.minecraft.client.Minecraft
import net.minecraft.client.gui.Font
import net.minecraft.client.gui.GuiGraphics
import net.minecraft.network.chat.Component import net.minecraft.network.chat.Component
import org.jetbrains.annotations.ApiStatus import org.jetbrains.annotations.ApiStatus
import java.util.TreeSet import java.util.TreeSet
@ -32,9 +33,9 @@ class ClickBox(
if (sortAlphabetically) if (sortAlphabetically)
TreeSet(compareBy(String.CASE_INSENSITIVE_ORDER) { it.title }) TreeSet(compareBy(String.CASE_INSENSITIVE_ORDER) { it.title })
else LinkedHashSet() else LinkedHashSet()
override fun display(stack: PoseStack?) { override fun display(guiGraphics: GuiGraphics?) {
hidden = buttons.isEmpty() || hidden hidden = buttons.isEmpty() || hidden
super.display(stack) super.display(guiGraphics)
} }
@JvmField @JvmField
@ -44,7 +45,7 @@ class ClickBox(
opacity = 0.75F opacity = 0.75F
) { ) {
override val color: Int get() = this@ClickBox.color override val color: Int get() = this@ClickBox.color
override fun render(poseStack: PoseStack?) { override fun render(guiGraphics: GuiGraphics?) {
prepareDraw() prepareDraw()
colorShader(); defaultRectFunc() colorShader(); defaultRectFunc()
endDraw() endDraw()
@ -76,7 +77,7 @@ class ClickBox(
const val clickboxHeightOffset: Int = 80 const val clickboxHeightOffset: Int = 80
private const val inclination: Double = 2.5 private const val inclination: Double = 2.5
} }
override fun render(poseStack: PoseStack?) { override fun render(guiGraphics: GuiGraphics?) {
val currentHeight = y + (height + clickboxHeightOffset) val currentHeight = y + (height + clickboxHeightOffset)
prepareDraw() prepareDraw()
with(buffer) { with(buffer) {
@ -105,18 +106,23 @@ class ClickBox(
buttonsProgressBar.apply { buttonsProgressBar.apply {
x = this@ClickBox.x + this@ClickBox.width - 3 x = this@ClickBox.x + this@ClickBox.width - 3
y = this@ClickBox.y + this@ClickBox.height + 3 y = this@ClickBox.y + this@ClickBox.height + 3
}.display(poseStack) }.display(guiGraphics)
buttons.forEachIndexed { num, button -> buttons.forEachIndexed { num, button ->
val fullHeight = (y + height.toDouble())..(y + height + clickboxHeightOffset) val fullHeight = (y + height.toDouble())..(y + height + clickboxHeightOffset)
button.also { button.also {
it.x = x + 3 it.x = x + 3
it.y = y + 3 + height + (((num + 1) - barStage) * 9) it.y = y + 3 + height + (((num + 1) - barStage) * 9)
it.hidden = if ((num + 1) <= 8) ((it.y) !in fullHeight) else ((it.y + it.height) !in fullHeight) it.hidden = if ((num + 1) <= 8) ((it.y) !in fullHeight) else ((it.y + it.height) !in fullHeight)
}.display(poseStack) }.display(guiGraphics)
} }
} }
if (poseStack != null) { guiGraphics?.run {
Minecraft.getInstance().font.draw(poseStack, name.string, x.toFloat() + 5, y.toFloat() + 1.5F, Colors.TRANSPARENT.hexValue) with(Minecraft.getInstance().font) {
drawInBatch(name.string,
(x + 5).toFloat(), (y + 2).toFloat(), Colors.TRANSPARENT.hexValue, false,
pose().last().pose(), bufferSource(), Font.DisplayMode.NORMAL, 0, 15728880, isBidirectional
)
}
} }
} }
} }

View File

@ -1,15 +1,15 @@
package fr.username404.snowygui.gui.feature package fr.username404.snowygui.gui.feature
import com.mojang.blaze3d.vertex.PoseStack
import fr.username404.snowygui.ClickGui import fr.username404.snowygui.ClickGui
import fr.username404.snowygui.Snowy import fr.username404.snowygui.Snowy
import fr.username404.snowygui.config.Configuration import fr.username404.snowygui.config.Configuration
import fr.username404.snowygui.gui.ColoredElement import fr.username404.snowygui.gui.ColoredElement
import fr.username404.snowygui.utils.FontUtil
import fr.username404.snowygui.gui.feature.ButtonInfo.Companion.Type import fr.username404.snowygui.gui.feature.ButtonInfo.Companion.Type
import fr.username404.snowygui.utils.FontUtil
import fr.username404.snowygui.utils.RenderingUtil.colorShader
import fr.username404.snowygui.utils.RenderingUtil.endDraw import fr.username404.snowygui.utils.RenderingUtil.endDraw
import fr.username404.snowygui.utils.RenderingUtil.prepareDraw import fr.username404.snowygui.utils.RenderingUtil.prepareDraw
import fr.username404.snowygui.utils.RenderingUtil.colorShader import net.minecraft.client.gui.GuiGraphics
import kotlin.reflect.full.findAnnotation import kotlin.reflect.full.findAnnotation
sealed class ButtonImpl: ColoredElement(0.0, 0.0, 73, 8, opacity = 0.60F) { sealed class ButtonImpl: ColoredElement(0.0, 0.0, 73, 8, opacity = 0.60F) {
@ -90,12 +90,12 @@ sealed class ButtonImpl: ColoredElement(0.0, 0.0, 73, 8, opacity = 0.60F) {
lightDown() lightDown()
}; return false }; return false
} }
final override fun render(poseStack: PoseStack?) { final override fun render(guiGraphics: GuiGraphics?) {
prepareDraw() prepareDraw()
colorShader(); defaultRectFunc() colorShader(); defaultRectFunc()
endDraw() endDraw()
if (poseStack != null) { if (guiGraphics != null) {
FontUtil.drawScaled(poseStack, title, x + 1, y + 1, 0.75F) FontUtil.drawScaled(guiGraphics, title, x + 1, y + 1, 0.75F)
} }
} }
} }

View File

@ -1,13 +1,13 @@
package fr.username404.snowygui.gui.feature package fr.username404.snowygui.gui.feature
import com.mojang.blaze3d.vertex.PoseStack
import fr.username404.snowygui.EventSnowy import fr.username404.snowygui.EventSnowy
import fr.username404.snowygui.argsLambda import fr.username404.snowygui.argsLambda
import fr.username404.snowygui.gui.Renderable import fr.username404.snowygui.gui.Renderable
import net.minecraft.client.gui.GuiGraphics
sealed class ButtonImplWithHud: ButtonImpl() { sealed class ButtonImplWithHud: ButtonImpl() {
protected abstract val hudRenderLambda: Renderable protected abstract val hudRenderLambda: Renderable
private val generatedLambda: argsLambda = { hudRenderLambda.render(it.first() as PoseStack?) } private val generatedLambda: argsLambda = { hudRenderLambda.render(it.first() as GuiGraphics?) }
final override fun execAction() { final override fun execAction() {
EventSnowy["HudRender"].run { EventSnowy["HudRender"].run {
if (toggled) add(generatedLambda) if (toggled) add(generatedLambda)

View File

@ -1,12 +1,12 @@
package fr.username404.snowygui.gui.feature package fr.username404.snowygui.gui.feature
import com.mojang.blaze3d.vertex.PoseStack
import fr.username404.snowygui.config.Configuration import fr.username404.snowygui.config.Configuration
import fr.username404.snowygui.gui.ColoredElement import fr.username404.snowygui.gui.ColoredElement
import fr.username404.snowygui.gui.Renderable import fr.username404.snowygui.gui.Renderable
import fr.username404.snowygui.utils.FontUtil import fr.username404.snowygui.utils.FontUtil
import fr.username404.snowygui.utils.RenderingUtil import fr.username404.snowygui.utils.RenderingUtil
import net.minecraft.client.Minecraft import net.minecraft.client.Minecraft
import net.minecraft.client.gui.GuiGraphics
@ButtonInfo(Category.HUD) @ButtonInfo(Category.HUD)
object Keystrokes: ButtonImplWithHud() { object Keystrokes: ButtonImplWithHud() {
@ -41,14 +41,14 @@ object Keystrokes: ButtonImplWithHud() {
return dynamicOpacity[i] return dynamicOpacity[i]
} }
private fun drawKey(x: Double, y: Double, key: Int, poseStack: PoseStack? = null) { private fun drawKey(x: Double, y: Double, key: Int, guiGraphics: GuiGraphics?) {
RenderingUtil.prepareDraw() RenderingUtil.prepareDraw()
RenderingUtil.drawRectangle( RenderingUtil.drawRectangle(
x, y, height / 2, height / 2, x, y, height / 2, height / 2,
color = color, opacity = getDynamicOpacity(key).toFloat() color = color, opacity = getDynamicOpacity(key).toFloat()
) )
RenderingUtil.endDraw() RenderingUtil.endDraw()
poseStack?.let { guiGraphics?.let {
FontUtil.drawScaled( FontUtil.drawScaled(
it, keysArray.first[key].translatedKeyMessage.string.uppercase(), it, keysArray.first[key].translatedKeyMessage.string.uppercase(),
x + height.toDouble() / 5.5, y + height.toDouble() / 6.5, x + height.toDouble() / 5.5, y + height.toDouble() / 6.5,
@ -57,11 +57,11 @@ object Keystrokes: ButtonImplWithHud() {
} }
} }
private fun getNewPos(i: Int) = x + (i * (2 + (height / 2))) private fun getNewPos(i: Int) = x + (i * (2 + (height / 2)))
override fun render(poseStack: PoseStack?) = with(RenderingUtil) { override fun render(guiGraphics: GuiGraphics?) = with(RenderingUtil) {
for (i in 0 until 3) { for (i in 0 until 3) {
drawKey(getNewPos(i), y, i, poseStack) drawKey(getNewPos(i), y, i, guiGraphics)
} }
drawKey(getNewPos(1), y - (height / 2) - 2, 3, poseStack) drawKey(getNewPos(1), y - (height / 2) - 2, 3, guiGraphics)
} }
} }
override val hudRenderLambda = Renderable { override val hudRenderLambda = Renderable {

View File

@ -1,13 +1,14 @@
package fr.username404.snowygui.utils package fr.username404.snowygui.utils
import com.mojang.blaze3d.vertex.PoseStack
import net.minecraft.client.Minecraft import net.minecraft.client.Minecraft
import fr.username404.snowygui.gui.feature.Colors import fr.username404.snowygui.gui.feature.Colors
import net.minecraft.client.gui.GuiGraphics
object FontUtil { object FontUtil {
fun drawScaled(stack: PoseStack, text: String, x: Double, y: Double, scaleFactor: Float, color: Colors = Colors.BLACK) { fun drawScaled(guiGraphics: GuiGraphics, text: String, x: Double, y: Double, scaleFactor: Float, color: Colors = Colors.BLACK) {
val stack = guiGraphics.pose()
stack.scale(scaleFactor, scaleFactor, scaleFactor) stack.scale(scaleFactor, scaleFactor, scaleFactor)
Minecraft.getInstance().font.draw(stack, text, (x / scaleFactor).toFloat(), (y / scaleFactor).toFloat(), color.hexValue) guiGraphics.drawString(Minecraft.getInstance().font, text, (x / scaleFactor).toInt(), (y / scaleFactor).toInt(), color.hexValue, false)
val factorToOriginal = 1F / scaleFactor val factorToOriginal = 1F / scaleFactor
stack.scale(factorToOriginal, factorToOriginal, factorToOriginal) stack.scale(factorToOriginal, factorToOriginal, factorToOriginal)
} }

View File

@ -8,6 +8,7 @@ import net.fabricmc.api.ClientModInitializer
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback.EVENT import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback.EVENT
import net.fabricmc.loader.api.FabricLoader import net.fabricmc.loader.api.FabricLoader
import net.minecraft.client.gui.GuiGraphics
import kotlin.io.path.exists import kotlin.io.path.exists
import kotlin.io.path.isDirectory import kotlin.io.path.isDirectory
import kotlin.io.path.listDirectoryEntries import kotlin.io.path.listDirectoryEntries
@ -20,7 +21,7 @@ class FabricInit: Snowy(), ClientModInitializer {
EVENT.register( EVENT.register(
object: HudRenderCallback, EventSnowy { object: HudRenderCallback, EventSnowy {
override val type: String = "HudRender" override val type: String = "HudRender"
override fun onHudRender(matrixStack: PoseStack?, tickDelta: Float) = fire(matrixStack) override fun onHudRender(guiGraphics: GuiGraphics?, tickDelta: Float) = fire(guiGraphics)
} }
) )
} }

View File

@ -37,7 +37,7 @@
"fabric-language-kotlin": ">=${fabric_kotlin}", "fabric-language-kotlin": ">=${fabric_kotlin}",
"fabric-resource-loader-v0": "*", "fabric-resource-loader-v0": "*",
"fabric-rendering-v1": "*", "fabric-rendering-v1": "*",
"minecraft": ">=${minecraft_version}" "minecraft": ">=1.19-alpha.22.16.b"
}, },
"recommends": { "recommends": {
"cloth-config2": ">=${clothconfig}" "cloth-config2": ">=${clothconfig}"

View File

@ -8,6 +8,6 @@ object HudHandler: EventSnowy {
override val type: String = "HudRender" override val type: String = "HudRender"
@SubscribeEvent @SubscribeEvent
fun handleRendering(event: RenderGuiEvent.Post) { fun handleRendering(event: RenderGuiEvent.Post) {
fire(event.poseStack) fire(event.guiGraphics)
} }
} }

View File

@ -23,7 +23,7 @@ side = "CLIENT"
[[dependencies.snowygui]] [[dependencies.snowygui]]
modId = "forge" modId = "forge"
mandatory = true mandatory = true
versionRange = "[37,)" versionRange = "[${forge_version},)"
ordering = "NONE" ordering = "NONE"
side = "BOTH" side = "BOTH"

View File

@ -7,16 +7,16 @@ org.gradle.parallel=true
org.gradle.unsafe.configuration-cache=on org.gradle.unsafe.configuration-cache=on
org.gradle.vfs.watch=true org.gradle.vfs.watch=true
minecraft=1.18.1 minecraft=1.20
forge_version=39.1 forge_version=46.0
kotlinforforge=3.1.0 kotlinforforge=4.3.0
kotlinVer=1.6.0 kotlinVer=1.8.22
kotlin_coroutines_version=1.5.0 kotlin_coroutines_version=1.7.1
serializationVer=1.3.1 serializationVer=1.5.1
fabric_loader_version=0.11.7 fabric_loader_version=0.14.19
fabric_language_kotlin=1.7.0+kotlin.1.6.0 fabric_language_kotlin=1.9.5+kotlin.1.8.22
fabric_resource_loader_version=0.4.14+713c266865 fabric_resource_loader_version=0.11.7+f7923f6d27
fabric_rendering_api_version=1.10.6+713c266865 fabric_rendering_api_version=3.0.6+b3afc78b27
fabric_api_base_version=0.3.0+a02b4463d5 fabric_api_base_version=0.4.29+b04edc7a27
clothconfig_version=6.2.57 clothconfig_version=11.0.99
modmenu_version=3.0.1 modmenu_version=7.0.0

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-rc-1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists