Add config gui to mod menu
This commit is contained in:
@@ -78,6 +78,7 @@ dependencies {
|
||||
// Fabric dependencies
|
||||
modImplementation(libs.fabric.loader)
|
||||
modImplementation(libs.fabric.kotlin)
|
||||
modImplementation(libs.modmenu)
|
||||
modImplementation(libs.libgui)
|
||||
include(libs.libgui)
|
||||
modApi(libs.fabric.api)
|
||||
@@ -119,6 +120,7 @@ tasks.withType<JavaCompile> {
|
||||
tasks.shadowJar {
|
||||
configurations = listOf(shadowMe)
|
||||
archiveClassifier.set("dev-thicc")
|
||||
relocate("io.github.moulberry.repo", "moe.nea.firmament.deps.repo")
|
||||
}
|
||||
|
||||
tasks.remapJar {
|
||||
|
||||
@@ -40,7 +40,7 @@ ncr = { module = "maven.modrinth:no-chat-reports", version.ref = "ncr" }
|
||||
[bundles]
|
||||
dbus = ["dbus_java_core", "dbus_java_unixsocket"]
|
||||
runtime_required = ["architectury_fabric", "rei_fabric"]
|
||||
runtime_optional = ["devauth", "modmenu", "qolify", "citresewn", "ncr"]
|
||||
runtime_optional = ["devauth", "qolify", "citresewn", "ncr"]
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -27,15 +27,17 @@ import io.github.cottonmc.cotton.gui.widget.WLabel
|
||||
import io.github.cottonmc.cotton.gui.widget.WListPanel
|
||||
import io.github.cottonmc.cotton.gui.widget.data.Insets
|
||||
import io.ktor.http.*
|
||||
import net.minecraft.client.gui.screen.Screen
|
||||
import net.minecraft.text.Text
|
||||
import moe.nea.firmament.features.FeatureManager
|
||||
import moe.nea.firmament.gui.WFixedPanel
|
||||
import moe.nea.firmament.repo.RepoManager
|
||||
import moe.nea.firmament.util.MC
|
||||
import moe.nea.firmament.util.ScreenUtil.setScreenLater
|
||||
|
||||
object AllConfigsGui {
|
||||
|
||||
fun showAllGuis() {
|
||||
fun makeScreen(parent: Screen? = null): CottonClientScreen {
|
||||
val lwgd = LightweightGuiDescription()
|
||||
var screen: CottonClientScreen? = null
|
||||
lwgd.setRootPanel(WListPanel(
|
||||
@@ -56,7 +58,15 @@ object AllConfigsGui {
|
||||
}.also {
|
||||
it.setSize(10 * 18 + 14 + 16, 300)
|
||||
})
|
||||
screen = CottonClientScreen(lwgd)
|
||||
setScreenLater(screen)
|
||||
screen = object : CottonClientScreen(lwgd) {
|
||||
override fun close() {
|
||||
MC.screen = parent
|
||||
}
|
||||
}
|
||||
return screen
|
||||
}
|
||||
|
||||
fun showAllGuis() {
|
||||
setScreenLater(makeScreen())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package moe.nea.firmament.modmenu
|
||||
|
||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory
|
||||
import com.terraformersmc.modmenu.api.ModMenuApi
|
||||
import moe.nea.firmament.gui.config.AllConfigsGui
|
||||
|
||||
class FirmamentModMenuPlugin : ModMenuApi {
|
||||
override fun getModConfigScreenFactory(): ConfigScreenFactory<*> {
|
||||
return ConfigScreenFactory { AllConfigsGui.makeScreen(it) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,23 +26,33 @@
|
||||
"value": "moe.nea.firmament.Firmament"
|
||||
}
|
||||
],
|
||||
"client": [
|
||||
{
|
||||
"adapter": "kotlin",
|
||||
"value": "moe.nea.firmament.Firmament"
|
||||
}
|
||||
],
|
||||
"rei_client": [
|
||||
"moe.nea.firmament.rei.FirmamentReiPlugin"
|
||||
]
|
||||
"client": [
|
||||
{
|
||||
"adapter": "kotlin",
|
||||
"value": "moe.nea.firmament.Firmament"
|
||||
}
|
||||
],
|
||||
"rei_client": [
|
||||
"moe.nea.firmament.rei.FirmamentReiPlugin"
|
||||
],
|
||||
"modmenu": [
|
||||
"moe.nea.firmament.modmenu.FirmamentModMenuPlugin"
|
||||
]
|
||||
},
|
||||
"mixins": [
|
||||
"firmament.mixins.json"
|
||||
],
|
||||
"depends": {
|
||||
"fabric": "*",
|
||||
"fabric-language-kotlin": ">=${fabric_kotlin_version}",
|
||||
"minecraft": ">=${minecraft_version}",
|
||||
"fabric-key-binding-api-v1": "*"
|
||||
}
|
||||
"mixins": [
|
||||
"firmament.mixins.json"
|
||||
],
|
||||
"depends": {
|
||||
"fabric": "*",
|
||||
"fabric-language-kotlin": ">=${fabric_kotlin_version}",
|
||||
"minecraft": ">=${minecraft_version}",
|
||||
"fabric-key-binding-api-v1": "*"
|
||||
},
|
||||
"custom": {
|
||||
"modmenu": {
|
||||
"links": {
|
||||
"modmenu.discord": "https://discord.gg/64pFP94AWA"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user