Преглед изворни кода

Refactor default GUI builder

Lortseam пре 4 година
родитељ
комит
a7e815db01

+ 2 - 3
src/main/java/me/lortseam/completeconfig/ConfigHandler.java

@@ -4,7 +4,6 @@ import com.google.gson.*;
 import me.lortseam.completeconfig.api.ConfigCategory;
 import me.lortseam.completeconfig.api.ConfigOwner;
 import me.lortseam.completeconfig.gui.GuiBuilder;
-import me.lortseam.completeconfig.gui.cloth.ClothGuiBuilder;
 import me.lortseam.completeconfig.serialization.CollectionSerializer;
 import me.lortseam.completeconfig.serialization.EntrySerializer;
 import net.fabricmc.api.EnvType;
@@ -103,8 +102,8 @@ public final class ConfigHandler {
     @Environment(EnvType.CLIENT)
     public Screen buildScreen(Screen parentScreen) {
         if (guiBuilder == null) {
-            if (FabricLoader.getInstance().isModLoaded("cloth-config2")) {
-                guiBuilder = new ClothGuiBuilder();
+            if (GuiBuilder.DEFAULT != null) {
+                guiBuilder = GuiBuilder.DEFAULT;
             } else {
                 throw new UnsupportedOperationException("No GUI builder provided");
             }

+ 5 - 0
src/main/java/me/lortseam/completeconfig/gui/GuiBuilder.java

@@ -1,12 +1,17 @@
 package me.lortseam.completeconfig.gui;
 
 import me.lortseam.completeconfig.Config;
+import me.lortseam.completeconfig.gui.cloth.ClothGuiBuilder;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
+import net.fabricmc.loader.api.FabricLoader;
 import net.minecraft.client.gui.screen.Screen;
 
 public interface GuiBuilder {
 
+    @Environment(EnvType.CLIENT)
+    GuiBuilder DEFAULT = FabricLoader.getInstance().isModLoaded("cloth-config2") ? new ClothGuiBuilder() : null;
+
     @Environment(EnvType.CLIENT)
     Screen buildScreen(Screen parentScreen, Config config, Runnable savingRunnable);