[config] Add method to create a config screen
This commit is contained in:
parent
9df0e04508
commit
6498d7635e
|
@ -1,6 +1,7 @@
|
|||
package io.gitlab.jfronny.libjf.config.api;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigHolderImpl;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Map;
|
||||
|
@ -17,4 +18,5 @@ public interface ConfigHolder {
|
|||
boolean isRegistered(Class<?> configClass);
|
||||
boolean isRegistered(String modId);
|
||||
boolean isRegistered(Path configPath);
|
||||
Screen getConfigScreen(ConfigInstance config, Screen parent);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@ import com.google.common.collect.ImmutableMap;
|
|||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.impl.client.screen.TinyConfigScreen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
import java.nio.file.Path;
|
||||
|
@ -77,4 +79,9 @@ public class ConfigHolderImpl implements ConfigHolder {
|
|||
public boolean isRegistered(Path configPath) {
|
||||
return configsByPath.containsKey(configPath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Screen getConfigScreen(ConfigInstance config, Screen parent) {
|
||||
return new TinyConfigScreen(config, parent);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
|||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||
import io.gitlab.jfronny.libjf.config.api.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.impl.client.screen.TinyConfigScreen;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -22,6 +21,6 @@ public class ModMenu implements ModMenuApi {
|
|||
}
|
||||
|
||||
private static ConfigScreenFactory<?> buildFactory(ConfigInstance config) {
|
||||
return s -> new TinyConfigScreen(s, config);
|
||||
return s -> ConfigHolder.getInstance().getConfigScreen(config, s);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ import java.util.function.Predicate;
|
|||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class TinyConfigScreen extends Screen {
|
||||
public TinyConfigScreen(Screen parent, ConfigInstance config) {
|
||||
public TinyConfigScreen(ConfigInstance config, Screen parent) {
|
||||
super(new TranslatableText(config.getModId() + ".jfconfig." + "title"));
|
||||
this.parent = parent;
|
||||
this.config = config;
|
||||
|
|
Loading…
Reference in New Issue