Add jarvis
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user