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