Skip to content

Commit de11b4e

Browse files
committed
minor bug fix
1 parent 78caf01 commit de11b4e

File tree

2 files changed

+29
-12
lines changed

2 files changed

+29
-12
lines changed

src/main/java/io/github/axolotlclient/oldanimations/mixin/CapeLayerMixin.java

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,41 @@
1818

1919
package io.github.axolotlclient.oldanimations.mixin;
2020

21-
import com.mojang.blaze3d.platform.GlStateManager;
21+
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
22+
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
2223
import io.github.axolotlclient.oldanimations.config.OldAnimationsConfig;
23-
import net.minecraft.client.entity.living.player.ClientPlayerEntity;
2424
import net.minecraft.client.render.entity.layer.CapeLayer;
25+
import org.spongepowered.asm.mixin.Dynamic;
2526
import org.spongepowered.asm.mixin.Mixin;
2627
import org.spongepowered.asm.mixin.injection.At;
27-
import org.spongepowered.asm.mixin.injection.Inject;
28-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2928

3029
@Mixin(CapeLayer.class)
31-
public abstract class CapeLayerMixin {
30+
public class CapeLayerMixin {
3231

33-
@Inject(method = "render(Lnet/minecraft/client/entity/living/player/ClientPlayerEntity;FFFFFFF)V", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;translatef(FFF)V"))
34-
private void axolotlClient$addSneakingTranslation(ClientPlayerEntity clientPlayerEntity, float f, float g, float h, float i, float j, float k, float l, CallbackInfo ci) {
35-
if (OldAnimationsConfig.isEnabled() && OldAnimationsConfig.instance.thirdPersonCapePosition.get() && clientPlayerEntity.isSneaking()) {
36-
/* honestly, idk why the cape is positioned differently in 1.8 versus 1.7.... weird lol */
37-
/* this is a rough estimation of where it should be positioned... not ideal, but its better than nothing lol */
38-
GlStateManager.translatef(0.0F, 0.0125F, 0.0F);
32+
@Dynamic("OptiFine")
33+
@WrapWithCondition(method = "render(Lnet/minecraft/client/entity/living/player/ClientPlayerEntity;FFFFFFF)V", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;translatef(FFF)V", ordinal = 1))
34+
private boolean axolotlclient$disableOptiFineTranslation(float f, float g, float h) {
35+
/* optifine attemps to fix 1.8's weird cape position... that's all well and good, but let's just disable that when we use our own :p */
36+
return !OldAnimationsConfig.isEnabled() || !OldAnimationsConfig.instance.thirdPersonSneaking.get();
37+
}
38+
39+
@Dynamic("OptiFine")
40+
@ModifyExpressionValue(method = "render(Lnet/minecraft/client/entity/living/player/ClientPlayerEntity;FFFFFFF)V", at = @At(value = "CONSTANT", args = "floatValue=165.0"))
41+
private float axolotlclient$disableOptiFineClamp(float original) {
42+
if (OldAnimationsConfig.isEnabled() && OldAnimationsConfig.instance.thirdPersonSneaking.get()) {
43+
/* optifine attemps to clamp the cape's physics... nuh uh */
44+
return Float.MAX_VALUE;
45+
}
46+
return original;
47+
}
48+
49+
@Dynamic("OptiFine")
50+
@ModifyExpressionValue(method = "render(Lnet/minecraft/client/entity/living/player/ClientPlayerEntity;FFFFFFF)V", at = @At(value = "CONSTANT", args = "floatValue=-5.0"))
51+
private float axolotlclient$disableOptiFineClamp2(float original) {
52+
if (OldAnimationsConfig.isEnabled() && OldAnimationsConfig.instance.thirdPersonSneaking.get()) {
53+
/* optifine attemps to clamp the cape's physics... nuh uh */
54+
return Float.MIN_VALUE;
3955
}
56+
return original;
4057
}
4158
}

src/main/java/io/github/axolotlclient/oldanimations/mixin/ItemRendererMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public abstract class ItemRendererMixin {
130130

131131
@WrapOperation(method = "renderItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/ItemRenderer;renderEnchantmentGlint(Lnet/minecraft/client/resource/model/BakedModel;)V"))
132132
public void axolotlclient$disableBlocksGlint(ItemRenderer instance, BakedModel bakedModel, Operation<Void> original, @Local(argsOnly = true) ItemStack itemStack) {
133-
if (!OldAnimationsConfig.isEnabled() || !OldAnimationsConfig.instance.disableGlintOnBlocks.get() && !isGui3d(itemStack)) {
133+
if (!OldAnimationsConfig.isEnabled() || !OldAnimationsConfig.instance.disableGlintOnBlocks.get() || !isGui3d(itemStack)) {
134134
original.call(instance, bakedModel);
135135
}
136136
}

0 commit comments

Comments
 (0)