Skip to content

Commit dec11cb

Browse files
committed
Re-implement animatium$disableEntityScissor
1 parent e4c1a1c commit dec11cb

2 files changed

Lines changed: 19 additions & 10 deletions

File tree

src/main/java/org/visuals/legacy/animatium/mixins/v1/gui/old_inventory_rendering/MixinInventoryScreen_DisableEntityScissor.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,29 @@
2525

2626
package org.visuals.legacy.animatium.mixins.v1.gui.old_inventory_rendering;
2727

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;
2833
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;
2937
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;
3041

3142
@Mixin(InventoryScreen.class)
3243
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+
}
3752
}
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-
}*/
4353
}

src/main/resources/animatium.accesswidener

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ accessWidener v2 named
22

33
accessible class net/minecraft/client/gui/Font$PreparedTextBuilder
44
accessible class net/minecraft/client/gui/Gui$HeartType
5-
accessible class net/minecraft/client/renderer/RenderType$CompositeRenderType
65
accessible class net/minecraft/client/gui/components/toasts/ToastManager$ToastInstance
76
accessible class net/minecraft/client/renderer/block/ModelBlockRenderer$AmbientOcclusionRenderStorage
87
accessible class com/mojang/blaze3d/pipeline/MainTarget$Dimension

0 commit comments

Comments
 (0)