diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 65a8135913..09a02047d7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ loom = "1.14-SNAPSHOT" # Baritone (https://github.com/MeteorDevelopment/baritone) baritone = "1.21.10-SNAPSHOT" # Sodium (https://github.com/CaffeineMC/sodium-fabric) -sodium = "mc1.21.11-0.8.0-fabric" +sodium = "mc1.21.11-0.8.7-fabric" # Lithium (https://github.com/CaffeineMC/lithium-fabric) lithium = "mc1.21.11-0.21.3-fabric" # Iris (https://github.com/IrisShaders/Iris) diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/sodium/SodiumBlockOcclusionCacheMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/sodium/SodiumBlockOcclusionCacheMixin.java index 7151983142..42f9a83e52 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/sodium/SodiumBlockOcclusionCacheMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/sodium/SodiumBlockOcclusionCacheMixin.java @@ -8,43 +8,43 @@ import com.llamalad7.mixinextras.injector.ModifyReturnValue; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Xray; -import net.caffeinemc.mods.sodium.client.render.chunk.compile.pipeline.BlockOcclusionCache; +import net.caffeinemc.mods.sodium.client.render.model.AbstractBlockRenderContext; +import net.caffeinemc.mods.sodium.client.world.LevelSlice; import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.world.BlockView; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; 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.callback.CallbackInfoReturnable; -@Mixin(value = BlockOcclusionCache.class, remap = false) +@Mixin(value = AbstractBlockRenderContext.class, remap = false) public abstract class SodiumBlockOcclusionCacheMixin { - @Unique - private Xray xray; + + @Shadow protected BlockState state; + @Shadow protected BlockPos pos; + @Shadow protected LevelSlice slice; + + @Unique private Xray xray; @Inject(method = "", at = @At("TAIL")) private void onInit(CallbackInfo info) { xray = Modules.get().get(Xray.class); } - // For More Culling compatibility - runs before More Culling's inject to force-render whitelisted Xray blocks @Inject(method = "shouldDrawSide", at = @At("HEAD"), cancellable = true) - private void meteor$forceXrayFace(BlockState state, BlockView view, BlockPos pos, Direction facing, - CallbackInfoReturnable cir) { + private void meteor$forceXrayFace(Direction facing, CallbackInfoReturnable cir) { if (xray != null && xray.isActive() && !xray.isBlocked(state.getBlock(), null)) { cir.setReturnValue(true); } } @ModifyReturnValue(method = "shouldDrawSide", at = @At("RETURN")) - private boolean shouldDrawSide(boolean original, BlockState state, BlockView view, BlockPos pos, Direction facing) { - if (xray.isActive()) { - return xray.modifyDrawSide(state, view, pos, facing, original); - } - - return original; + private boolean shouldDrawSide(boolean original, Direction facing) { + if (!xray.isActive()) return original; + return xray.modifyDrawSide(state, slice, pos, facing, original); } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 563042a990..5cbeb61d70 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -57,7 +57,7 @@ "optifabric": "*", "feather": "*", "origins": "*", - "sodium": "<0.7.0", + "sodium": "<0.8.7", "morechathistory": "*", "lithium": "<0.21.3" }