diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-03-04 04:08:35 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-04 04:08:35 +0000 |
commit | f282d56b805c1e13d6d21b51caee8901b1d31eab (patch) | |
tree | 1b8167469161e31afe733577c32c2f3304769668 /src/main/java/de/hysky/skyblocker/config/ConfigUtils.java | |
parent | c1359d6c542c4756e5a283d557a4c3980a1281ba (diff) | |
parent | a087eb62b5a79e3f5b05676ce9cbd70c89c8ba9e (diff) | |
download | Skyblocker-f282d56b805c1e13d6d21b51caee8901b1d31eab.tar.gz Skyblocker-f282d56b805c1e13d6d21b51caee8901b1d31eab.tar.bz2 Skyblocker-f282d56b805c1e13d6d21b51caee8901b1d31eab.zip |
Merge pull request #578 from AzureAaron/image-loader
Image Repo Loader
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/config/ConfigUtils.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/config/ConfigUtils.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/ConfigUtils.java b/src/main/java/de/hysky/skyblocker/config/ConfigUtils.java index 8b0f27a7..781f7f15 100644 --- a/src/main/java/de/hysky/skyblocker/config/ConfigUtils.java +++ b/src/main/java/de/hysky/skyblocker/config/ConfigUtils.java @@ -1,16 +1,26 @@ package de.hysky.skyblocker.config; import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.api.OptionDescription; import dev.isxander.yacl3.api.controller.*; import net.minecraft.text.Text; import net.minecraft.util.Formatting; +import net.minecraft.util.Identifier; + +import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; + +import de.hysky.skyblocker.SkyblockerMod; +import de.hysky.skyblocker.utils.FileUtils; +import java.nio.file.Path; import java.util.function.Function; public class ConfigUtils { public static final ValueFormatter<Formatting> FORMATTING_FORMATTER = formatting -> Text.literal(StringUtils.capitalize(formatting.getName().replaceAll("_", " "))); public static final ValueFormatter<Float> FLOAT_TWO_FORMATTER = value -> Text.literal(String.format("%,.2f", value).replaceAll("[\u00a0\u202F]", " ")); + private static final Path IMAGE_DIRECTORY = ImageRepoLoader.REPO_DIRECTORY.resolve("Skyblocker-Assets-images"); public static BooleanControllerBuilder createBooleanController(Option<Boolean> opt) { return BooleanControllerBuilder.create(opt).yesNoFormatter().coloured(true); @@ -34,4 +44,15 @@ public class ConfigUtils { public static <E extends Enum<E>> Function<Option<E>, ControllerBuilder<E>> getEnumDropdownControllerFactory(ValueFormatter<E> formatter) { return opt -> EnumDropdownControllerBuilder.create(opt).formatValue(formatter); } + + /** + * Creates an {@link OptionDescription} with an image and text. + */ + @SafeVarargs + public static OptionDescription withImage(Path imagePath, @Nullable Text... texts) { + return OptionDescription.createBuilder() + .text(ArrayUtils.isNotEmpty(texts) ? texts : new Text[] {}) + .image(IMAGE_DIRECTORY.resolve(imagePath), new Identifier(SkyblockerMod.NAMESPACE, "config_image_" + FileUtils.normalizePath(imagePath))) + .build(); + } } |