Use less invasive mixin on Blocks.rebuildCache()

Related: #99
This commit is contained in:
embeddedt 2023-05-15 22:19:54 -04:00
parent c1c9c02ff4
commit f22dbf5df1
No known key found for this signature in database
GPG Key ID: A69433EC199B5613

View File

@ -4,14 +4,15 @@ import net.minecraft.world.level.block.Blocks;
import org.embeddedt.modernfix.blockstate.BlockStateCacheHandler;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.ModifyArg;
@Mixin(Blocks.class)
import java.util.function.Consumer;
@Mixin(value = Blocks.class, priority = 1100)
public class BlocksMixin {
@Inject(method = "rebuildCache", at = @At("HEAD"), cancellable = true)
private static void rebuildParallel(CallbackInfo ci) {
ci.cancel();
@ModifyArg(method = "rebuildCache", at = @At(value = "INVOKE", target = "Lnet/minecraft/core/IdMapper;forEach(Ljava/util/function/Consumer;)V"), index = 0)
private static Consumer getEmptyConsumer(Consumer original) {
BlockStateCacheHandler.rebuildParallel(true);
return o -> {};
}
}