|
25 | 25 |
|
26 | 26 | package org.visuals.legacy.animatium.mixins.v1.gui.old_inventory_rendering; |
27 | 27 |
|
| 28 | +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; |
| 29 | +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; |
| 30 | +import net.minecraft.client.gui.GuiGraphics; |
| 31 | +import net.minecraft.client.gui.navigation.ScreenRectangle; |
| 32 | +import net.minecraft.client.gui.render.state.pip.GuiEntityRenderState; |
28 | 33 | import net.minecraft.client.gui.screens.inventory.InventoryScreen; |
| 34 | +import net.minecraft.client.renderer.entity.state.EntityRenderState; |
| 35 | +import org.joml.Quaternionf; |
| 36 | +import org.joml.Vector3f; |
29 | 37 | import org.spongepowered.asm.mixin.Mixin; |
| 38 | +import org.spongepowered.asm.mixin.injection.At; |
| 39 | +import org.visuals.legacy.animatium.Animatium; |
| 40 | +import org.visuals.legacy.animatium.config.AnimatiumConfig; |
30 | 41 |
|
31 | 42 | @Mixin(InventoryScreen.class) |
32 | 43 | public abstract class MixinInventoryScreen_DisableEntityScissor { |
33 | | - // TODO 3.2 |
34 | | - /*@WrapWithCondition(method = "renderEntityInInventoryFollowsMouse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiGraphics;enableScissor(IIII)V")) |
35 | | - private static boolean animatium$entityScissor(GuiGraphics instance, int minX, int minY, int maxX, int maxY) { |
36 | | - return !Animatium.isEnabled() || !AnimatiumConfig.instance().other.disableInventoryEntityScissor; |
| 44 | + @WrapOperation(method = "renderEntityInInventoryFollowsMouse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiGraphics;submitEntityRenderState(Lnet/minecraft/client/renderer/entity/state/EntityRenderState;FLorg/joml/Vector3f;Lorg/joml/Quaternionf;Lorg/joml/Quaternionf;IIII)V")) |
| 45 | + private static void animatium$disableEntityScissor(final GuiGraphics instance, final EntityRenderState renderState, final float scale, final Vector3f translation, final Quaternionf rotation, final Quaternionf overrideCameraAngle, final int x0, final int y0, final int x1, final int y1, final Operation<Void> original) { |
| 46 | + if (Animatium.isEnabled() && AnimatiumConfig.instance().other.disableInventoryEntityScissor) { |
| 47 | + final ScreenRectangle bounds = new ScreenRectangle(0, 0, instance.guiWidth(), instance.guiHeight()); |
| 48 | + instance.guiRenderState.submitPicturesInPictureState(new GuiEntityRenderState(renderState, translation, rotation, overrideCameraAngle, x0, y0, x1, y1, scale, bounds)); |
| 49 | + } else { |
| 50 | + original.call(instance, renderState, scale, translation, rotation, overrideCameraAngle, x0, y0, x1, y1); |
| 51 | + } |
37 | 52 | } |
38 | | -
|
39 | | - @WrapWithCondition(method = "renderEntityInInventoryFollowsMouse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiGraphics;disableScissor()V")) |
40 | | - private static boolean animatium$entityScissor(GuiGraphics instance) { |
41 | | - return !Animatium.isEnabled() || !AnimatiumConfig.instance().other.disableInventoryEntityScissor; |
42 | | - }*/ |
43 | 53 | } |
0 commit comments