33import net .minecraft .client .Minecraft ;
44import net .minecraft .client .renderer .EntityRenderer ;
55import net .minecraft .client .renderer .GlStateManager ;
6+ import net .wyvest .redaction .Redaction ;
67import net .wyvest .redaction .config .RedactionConfig ;
78import org .lwjgl .util .glu .Project ;
9+ import org .objectweb .asm .Opcodes ;
10+ import org .spongepowered .asm .mixin .Dynamic ;
811import org .spongepowered .asm .mixin .Mixin ;
912import org .spongepowered .asm .mixin .Shadow ;
1013import org .spongepowered .asm .mixin .injection .*;
@@ -15,32 +18,51 @@ public abstract class EntityRendererMixin {
1518 @ Shadow protected abstract float getFOVModifier (float partialTicks , boolean useFOVSetting );
1619
1720 @ Shadow private Minecraft mc ;
18-
1921 @ Shadow private float farPlaneDistance ;
2022
21- private boolean override = false ;
22-
23- @ Inject (method = "renderHand" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/renderer/EntityRenderer;getFOVModifier(FZ)F" ))
23+ @ Inject (method = "renderHand" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/renderer/GlStateManager;loadIdentity()V" , shift = At .Shift .AFTER , ordinal = 0 ))
2424 private void modifyFov (float partialTicks , int xOffset , CallbackInfo ci ) {
25- override = true ;
25+ setOverrideHand ();
26+ }
27+
28+ @ Dynamic ("I HATE OPTIFINE" )
29+ @ Inject (method = {"renderHand*" }, at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/renderer/GlStateManager;loadIdentity()V" , shift = At .Shift .AFTER , ordinal = 0 , remap = true ), remap = false )
30+ private void modifyFov (float f , int n , boolean bl , boolean bl2 , boolean bl3 , CallbackInfo ci ) {
31+ setOverrideHand ();
32+ }
33+
34+ private void setOverrideHand () {
35+ Redaction .INSTANCE .setOverrideHand (true );
2636 }
2737
28- @ Redirect (method = "renderHand" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/renderer/EntityRenderer;enableLightmap()V" ))
38+ @ Dynamic ("I HATE OPTIFINE" )
39+ @ Redirect (method = {"renderHand*" , "func_78476_b" }, at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/renderer/EntityRenderer;enableLightmap()V" , remap = true ), remap = false )
2940 private void redirectLightmap (EntityRenderer instance ) {
3041 if (!RedactionConfig .INSTANCE .getDisableHandLighting ()) {
3142 instance .enableLightmap ();
3243 }
3344 }
3445
35- @ Redirect (method = "renderHand" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/renderer/EntityRenderer;disableLightmap()V" ))
46+ @ Dynamic ("I HATE OPTIFINE" )
47+ @ Redirect (method = {"renderHand*" , "func_78476_b" }, at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/renderer/EntityRenderer;disableLightmap()V" , remap = true ), remap = false )
3648 private void redirectLightmap2 (EntityRenderer instance ) {
3749 if (!RedactionConfig .INSTANCE .getDisableHandLighting ()) {
3850 instance .disableLightmap ();
3951 }
4052 }
4153
42- @ Inject (method = "renderHand" , at = @ At (value = "INVOKE " , target = "Lnet/minecraft/client/renderer/GlStateManager;popMatrix()V " , shift = At . Shift . AFTER ))
54+ @ Inject (method = "renderHand" , at = @ At (value = "FIELD " , target = "Lnet/minecraft/client/settings/GameSettings;thirdPersonView:I " , opcode = Opcodes . GETFIELD , ordinal = 1 ))
4355 private void resetFOV (float partialTicks , int xOffset , CallbackInfo ci ) {
56+ resetFOV (partialTicks , xOffset );
57+ }
58+
59+ @ Dynamic ("I HATE OPTIFINE" )
60+ @ Inject (method = "renderHand*" , at = @ At (value = "FIELD" , target = "Lnet/minecraft/client/settings/GameSettings;thirdPersonView:I" , opcode = Opcodes .GETFIELD , ordinal = 1 , remap = true ), remap = false )
61+ private void resetFOV (float f , int n , boolean bl , boolean bl2 , boolean bl3 , CallbackInfo ci ) {
62+ resetFOV (f , n );
63+ }
64+
65+ private void resetFOV (float partialTicks , int xOffset ) {
4466 GlStateManager .matrixMode (5889 );
4567 GlStateManager .loadIdentity ();
4668 if (this .mc .gameSettings .anaglyph ) {
@@ -56,8 +78,8 @@ private void resetFOV(float partialTicks, int xOffset, CallbackInfo ci) {
5678
5779 @ ModifyConstant (method = "getFOVModifier" , constant = @ Constant (floatValue = 70.0F , ordinal = 0 ))
5880 private float modifyFOV (float constant ) {
59- if (override && RedactionConfig .INSTANCE .getCustomHandFOV ()) {
60- override = false ;
81+ if (Redaction . INSTANCE . getOverrideHand () && RedactionConfig .INSTANCE .getCustomHandFOV ()) {
82+ Redaction . INSTANCE . setOverrideHand ( false ) ;
6183 return RedactionConfig .INSTANCE .getHandFOV ();
6284 } else {
6385 return constant ;
0 commit comments