From 46127b50f367a5fc5bb44c35b8586eeb25e94967 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 6 Dec 2023 20:43:54 -0500 Subject: [PATCH] Invalidate blockstate cache in place of initCache --- .../perf/reduce_blockstate_cache_rebuilds/BlocksMixin.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/reduce_blockstate_cache_rebuilds/BlocksMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/reduce_blockstate_cache_rebuilds/BlocksMixin.java index 718f60bf..fe28dff6 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/reduce_blockstate_cache_rebuilds/BlocksMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/reduce_blockstate_cache_rebuilds/BlocksMixin.java @@ -3,6 +3,7 @@ package org.embeddedt.modernfix.common.mixin.perf.reduce_blockstate_cache_rebuil import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import org.embeddedt.modernfix.blockstate.BlockStateCacheHandler; +import org.embeddedt.modernfix.duck.IBlockState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; @@ -21,6 +22,7 @@ public class BlocksMixin { // require = 0 due to Forge removing the BLOCK_STATE_REGISTRY init here @Redirect(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/state/BlockState;initCache()V"), require = 0) private static void skipCacheInit(BlockState state) { - /* no-op, our dynamic logic handles everything properly (including the 1.19.4+ fluidState, etc. caching) */ + // Mark the cache as invalid + ((IBlockState)state).clearCache(); } }