aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl3/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/dev/isxander/yacl3/gui')
-rw-r--r--src/main/java/dev/isxander/yacl3/gui/image/ImageRendererManager.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/main/java/dev/isxander/yacl3/gui/image/ImageRendererManager.java b/src/main/java/dev/isxander/yacl3/gui/image/ImageRendererManager.java
index 0c9b8a3..5674c85 100644
--- a/src/main/java/dev/isxander/yacl3/gui/image/ImageRendererManager.java
+++ b/src/main/java/dev/isxander/yacl3/gui/image/ImageRendererManager.java
@@ -44,8 +44,10 @@ public class ImageRendererManager {
}
@SuppressWarnings("unchecked")
- public static <T extends ImageRenderer> CompletableFuture<T> registerImage(ResourceLocation id, ImageRendererFactory factory) {
- System.out.println(PRELOADED_IMAGE_CACHE.get(id));
+ public static <T extends ImageRenderer> CompletableFuture<T> registerOrGetImage(ResourceLocation id, Supplier<ImageRendererFactory> factorySupplier) {
+ if (PRELOADED_IMAGE_CACHE.containsKey(id)) {
+ return CompletableFuture.completedFuture((T) PRELOADED_IMAGE_CACHE.get(id));
+ }
if (IMAGE_CACHE.containsKey(id)) {
return (CompletableFuture<T>) IMAGE_CACHE.get(id);
@@ -54,6 +56,7 @@ public class ImageRendererManager {
var future = new CompletableFuture<ImageRenderer>();
IMAGE_CACHE.put(id, future);
+ ImageRendererFactory factory = factorySupplier.get();
SINGLE_THREAD_EXECUTOR.submit(() -> {
Supplier<Optional<ImageRendererFactory.ImageSupplier>> supplier =
factory.requiresOffThreadPreparation()
@@ -66,6 +69,11 @@ public class ImageRendererManager {
return (CompletableFuture<T>) future;
}
+ @Deprecated
+ public static <T extends ImageRenderer> CompletableFuture<T> registerImage(ResourceLocation id, ImageRendererFactory factory) {
+ return registerOrGetImage(id, () -> factory);
+ }
+
private static <T extends ImageRenderer> void completeImageFactory(ResourceLocation id, Supplier<Optional<ImageRendererFactory.ImageSupplier>> supplier, CompletableFuture<ImageRenderer> future) {
RenderSystem.assertOnRenderThread();