|
@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.MoreCollectors;
|
|
|
import com.google.common.reflect.TypeToken;
|
|
|
import me.lortseam.completeconfig.data.BoundedEntry;
|
|
|
+import me.lortseam.completeconfig.data.ColorEntry;
|
|
|
import me.lortseam.completeconfig.data.Entry;
|
|
|
import me.lortseam.completeconfig.data.EnumEntry;
|
|
|
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
|
|
@@ -12,6 +13,7 @@ import me.shedaniel.clothconfig2.impl.builders.DropdownMenuBuilder;
|
|
|
import me.shedaniel.clothconfig2.impl.builders.FieldBuilder;
|
|
|
import net.fabricmc.api.EnvType;
|
|
|
import net.fabricmc.api.Environment;
|
|
|
+import net.minecraft.text.TextColor;
|
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
|
|
|
|
import java.lang.reflect.Type;
|
|
@@ -61,6 +63,10 @@ public class GuiRegistry {
|
|
|
registerProvider(provider, entry -> entry instanceof EnumEntry && ((EnumEntry<?>) entry).getDisplayType() == enumDisplayType);
|
|
|
}
|
|
|
|
|
|
+ private void registerColorProvider(GuiProvider<? extends ColorEntry<?>> provider, boolean alphaModeSupported, Type... types) {
|
|
|
+ registerProvider(provider, entry -> entry instanceof ColorEntry<?> && (!((ColorEntry) entry).isAlphaMode() || alphaModeSupported), types);
|
|
|
+ }
|
|
|
+
|
|
|
private void registerDefaultProviders() {
|
|
|
registerProvider((Entry<Boolean> entry) -> build(
|
|
|
builder -> builder
|
|
@@ -96,6 +102,15 @@ public class GuiRegistry {
|
|
|
.setSaveConsumer(entry::setValue),
|
|
|
entry.requiresRestart()
|
|
|
), true, int.class, Integer.class);
|
|
|
+ registerColorProvider((ColorEntry<Integer> entry) -> build(
|
|
|
+ builder -> builder
|
|
|
+ .startColorField(entry.getText(), entry.getValue())
|
|
|
+ .setDefaultValue(entry.getDefaultValue())
|
|
|
+ .setAlphaMode(entry.isAlphaMode())
|
|
|
+ .setTooltip(entry.getTooltip())
|
|
|
+ .setSaveConsumer(entry::setValue),
|
|
|
+ entry.requiresRestart()
|
|
|
+ ), true, int.class, Integer.class);
|
|
|
registerProvider((Entry<Long> entry) -> build(
|
|
|
builder -> builder
|
|
|
.startLongField(entry.getText(), entry.getValue())
|
|
@@ -230,6 +245,14 @@ public class GuiRegistry {
|
|
|
.setSaveConsumer(entry::setValue),
|
|
|
entry.requiresRestart()
|
|
|
), new TypeToken<List<String>>() {}.getType());
|
|
|
+ registerColorProvider((ColorEntry<TextColor> entry) -> build(
|
|
|
+ builder -> builder
|
|
|
+ .startColorField(entry.getText(), entry.getValue())
|
|
|
+ .setDefaultValue(entry.getDefaultValue())
|
|
|
+ .setTooltip(entry.getTooltip())
|
|
|
+ .setSaveConsumer3(entry::setValue),
|
|
|
+ entry.requiresRestart()
|
|
|
+ ), false, TextColor.class);
|
|
|
}
|
|
|
|
|
|
<E extends Entry<?>> Optional<GuiProvider<E>> getProvider(E entry) {
|