ClothBasicMathExtension.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package me.lortseam.completeconfig.extensions.clothbasicmath;
  2. import com.google.common.collect.ImmutableList;
  3. import me.lortseam.completeconfig.data.ColorEntry;
  4. import me.lortseam.completeconfig.data.entry.Transformation;
  5. import me.lortseam.completeconfig.extensions.CompleteConfigExtension;
  6. import me.lortseam.completeconfig.gui.cloth.GuiRegistry;
  7. import me.shedaniel.math.Color;
  8. import net.fabricmc.loader.api.FabricLoader;
  9. import org.spongepowered.configurate.serialize.TypeSerializerCollection;
  10. import java.util.Collection;
  11. public final class ClothBasicMathExtension implements CompleteConfigExtension {
  12. private ClothBasicMathExtension() {
  13. if (FabricLoader.getInstance().isModLoaded("cloth-config2")) {
  14. GuiRegistry.addGlobalRegistrar(registry -> registry.registerColorProvider((ColorEntry<Color> entry) -> GuiRegistry.build(
  15. builder -> builder
  16. .startColorField(entry.getText(), entry.getValue())
  17. .setAlphaMode(entry.isAlphaMode())
  18. .setDefaultValue(entry.getDefaultValue().getColor())
  19. .setTooltip(entry.getTooltip())
  20. .setSaveConsumer2(entry::setValue),
  21. entry.requiresRestart()
  22. ), true, Color.class));
  23. }
  24. }
  25. @Override
  26. public TypeSerializerCollection getTypeSerializers() {
  27. return TypeSerializerCollection.builder()
  28. .registerExact(ColorSerializer.INSTANCE)
  29. .build();
  30. }
  31. @Override
  32. public Collection<Transformation> getTransformations() {
  33. return ImmutableList.of(
  34. Transformation.byType(Color.class).transforms(origin -> new ColorEntry<>(origin, true))
  35. );
  36. }
  37. }