From 099b36de7c3f1877e4cc611a5c14da5cd1ce679f Mon Sep 17 00:00:00 2001 From: WakelessSloth56 Date: Wed, 26 Oct 2022 23:01:34 +0800 Subject: [PATCH] feat(game.gui): OverlayUtils --- .../arnicalib/game/gui/OverlayUtils.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/main/java/org/auioc/mcmod/arnicalib/game/gui/OverlayUtils.java diff --git a/src/main/java/org/auioc/mcmod/arnicalib/game/gui/OverlayUtils.java b/src/main/java/org/auioc/mcmod/arnicalib/game/gui/OverlayUtils.java new file mode 100644 index 00000000..1a29fb89 --- /dev/null +++ b/src/main/java/org/auioc/mcmod/arnicalib/game/gui/OverlayUtils.java @@ -0,0 +1,39 @@ +package org.auioc.mcmod.arnicalib.game.gui; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import org.auioc.mcmod.arnicalib.base.word.WordUtils; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.gui.OverlayRegistry; +import net.minecraftforge.client.gui.OverlayRegistry.OverlayEntry; + +@OnlyIn(Dist.CLIENT) +public class OverlayUtils { + + public static Map> partitionByEnabled(List entries) { + return entries.stream().collect(Collectors.partitioningBy(OverlayEntry::isEnabled)); + } + + public static void toggle(OverlayEntry entry) { + OverlayRegistry.enableOverlay(entry.getOverlay(), !entry.isEnabled()); + } + + public static void toggle(List entries) { + entries.stream().forEach(OverlayUtils::toggle); + } + + public static void enableOverlays(List entries, boolean enable) { + entries.stream().map(OverlayEntry::getOverlay).forEach((e) -> OverlayRegistry.enableOverlay(e, enable)); + } + + public static String formatName(String name) { + return WordUtils.toCamelCase(name.toLowerCase().replace(" ", "_")); + } + + public static String getName(OverlayEntry entry) { + return formatName(entry.getDisplayName()); + } + +}