Add jarvis

This commit is contained in:
nea
2023-07-21 22:10:40 +02:00
parent ce7fd22553
commit 7ac205db0e
5 changed files with 55 additions and 5 deletions

View File

@@ -101,6 +101,8 @@ dependencies {
include(libs.libgui) include(libs.libgui)
modApi(libs.fabric.api) modApi(libs.fabric.api)
modApi(libs.architectury) modApi(libs.architectury)
modImplementation(libs.jarvis.api)
include(libs.jarvis.fabric)
// Actual dependencies // Actual dependencies
modCompileOnly(libs.rei.api) { modCompileOnly(libs.rei.api) {
@@ -120,8 +122,9 @@ dependencies {
transInclude(nonModImplentation(ktor("client-logging"))!!) transInclude(nonModImplentation(ktor("client-logging"))!!)
// Dev environment preinstalled mods // Dev environment preinstalled mods
modRuntimeOnly(libs.bundles.runtime.required) modLocalRuntime(libs.bundles.runtime.required)
modRuntimeOnly(libs.bundles.runtime.optional) modLocalRuntime(libs.bundles.runtime.optional)
modLocalRuntime(libs.jarvis.fabric)
transInclude.resolvedConfiguration.resolvedArtifacts.forEach { transInclude.resolvedConfiguration.resolvedArtifacts.forEach {
include(it.moduleVersion.id.toString()) include(it.moduleVersion.id.toString())

View File

@@ -19,6 +19,7 @@ sodium = "mc1.20-0.4.10"
freecammod = "1.2.0-mc1.20" freecammod = "1.2.0-mc1.20"
ncr = "Fabric-1.20-v2.2.0" ncr = "Fabric-1.20-v2.2.0"
mixinextras = "0.2.0-beta.9" mixinextras = "0.2.0-beta.9"
jarvis = "1.0.0"
[libraries] [libraries]
@@ -33,6 +34,8 @@ dbus_java_core = { module = "com.github.hypfvieh:dbus-java-core", version.ref =
dbus_java_unixsocket = { module = "com.github.hypfvieh:dbus-java-transport-native-unixsocket", version.ref = "dbus_java" } dbus_java_unixsocket = { module = "com.github.hypfvieh:dbus-java-transport-native-unixsocket", version.ref = "dbus_java" }
libgui = { module = "io.github.cottonmc:LibGui", version.ref = "libgui" } libgui = { module = "io.github.cottonmc:LibGui", version.ref = "libgui" }
mixinextras = { module = "com.github.LlamaLad7:MixinExtras", version.ref = "mixinextras" } mixinextras = { module = "com.github.LlamaLad7:MixinExtras", version.ref = "mixinextras" }
jarvis_api = { module = "moe.nea.jarvis:jarvis-api", version.ref = "jarvis" }
jarvis_fabric = { module = "moe.nea.jarvis:jarvis-fabric", version.ref = "jarvis" }
# Runtime: # Runtime:
hotswap = { module = "virtual.github.hotswapagent:hotswap-agent", version.ref = "hotswap_agent" } hotswap = { module = "virtual.github.hotswapagent:hotswap-agent", version.ref = "hotswap_agent" }

View File

@@ -173,7 +173,7 @@ abstract class ManagedConfig(val name: String) {
latestGuiAppender?.reloadables?.forEach {it() } latestGuiAppender?.reloadables?.forEach {it() }
} }
fun showConfigEditor(parent: Screen? = null) { fun getConfigEditor(parent: Screen? = null): CottonClientScreen {
val lwgd = LightweightGuiDescription() val lwgd = LightweightGuiDescription()
val guiapp = GuiAppender(20) val guiapp = GuiAppender(20)
latestGuiAppender = guiapp latestGuiAppender = guiapp
@@ -181,12 +181,16 @@ abstract class ManagedConfig(val name: String) {
sortedOptions.forEach { it.appendToGui(guiapp) } sortedOptions.forEach { it.appendToGui(guiapp) }
guiapp.reloadables.forEach { it() } guiapp.reloadables.forEach { it() }
lwgd.setRootPanel(guiapp.panel) lwgd.setRootPanel(guiapp.panel)
setScreenLater(object : CottonClientScreen(lwgd) { return object : CottonClientScreen(lwgd) {
override fun close() { override fun close() {
latestGuiAppender = null latestGuiAppender = null
MC.screen = parent MC.screen = parent
} }
}) }
}
fun showConfigEditor(parent: Screen? = null) {
setScreenLater(getConfigEditor(parent))
} }
} }

View File

@@ -0,0 +1,37 @@
package moe.nea.firmament.jarvis
import moe.nea.jarvis.api.JarvisConfigOption
import moe.nea.jarvis.api.JarvisPlugin
import net.minecraft.client.gui.screen.Screen
import net.minecraft.text.Text
import moe.nea.firmament.Firmament
import moe.nea.firmament.features.FeatureManager
import moe.nea.firmament.repo.RepoManager
class JarvisIntegration : JarvisPlugin {
override fun getModId(): String =
Firmament.MOD_ID
override fun getAllConfigOptions(): List<JarvisConfigOption> {
val configs = listOf(
RepoManager.Config
) + FeatureManager.allFeatures.mapNotNull { it.config }
return configs.flatMap { config ->
config.sortedOptions.map {
object : JarvisConfigOption {
override fun title(): Text {
return it.labelText
}
override fun description(): List<Text> {
return emptyList()
}
override fun jumpTo(parentScreen: Screen?): Screen {
return config.getConfigEditor(parentScreen)
}
}
}
}
}
}

View File

@@ -31,6 +31,9 @@
], ],
"modmenu": [ "modmenu": [
"moe.nea.firmament.modmenu.FirmamentModMenuPlugin" "moe.nea.firmament.modmenu.FirmamentModMenuPlugin"
],
"jarvis": [
"moe.nea.firmament.jarvis.JarvisIntegration"
] ]
}, },
"mixins": [ "mixins": [