|
1 | | -///* |
2 | | -// * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). |
3 | | -// * Copyright (c) Meteor Development. |
4 | | -// */ |
5 | | -// |
6 | | -//package meteordevelopment.meteorclient.mixin.indigo; |
7 | | -// |
8 | | -//import meteordevelopment.meteorclient.systems.modules.render.Xray; |
9 | | -//import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MutableQuadViewImpl; |
10 | | -//import net.fabricmc.fabric.impl.client.indigo.renderer.render.AbstractTerrainRenderContext; |
11 | | -//import net.fabricmc.fabric.impl.client.indigo.renderer.render.BlockRenderInfo; |
12 | | -//import org.spongepowered.asm.mixin.Final; |
13 | | -//import org.spongepowered.asm.mixin.Mixin; |
14 | | -//import org.spongepowered.asm.mixin.Shadow; |
15 | | -//import org.spongepowered.asm.mixin.Unique; |
16 | | -//import org.spongepowered.asm.mixin.injection.At; |
17 | | -//import org.spongepowered.asm.mixin.injection.Inject; |
18 | | -//import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
19 | | -// |
20 | | -//@SuppressWarnings("UnstableApiUsage") |
21 | | -//@Mixin(AbstractTerrainRenderContext.class) |
22 | | -//public abstract class AbstractTerrainRenderContextMixin { |
23 | | -// @Final @Shadow(remap = false) |
24 | | -// protected BlockRenderInfo blockInfo; |
25 | | -// |
26 | | -// @Inject(method = "bufferQuad", at = @At(value = "INVOKE", target = "Lnet/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractTerrainRenderContext;bufferQuad(Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;Lnet/minecraft/client/render/VertexConsumer;)V"), cancellable = true) |
27 | | -// private void onBufferQuad(MutableQuadViewImpl quad, CallbackInfo ci) { |
28 | | -// int alpha = Xray.getAlpha(blockInfo.blockState, blockInfo.blockPos); |
29 | | -// |
30 | | -// if (alpha == 0) ci.cancel(); |
31 | | -// else if (alpha != -1) { |
32 | | -// for (int i = 0; i < 4; i++) { |
33 | | -// quad.color(i, rewriteQuadAlpha(quad.color(i), alpha)); |
34 | | -// } |
35 | | -// } |
36 | | -// } |
37 | | -// |
38 | | -// @Unique |
39 | | -// private int rewriteQuadAlpha(int color, int alpha) { |
40 | | -// return ((alpha & 0xFF) << 24) | (color & 0x00FFFFFF); |
41 | | -// } |
42 | | -//} |
| 1 | +/* |
| 2 | + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). |
| 3 | + * Copyright (c) Meteor Development. |
| 4 | + */ |
| 5 | + |
| 6 | +package meteordevelopment.meteorclient.mixin.indigo; |
| 7 | + |
| 8 | +import meteordevelopment.meteorclient.systems.modules.render.Xray; |
| 9 | +import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MutableQuadViewImpl; |
| 10 | +import net.fabricmc.fabric.impl.client.indigo.renderer.render.AbstractTerrainRenderContext; |
| 11 | +import net.fabricmc.fabric.impl.client.indigo.renderer.render.BlockRenderInfo; |
| 12 | +import org.spongepowered.asm.mixin.Final; |
| 13 | +import org.spongepowered.asm.mixin.Mixin; |
| 14 | +import org.spongepowered.asm.mixin.Shadow; |
| 15 | +import org.spongepowered.asm.mixin.Unique; |
| 16 | +import org.spongepowered.asm.mixin.injection.At; |
| 17 | +import org.spongepowered.asm.mixin.injection.Inject; |
| 18 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
| 19 | + |
| 20 | +@Mixin(AbstractTerrainRenderContext.class) |
| 21 | +public abstract class AbstractTerrainRenderContextMixin { |
| 22 | + @Final @Shadow(remap = false) |
| 23 | + protected BlockRenderInfo blockInfo; |
| 24 | + |
| 25 | + @Inject(method = "bufferQuad", at = @At(value = "INVOKE", target = "Lnet/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractTerrainRenderContext;bufferQuad(Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;Lnet/minecraft/client/render/VertexConsumer;)V"), cancellable = true) |
| 26 | + private void onBufferQuad(MutableQuadViewImpl quad, CallbackInfo ci) { |
| 27 | + int alpha = Xray.getAlpha(blockInfo.blockState, blockInfo.blockPos); |
| 28 | + |
| 29 | + if (alpha == 0) ci.cancel(); |
| 30 | + else if (alpha != -1) { |
| 31 | + for (int i = 0; i < 4; i++) { |
| 32 | + quad.color(i, rewriteQuadAlpha(quad.color(i), alpha)); |
| 33 | + } |
| 34 | + } |
| 35 | + } |
| 36 | + |
| 37 | + @Unique |
| 38 | + private int rewriteQuadAlpha(int color, int alpha) { |
| 39 | + return ((alpha & 0xFF) << 24) | (color & 0x00FFFFFF); |
| 40 | + } |
| 41 | +} |
0 commit comments