Add jarvis
This commit is contained in:
@@ -101,6 +101,8 @@ dependencies {
|
||||
include(libs.libgui)
|
||||
modApi(libs.fabric.api)
|
||||
modApi(libs.architectury)
|
||||
modImplementation(libs.jarvis.api)
|
||||
include(libs.jarvis.fabric)
|
||||
|
||||
// Actual dependencies
|
||||
modCompileOnly(libs.rei.api) {
|
||||
@@ -120,8 +122,9 @@ dependencies {
|
||||
transInclude(nonModImplentation(ktor("client-logging"))!!)
|
||||
|
||||
// Dev environment preinstalled mods
|
||||
modRuntimeOnly(libs.bundles.runtime.required)
|
||||
modRuntimeOnly(libs.bundles.runtime.optional)
|
||||
modLocalRuntime(libs.bundles.runtime.required)
|
||||
modLocalRuntime(libs.bundles.runtime.optional)
|
||||
modLocalRuntime(libs.jarvis.fabric)
|
||||
|
||||
transInclude.resolvedConfiguration.resolvedArtifacts.forEach {
|
||||
include(it.moduleVersion.id.toString())
|
||||
|
||||
@@ -19,6 +19,7 @@ sodium = "mc1.20-0.4.10"
|
||||
freecammod = "1.2.0-mc1.20"
|
||||
ncr = "Fabric-1.20-v2.2.0"
|
||||
mixinextras = "0.2.0-beta.9"
|
||||
jarvis = "1.0.0"
|
||||
|
||||
|
||||
[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" }
|
||||
libgui = { module = "io.github.cottonmc:LibGui", version.ref = "libgui" }
|
||||
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:
|
||||
hotswap = { module = "virtual.github.hotswapagent:hotswap-agent", version.ref = "hotswap_agent" }
|
||||
|
||||
@@ -173,7 +173,7 @@ abstract class ManagedConfig(val name: String) {
|
||||
latestGuiAppender?.reloadables?.forEach {it() }
|
||||
}
|
||||
|
||||
fun showConfigEditor(parent: Screen? = null) {
|
||||
fun getConfigEditor(parent: Screen? = null): CottonClientScreen {
|
||||
val lwgd = LightweightGuiDescription()
|
||||
val guiapp = GuiAppender(20)
|
||||
latestGuiAppender = guiapp
|
||||
@@ -181,12 +181,16 @@ abstract class ManagedConfig(val name: String) {
|
||||
sortedOptions.forEach { it.appendToGui(guiapp) }
|
||||
guiapp.reloadables.forEach { it() }
|
||||
lwgd.setRootPanel(guiapp.panel)
|
||||
setScreenLater(object : CottonClientScreen(lwgd) {
|
||||
return object : CottonClientScreen(lwgd) {
|
||||
override fun close() {
|
||||
latestGuiAppender = null
|
||||
MC.screen = parent
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
fun showConfigEditor(parent: Screen? = null) {
|
||||
setScreenLater(getConfigEditor(parent))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,9 @@
|
||||
],
|
||||
"modmenu": [
|
||||
"moe.nea.firmament.modmenu.FirmamentModMenuPlugin"
|
||||
],
|
||||
"jarvis": [
|
||||
"moe.nea.firmament.jarvis.JarvisIntegration"
|
||||
]
|
||||
},
|
||||
"mixins": [
|
||||
|
||||
Reference in New Issue
Block a user