|
6 | 6 | import net.minecraft.block.state.IBlockState; |
7 | 7 | import net.minecraft.client.renderer.BlockModelRenderer; |
8 | 8 | import net.minecraft.client.renderer.WorldRenderer; |
| 9 | +import net.minecraft.client.renderer.block.model.BakedQuad; |
9 | 10 | import net.minecraft.util.BlockPos; |
10 | 11 | import net.minecraft.world.IBlockAccess; |
| 12 | +import net.optifine.render.RenderEnv; |
11 | 13 | import org.spongepowered.asm.mixin.Mixin; |
12 | 14 | import org.spongepowered.asm.mixin.injection.At; |
13 | | -import org.spongepowered.asm.mixin.injection.Redirect; |
| 15 | +import org.spongepowered.asm.mixin.injection.ModifyArgs; |
| 16 | +import org.spongepowered.asm.mixin.injection.invoke.arg.Args; |
| 17 | + |
| 18 | +import java.util.List; |
14 | 19 |
|
15 | 20 | @Mixin(BlockModelRenderer.class) |
16 | 21 | public class BlockModelRendererMixin { |
17 | | - @Redirect(method = "renderQuadsSmooth", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/WorldRenderer;putColorMultiplier(FFFI)V")) |
18 | | - public void modifyArgs(WorldRenderer instance, float l, float i1, float j1, int k1, IBlockAccess worldIn, IBlockState stateIn, BlockPos blockPosIn) { |
| 22 | +// @Redirect(method = "renderQuadsSmooth", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/WorldRenderer;putColorMultiplier(FFFI)V")) |
| 23 | +// public void modifyArgs(WorldRenderer instance, float l, float i1, float j1, int k1, IBlockAccess worldIn, IBlockState stateIn, BlockPos blockPosIn) { |
| 24 | +// if (MMCUtils.inMMC && Config.heightLimitOverlay && blockPosIn.getY() == 99 && stateIn.getBlock() instanceof BlockColored) { |
| 25 | +// int meta = stateIn.getValue(BlockColored.COLOR).getMetadata(); |
| 26 | +// if (meta == 14 || meta == 11) { |
| 27 | +// float f = 1F- Config.heightLimitDarkness; |
| 28 | +// l *= f; |
| 29 | +// i1 *= f; |
| 30 | +// j1 *= f; |
| 31 | +// } |
| 32 | +// } |
| 33 | +// |
| 34 | +// instance.putColorMultiplier(l, i1, j1, k1); |
| 35 | +// } |
| 36 | + |
| 37 | + @ModifyArgs(method = "renderQuadsSmooth", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/WorldRenderer;putColorMultiplier(FFFI)V")) |
| 38 | + public void modifyArgs(Args args, IBlockAccess worldIn, IBlockState stateIn, BlockPos blockPosIn, WorldRenderer instance, List<BakedQuad> list, RenderEnv env) { |
19 | 39 | if (MMCUtils.inMMC && Config.heightLimitOverlay && blockPosIn.getY() == 99 && stateIn.getBlock() instanceof BlockColored) { |
20 | 40 | int meta = stateIn.getValue(BlockColored.COLOR).getMetadata(); |
21 | 41 | if (meta == 14 || meta == 11) { |
22 | | - float f = 1F- Config.heightLimitDarkness; |
23 | | - l *= f; |
24 | | - i1 *= f; |
25 | | - j1 *= f; |
| 42 | + float f = 1F - Config.heightLimitDarkness; |
| 43 | + for (int i = 0; i < 3; i++) { |
| 44 | + args.set(i, (float) args.get(i) * f); |
| 45 | + } |
26 | 46 | } |
27 | 47 | } |
28 | | - |
29 | | - instance.putColorMultiplier(l, i1, j1, k1); |
30 | 48 | } |
| 49 | + |
31 | 50 | } |
0 commit comments