|
@@ -18,16 +18,14 @@ import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
-import java.util.function.Consumer;
|
|
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
@Environment(EnvType.CLIENT)
|
|
public class GuiRegistry {
|
|
public class GuiRegistry {
|
|
|
|
|
|
- //TODO: Only used for setting requireRestart cause that method returns void, should be done differently
|
|
|
|
- public static <T, A extends AbstractConfigListEntry> A build(Consumer<FieldBuilder<T, A>> fieldBuilderModifier, Function<ConfigEntryBuilder, FieldBuilder<T, A>> builder) {
|
|
|
|
|
|
+ public static <T, A extends AbstractConfigListEntry> A build(Function<ConfigEntryBuilder, FieldBuilder<T, A>> builder, boolean requiresRestart) {
|
|
FieldBuilder<T, A> fieldBuilder = builder.apply(ConfigEntryBuilder.create());
|
|
FieldBuilder<T, A> fieldBuilder = builder.apply(ConfigEntryBuilder.create());
|
|
- fieldBuilderModifier.accept(fieldBuilder);
|
|
|
|
|
|
+ fieldBuilder.requireRestart(requiresRestart);
|
|
return fieldBuilder.build();
|
|
return fieldBuilder.build();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -74,122 +72,121 @@ public class GuiRegistry {
|
|
|
|
|
|
private void registerDefaultProviders() {
|
|
private void registerDefaultProviders() {
|
|
registerProvider((GuiProvider<Boolean>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerProvider((GuiProvider<Boolean>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startBooleanToggle(text, value)
|
|
.startBooleanToggle(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), boolean.class, Boolean.class);
|
|
), boolean.class, Boolean.class);
|
|
registerProvider((GuiProvider<Integer>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerProvider((GuiProvider<Integer>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startIntField(text, value)
|
|
.startIntField(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), int.class, Integer.class);
|
|
), int.class, Integer.class);
|
|
registerBoundedProvider((GuiProvider<Integer>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerBoundedProvider((GuiProvider<Integer>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startIntField(text, value)
|
|
.startIntField(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setMin(extras.getBounds().getMin())
|
|
.setMin(extras.getBounds().getMin())
|
|
.setMax(extras.getBounds().getMax())
|
|
.setMax(extras.getBounds().getMax())
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), false, int.class, Integer.class);
|
|
), false, int.class, Integer.class);
|
|
registerBoundedProvider((GuiProvider<Integer>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerBoundedProvider((GuiProvider<Integer>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startIntSlider(text, value, extras.getBounds().getMin(), extras.getBounds().getMax())
|
|
.startIntSlider(text, value, extras.getBounds().getMin(), extras.getBounds().getMax())
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), true, int.class, Integer.class);
|
|
), true, int.class, Integer.class);
|
|
registerProvider((GuiProvider<Long>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerProvider((GuiProvider<Long>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startLongField(text, value)
|
|
.startLongField(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), long.class, Long.class);
|
|
), long.class, Long.class);
|
|
registerBoundedProvider((GuiProvider<Long>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerBoundedProvider((GuiProvider<Long>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startLongField(text, value)
|
|
.startLongField(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setMin(extras.getBounds().getMin())
|
|
.setMin(extras.getBounds().getMin())
|
|
.setMax(extras.getBounds().getMax())
|
|
.setMax(extras.getBounds().getMax())
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), false, long.class, Long.class);
|
|
), false, long.class, Long.class);
|
|
registerBoundedProvider((GuiProvider<Long>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerBoundedProvider((GuiProvider<Long>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startLongSlider(text, value, extras.getBounds().getMin(), extras.getBounds().getMax())
|
|
.startLongSlider(text, value, extras.getBounds().getMin(), extras.getBounds().getMax())
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), true, long.class, Long.class);
|
|
), true, long.class, Long.class);
|
|
registerProvider((GuiProvider<Float>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerProvider((GuiProvider<Float>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startFloatField(text, value)
|
|
.startFloatField(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), float.class, Float.class);
|
|
), float.class, Float.class);
|
|
registerBoundedProvider((GuiProvider<Float>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerBoundedProvider((GuiProvider<Float>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startFloatField(text, value)
|
|
.startFloatField(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setMin(extras.getBounds().getMin())
|
|
.setMin(extras.getBounds().getMin())
|
|
.setMax(extras.getBounds().getMax())
|
|
.setMax(extras.getBounds().getMax())
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), false, float.class, Float.class);
|
|
), false, float.class, Float.class);
|
|
registerProvider((GuiProvider<Double>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerProvider((GuiProvider<Double>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startDoubleField(text, value)
|
|
.startDoubleField(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), double.class, Double.class);
|
|
), double.class, Double.class);
|
|
registerBoundedProvider((GuiProvider<Double>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerBoundedProvider((GuiProvider<Double>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startDoubleField(text, value)
|
|
.startDoubleField(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setMin(extras.getBounds().getMin())
|
|
.setMin(extras.getBounds().getMin())
|
|
.setMax(extras.getBounds().getMax())
|
|
.setMax(extras.getBounds().getMax())
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), false, double.class, Double.class);
|
|
), false, double.class, Double.class);
|
|
registerProvider((GuiProvider<String>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerProvider((GuiProvider<String>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startStrField(text, value)
|
|
.startStrField(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), String.class);
|
|
), String.class);
|
|
registerEnumProvider((GuiProvider<? extends Enum<?>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerEnumProvider((GuiProvider<? extends Enum<?>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startEnumSelector(text, (Class<Enum<?>>) field.getType(), value)
|
|
.startEnumSelector(text, (Class<Enum<?>>) field.getType(), value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
.setEnumNameProvider(extras.getEnumOptions().getNameProvider())
|
|
.setEnumNameProvider(extras.getEnumOptions().getNameProvider())
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), EnumOptions.DisplayType.BUTTON);
|
|
), EnumOptions.DisplayType.BUTTON);
|
|
registerEnumProvider((GuiProvider<? extends Enum>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> {
|
|
registerEnumProvider((GuiProvider<? extends Enum>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> {
|
|
List<Enum> enumValues = Arrays.asList(((Class<? extends Enum>) field.getType()).getEnumConstants());
|
|
List<Enum> enumValues = Arrays.asList(((Class<? extends Enum>) field.getType()).getEnumConstants());
|
|
return build(
|
|
return build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startDropdownMenu(text, DropdownMenuBuilder.TopCellElementBuilder.of(
|
|
.startDropdownMenu(text, DropdownMenuBuilder.TopCellElementBuilder.of(
|
|
value,
|
|
value,
|
|
@@ -198,48 +195,49 @@ public class GuiRegistry {
|
|
), DropdownMenuBuilder.CellCreatorBuilder.of(extras.getEnumOptions().getNameProvider()))
|
|
), DropdownMenuBuilder.CellCreatorBuilder.of(extras.getEnumOptions().getNameProvider()))
|
|
.setSelections(enumValues)
|
|
.setSelections(enumValues)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
);
|
|
);
|
|
}, EnumOptions.DisplayType.DROPDOWN);
|
|
}, EnumOptions.DisplayType.DROPDOWN);
|
|
registerGenericProvider((GuiProvider<List<Integer>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerGenericProvider((GuiProvider<List<Integer>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startIntList(text, value)
|
|
.startIntList(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), List.class, Integer.class);
|
|
), List.class, Integer.class);
|
|
registerGenericProvider((GuiProvider<List<Long>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerGenericProvider((GuiProvider<List<Long>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startLongList(text, value)
|
|
.startLongList(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), List.class, Long.class);
|
|
), List.class, Long.class);
|
|
registerGenericProvider((GuiProvider<List<Float>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerGenericProvider((GuiProvider<List<Float>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startFloatList(text, value)
|
|
.startFloatList(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), List.class, Float.class);
|
|
), List.class, Float.class);
|
|
registerGenericProvider((GuiProvider<List<Double>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerGenericProvider((GuiProvider<List<Double>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startDoubleList(text, value)
|
|
.startDoubleList(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), List.class, Double.class);
|
|
), List.class, Double.class);
|
|
registerGenericProvider((GuiProvider<List<String>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
registerGenericProvider((GuiProvider<List<String>>) (text, field, value, defaultValue, tooltip, extras, saveConsumer, requiresRestart) -> build(
|
|
- builder -> builder.requireRestart(requiresRestart),
|
|
|
|
builder -> builder
|
|
builder -> builder
|
|
.startStrList(text, value)
|
|
.startStrList(text, value)
|
|
.setDefaultValue(defaultValue)
|
|
.setDefaultValue(defaultValue)
|
|
.setTooltip(tooltip)
|
|
.setTooltip(tooltip)
|
|
- .setSaveConsumer(saveConsumer)
|
|
|
|
|
|
+ .setSaveConsumer(saveConsumer),
|
|
|
|
+ requiresRestart
|
|
), List.class, String.class);
|
|
), List.class, String.class);
|
|
}
|
|
}
|
|
|
|
|