From 15e5a04ffde2fbb855fc1f592172d7b2edd34cfb Mon Sep 17 00:00:00 2001 From: TomTheFurry Date: Sat, 2 Apr 2022 13:49:28 +0800 Subject: [PATCH] Maybe fixed colormatic's mod compat? --- .../lod/common/wrappers/block/TintGetterOverrideFast.java | 6 +++++- .../lod/common/wrappers/block/TintGetterOverrideSmooth.java | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideFast.java b/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideFast.java index 8be87ce91..8ce042b0e 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideFast.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideFast.java @@ -49,7 +49,11 @@ public class TintGetterOverrideFast implements BlockAndTintGetter { @Override public int getBlockTint(BlockPos blockPos, ColorResolver colorResolver) { Biome b = _getBiome(blockPos); - return tintCaches.get(colorResolver).computeIfAbsent(b, (key) -> colorResolver.getColor(b, blockPos.getX(), blockPos.getZ())); + ConcurrentHashMap concurrentHashMap = this.tintCaches.get(colorResolver); + if (concurrentHashMap == null) { // This is a compat fix for Colormatic's mixin + this.tintCaches.put(colorResolver, concurrentHashMap = new ConcurrentHashMap<>()); + } + return concurrentHashMap.computeIfAbsent(b, (key) -> colorResolver.getColor(b, blockPos.getX(), blockPos.getZ())); } @Override diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideSmooth.java b/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideSmooth.java index 760f35aad..54dc28e33 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideSmooth.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideSmooth.java @@ -72,6 +72,10 @@ public class TintGetterOverrideSmooth implements BlockAndTintGetter { @Override public int getBlockTint(BlockPos blockPos, ColorResolver colorResolver) { BlockTintCache blockTintCache = this.tintCaches.get(colorResolver); + if (blockTintCache == null) { // This is a compat fix for Colormatic's mixin + this.tintCaches.put(colorResolver, + blockTintCache = new BlockTintCache((pos) -> calculateBlockTint(pos, colorResolver))); + } return blockTintCache.getColor(blockPos); }