From b2029cee73db2a93204b05c981f0d17ff2260303 Mon Sep 17 00:00:00 2001 From: xiewuzhiying Date: Sun, 17 Nov 2024 06:40:37 +0800 Subject: [PATCH] Automatically disable block face culling for ships on Sodium #1003 --- .../sodium/MixinDefaultChunkRenderer.java | 24 +++++++++++++++++++ .../valkyrienskies-common.mixins.json | 1 + 2 files changed, 25 insertions(+) create mode 100644 common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/sodium/MixinDefaultChunkRenderer.java diff --git a/common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/sodium/MixinDefaultChunkRenderer.java b/common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/sodium/MixinDefaultChunkRenderer.java new file mode 100644 index 00000000..5e25a104 --- /dev/null +++ b/common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/sodium/MixinDefaultChunkRenderer.java @@ -0,0 +1,24 @@ +package org.valkyrienskies.mod.mixin.mod_compat.sodium; + +import me.jellysquid.mods.sodium.client.model.quad.properties.ModelQuadFacing; +import me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer; +import net.minecraft.client.Minecraft; +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.CallbackInfoReturnable; +import org.valkyrienskies.mod.common.VSGameUtilsKt; + +@Mixin(DefaultChunkRenderer.class) +public abstract class MixinDefaultChunkRenderer { + @Inject( + method = "getVisibleFaces", + at = @At("HEAD"), + cancellable = true, + remap = false + ) + private static void cancelBlockFaceCulling(final int originX, final int originY, final int originZ, final int chunkX, final int chunkY, final int chunkZ, final CallbackInfoReturnable cir) { + if(VSGameUtilsKt.isChunkInShipyard(Minecraft.getInstance().level, chunkX, chunkZ)) + cir.setReturnValue(ModelQuadFacing.ALL); + } +} diff --git a/common/src/main/resources/valkyrienskies-common.mixins.json b/common/src/main/resources/valkyrienskies-common.mixins.json index 4fda08e4..29e0f318 100644 --- a/common/src/main/resources/valkyrienskies-common.mixins.json +++ b/common/src/main/resources/valkyrienskies-common.mixins.json @@ -184,6 +184,7 @@ "mod_compat.optifine.RenderChunkInfoAccessorOptifine", "mod_compat.optifine_vanilla.MixinLevelRenderer", "mod_compat.sodium.MixinChunkTracker", + "mod_compat.sodium.MixinDefaultChunkRenderer", "mod_compat.sodium.MixinRenderSectionManager", "mod_compat.sodium.MixinSodiumWorldRenderer", "mod_compat.sound_physics_remastered.MixinSoundPhysics",