Explorar el Código

Code improvements

Lortseam hace 4 años
padre
commit
7fd78b82fa

+ 8 - 10
lib/src/main/java/me/lortseam/completeconfig/data/Config.java

@@ -45,8 +45,6 @@ public final class Config extends BaseCollection {
     private final ConfigSource source;
     @Environment(EnvType.CLIENT)
     private TranslationKey translation;
-    @Environment(EnvType.CLIENT)
-    private TranslationKey branchedTranslation;
     private final boolean saveOnExit;
 
     private Config(ConfigSource source, ConfigContainer[] children, boolean saveOnExit) {
@@ -61,18 +59,18 @@ public final class Config extends BaseCollection {
 
     @Override
     public TranslationKey getTranslation() {
-        if (translation == null) {
-            translation = TranslationKey.from(this);
-        }
-        return translation;
+        return getTranslation(false);
     }
 
     @Environment(EnvType.CLIENT)
-    public TranslationKey getBranchedTranslation() {
-        if (branchedTranslation == null) {
-            branchedTranslation = getTranslation().append(source.getBranch());
+    public TranslationKey getTranslation(boolean includeBranch) {
+        if (translation == null) {
+            translation = TranslationKey.from(this);
         }
-        return branchedTranslation;
+        if (includeBranch) {
+            return translation.append(source.getBranch());
+        }
+        return translation;
     }
 
     private void load() {

+ 1 - 1
lib/src/main/java/me/lortseam/completeconfig/gui/cloth/ClothConfigScreenBuilder.java

@@ -43,7 +43,7 @@ public final class ClothConfigScreenBuilder extends ConfigScreenBuilder {
         ConfigBuilder builder = supplier.get()
                 .setParentScreen(parentScreen)
                 .setSavingRunnable(config::save);
-        TranslationKey customTitle = config.getBranchedTranslation().append("title");
+        TranslationKey customTitle = config.getTranslation(true).append("title");
         builder.setTitle(customTitle.exists() ? customTitle.toText() : new TranslatableText("completeconfig.gui.defaultTitle", config.getMod().getName()));
         if (!config.getEntries().isEmpty()) {
             ConfigCategory category = builder.getOrCreateCategory(config.getText());

+ 17 - 16
lib/src/main/java/me/lortseam/completeconfig/text/TranslationKey.java

@@ -6,42 +6,38 @@ import net.fabricmc.api.Environment;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.text.Text;
 import net.minecraft.text.TranslatableText;
-import org.apache.commons.lang3.ArrayUtils;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
-import java.util.regex.Pattern;
 
 public final class TranslationKey {
 
-    private static final String DELIMITER = ".";
+    private static final char DELIMITER = '.';
 
     public static TranslationKey from(Config config) {
-        return new TranslationKey("config" + DELIMITER + config.getMod().getId());
+        return new TranslationKey("config" + DELIMITER + config.getMod().getId(), null);
     }
 
     private final String modKey;
-    private final String[] subKey;
+    private final String subKey;
 
     @Environment(EnvType.CLIENT)
-    private TranslationKey(String modKey, String... subKey) {
+    private TranslationKey(String modKey, String subKey) {
         this.modKey = modKey;
         this.subKey = subKey;
     }
 
     private String getKey() {
-        StringBuilder builder = new StringBuilder(modKey);
-        for (String keyPart : subKey) {
-            builder.append(DELIMITER);
-            builder.append(keyPart);
+        if (subKey == null) {
+            return modKey;
+        } else {
+            return modKey + subKey;
         }
-        return builder.toString();
     }
 
     public TranslationKey root() {
-        return new TranslationKey(modKey);
+        return new TranslationKey(modKey, null);
     }
 
     public boolean exists() {
@@ -53,9 +49,14 @@ public final class TranslationKey {
     }
 
     public TranslationKey append(String... subKeys) {
-        return new TranslationKey(modKey, ArrayUtils.addAll(subKey, Arrays.stream(subKeys).map(subKey -> {
-            return subKey.split(Pattern.quote(DELIMITER));
-        }).flatMap(Arrays::stream).toArray(String[]::new)));
+        StringBuilder subKeyBuilder = new StringBuilder();
+        if (subKey != null) {
+            subKeyBuilder.append(subKey);
+        }
+        for (String subKey : subKeys) {
+            subKeyBuilder.append(DELIMITER).append(subKey);
+        }
+        return new TranslationKey(modKey, subKeyBuilder.toString());
     }
 
     public Optional<TranslationKey[]> appendTooltip() {