Explorar el Código

Refactor GUI builder

Lortseam hace 4 años
padre
commit
6b922c4b2b

+ 4 - 4
src/main/java/me/lortseam/completeconfig/gui/GuiBuilder.java → src/main/java/me/lortseam/completeconfig/gui/ConfigScreenBuilder.java

@@ -1,7 +1,7 @@
 package me.lortseam.completeconfig.gui;
 
 import me.lortseam.completeconfig.data.Config;
-import me.lortseam.completeconfig.gui.cloth.ClothGuiBuilder;
+import me.lortseam.completeconfig.gui.cloth.ClothConfigScreenBuilder;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
 import net.fabricmc.loader.api.FabricLoader;
@@ -9,12 +9,12 @@ import net.minecraft.client.gui.screen.Screen;
 
 import java.util.function.Supplier;
 
-public interface GuiBuilder {
+public interface ConfigScreenBuilder {
 
     @Environment(EnvType.CLIENT)
-    Supplier<GuiBuilder> DEFAULT = FabricLoader.getInstance().isModLoaded("cloth-config2") ? ClothGuiBuilder::new : null;
+    Supplier<ConfigScreenBuilder> DEFAULT = FabricLoader.getInstance().isModLoaded("cloth-config2") ? ClothConfigScreenBuilder::new : null;
 
     @Environment(EnvType.CLIENT)
-    Screen buildScreen(Screen parentScreen, Config config, Runnable savingRunnable);
+    Screen build(Screen parentScreen, Config config);
 
 }

+ 6 - 6
src/main/java/me/lortseam/completeconfig/gui/cloth/ClothGuiBuilder.java → src/main/java/me/lortseam/completeconfig/gui/cloth/ClothConfigScreenBuilder.java

@@ -4,7 +4,7 @@ import me.lortseam.completeconfig.data.Collection;
 import me.lortseam.completeconfig.data.Config;
 import me.lortseam.completeconfig.data.Entry;
 import me.lortseam.completeconfig.data.text.TranslationIdentifier;
-import me.lortseam.completeconfig.gui.GuiBuilder;
+import me.lortseam.completeconfig.gui.ConfigScreenBuilder;
 import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
 import me.shedaniel.clothconfig2.api.ConfigBuilder;
 import me.shedaniel.clothconfig2.api.ConfigCategory;
@@ -21,23 +21,23 @@ import java.util.List;
 import java.util.function.Supplier;
 
 @Environment(EnvType.CLIENT)
-public class ClothGuiBuilder implements GuiBuilder {
+public class ClothConfigScreenBuilder implements ConfigScreenBuilder {
 
     private final Supplier<ConfigBuilder> supplier;
 
-    public ClothGuiBuilder(Supplier<ConfigBuilder> supplier) {
+    public ClothConfigScreenBuilder(Supplier<ConfigBuilder> supplier) {
         this.supplier = supplier;
     }
 
-    public ClothGuiBuilder() {
+    public ClothConfigScreenBuilder() {
         this(ConfigBuilder::create);
     }
 
     @Override
-    public Screen buildScreen(Screen parentScreen, Config config, Runnable savingRunnable) {
+    public Screen build(Screen parentScreen, Config config) {
         ConfigBuilder builder = supplier.get()
                 .setParentScreen(parentScreen)
-                .setSavingRunnable(savingRunnable);
+                .setSavingRunnable(config::save);
         TranslationIdentifier customTitle = config.getTranslation().append("title");
         builder.setTitle(customTitle.exists() ? customTitle.toText() : new TranslatableText("completeconfig.gui.defaultTitle", FabricLoader.getInstance().getModContainer(config.getModID()).get().getMetadata().getName()));
         if (!config.getEntries().isEmpty()) {