Fixed Leaves option
This commit is contained in:
1 parent
96981494a4
commit
435fd63cf5
1 file changed
+18
-10
+18
-10
@@ -6,15 +6,15 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.LeavesBlock;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.option.GraphicsMode;
|
||||
import net.minecraft.client.render.RenderLayer;
|
||||
import net.minecraft.client.render.RenderLayers;
|
||||
import net.minecraft.fluid.Fluid;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Mutable;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.*;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -36,11 +36,19 @@ public class MixinRenderLayers {
|
||||
BLOCKS = new Reference2ReferenceOpenHashMap<>(BLOCKS);
|
||||
FLUIDS = new Reference2ReferenceOpenHashMap<>(FLUIDS);
|
||||
}
|
||||
@Inject(method = "getBlockLayer(Lnet/minecraft/block/BlockState;)Lnet/minecraft/client/render/RenderLayer;", at = @At(value = "RETURN"), cancellable = true)
|
||||
private static void redirectLeavesGraphics(BlockState state, CallbackInfoReturnable<RenderLayer> cir) {
|
||||
if (state.getBlock() instanceof LeavesBlock) {
|
||||
boolean fancyLeaves = SodiumClientMod.options().quality.leavesQuality.isFancy(MinecraftClient.getInstance().options.graphicsMode);
|
||||
cir.setReturnValue(fancyLeaves ? RenderLayer.getCutoutMipped() : RenderLayer.getSolid());
|
||||
}
|
||||
|
||||
@Unique
|
||||
private static boolean leavesFancy;
|
||||
|
||||
@Redirect(
|
||||
method = { "getBlockLayer", "getMovingBlockLayer", "canRenderInLayer" },
|
||||
at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/RenderLayers;fancyGraphicsOrBetter:Z"))
|
||||
private static boolean redirectLeavesShouldBeFancy() {
|
||||
return leavesFancy;
|
||||
}
|
||||
|
||||
@Inject(method = "setFancyGraphicsOrBetter", at = @At("RETURN"))
|
||||
private static void onSetFancyGraphicsOrBetter(boolean fancyGraphicsOrBetter, CallbackInfo ci) {
|
||||
leavesFancy = SodiumClientMod.options().quality.leavesQuality.isFancy(fancyGraphicsOrBetter ? GraphicsMode.FANCY : GraphicsMode.FAST);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user