Implement Auto Config Screen registration (Forge/ModMenu)
This commit is contained in:
@@ -14,6 +14,10 @@ dependencies {
|
||||
include 'me.hypherionmc.night-config:toml:3.6.5_custom'
|
||||
include 'me.hypherionmc.night-config:core:3.6.5_custom'
|
||||
implementation project(":Common")
|
||||
|
||||
modApi("com.terraformersmc:modmenu:${mod_menu_version}") {
|
||||
exclude(group: "net.fabricmc.fabric-api")
|
||||
}
|
||||
}
|
||||
|
||||
loom {
|
||||
|
@@ -0,0 +1,31 @@
|
||||
package me.hypherionmc.craterlib;
|
||||
|
||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||
import me.hypherionmc.craterlib.client.gui.config.CraterConfigScreen;
|
||||
import me.hypherionmc.craterlib.common.config.ConfigController;
|
||||
import me.hypherionmc.craterlib.common.config.ModuleConfig;
|
||||
import me.hypherionmc.craterlib.common.config.annotations.NoConfigScreen;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author HypherionSA
|
||||
* @date 06/08/2022
|
||||
*/
|
||||
public class CraterLibModMenuIntegration implements ModMenuApi {
|
||||
|
||||
@Override
|
||||
public Map<String, ConfigScreenFactory<?>> getProvidedConfigScreenFactories() {
|
||||
Map<String, ConfigScreenFactory<?>> configScreens = new HashMap<>();
|
||||
|
||||
ConfigController.getMonitoredConfigs().forEach((conf, watcher) -> {
|
||||
if (!conf.getClass().isAnnotationPresent(NoConfigScreen.class)) {
|
||||
configScreens.put(((ModuleConfig) conf).getModId(), screen -> new CraterConfigScreen((ModuleConfig) conf, screen));
|
||||
}
|
||||
});
|
||||
|
||||
return configScreens;
|
||||
}
|
||||
}
|
@@ -24,6 +24,9 @@
|
||||
],
|
||||
"client": [
|
||||
"me.hypherionmc.craterlib.client.CraterLibClientInitializer"
|
||||
],
|
||||
"modmenu": [
|
||||
"me.hypherionmc.craterlib.CraterLibModMenuIntegration"
|
||||
]
|
||||
},
|
||||
"mixins": [
|
||||
|
Reference in New Issue
Block a user