From fb3fc9173aac7e3bfa374fefb9cff1478b866ae8 Mon Sep 17 00:00:00 2001 From: 90 Date: Fri, 29 Dec 2023 19:07:26 +0000 Subject: [PATCH] Vastly condense directional cache --- .../misc/DirectionalCapabilityCache.java | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/src/main/java/gripe/_90/aecapfix/misc/DirectionalCapabilityCache.java b/src/main/java/gripe/_90/aecapfix/misc/DirectionalCapabilityCache.java index 7932839..86ea703 100644 --- a/src/main/java/gripe/_90/aecapfix/misc/DirectionalCapabilityCache.java +++ b/src/main/java/gripe/_90/aecapfix/misc/DirectionalCapabilityCache.java @@ -6,29 +6,14 @@ import net.minecraftforge.common.util.LazyOptional; public class DirectionalCapabilityCache { - private final Map> directional = new HashMap<>(); - private LazyOptional nullDirection = LazyOptional.empty(); + private final Map> holders = new HashMap<>(); public LazyOptional getOrCache(Direction side, LazyOptional toCache) { - if (toCache.isPresent()) { - if (side == null) { - if (!nullDirection.isPresent()) { - nullDirection = toCache.cast(); - } - - return nullDirection; - } else { - directional.putIfAbsent(side, toCache.cast()); - return directional.get(side); - } - } else { - return LazyOptional.empty(); - } + return holders.computeIfAbsent(side == null ? "null" : side.getName(), k -> toCache.cast()); } public void invalidate() { - directional.forEach((direction, holder) -> holder.invalidate()); - directional.clear(); - nullDirection.invalidate(); + holders.forEach((side, holder) -> holder.invalidate()); + holders.clear(); } }