|
| 1 | +package com.lambda.mixin.render; |
| 2 | + |
| 3 | +import com.lambda.graphics.outline.OutlineCapturingQueue; |
| 4 | +import net.minecraft.client.render.RenderLayer; |
| 5 | +import net.minecraft.client.render.command.OrderedRenderCommandQueue; |
| 6 | +import net.minecraft.client.render.entity.ItemFrameEntityRenderer; |
| 7 | +import net.minecraft.client.render.model.BlockStateModel; |
| 8 | +import net.minecraft.client.util.math.MatrixStack; |
| 9 | +import org.spongepowered.asm.mixin.Mixin; |
| 10 | +import org.spongepowered.asm.mixin.injection.At; |
| 11 | +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; |
| 12 | +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; |
| 13 | + |
| 14 | +@Mixin(ItemFrameEntityRenderer.class) |
| 15 | +public class ItemFrameEntityRendererMixin { |
| 16 | + |
| 17 | + @WrapOperation(method = "render(Lnet/minecraft/client/render/entity/state/ItemFrameEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitBlockStateModel(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;Lnet/minecraft/client/render/model/BlockStateModel;FFFIII)V")) |
| 18 | + private void captureItemFrameModel(OrderedRenderCommandQueue queue, MatrixStack matrices, RenderLayer renderLayer, BlockStateModel model, float r, float g, float b, int light, int overlay, int outlineColor, Operation<Void> original) { |
| 19 | + if (queue instanceof OutlineCapturingQueue lambdaQueue) { |
| 20 | + lambdaQueue.captureItemFrameModel(matrices, renderLayer, model, r, g, b, light, overlay, outlineColor); |
| 21 | + } else original.call(queue, matrices, renderLayer, model, r, g, b, light, overlay, outlineColor); |
| 22 | + } |
| 23 | +} |
0 commit comments