Skip to content

Commit 636ca41

Browse files
committed
Game launches
1 parent b808d42 commit 636ca41

15 files changed

Lines changed: 130 additions & 124 deletions

src/main/java/org/visuals/legacy/animatium/mixins/v1/entity/armor_hurt/MixinEquipmentLayerRenderer.java

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@
3636
import com.moulberry.mixinconstraints.annotations.IfModAbsent;
3737
import net.minecraft.client.model.Model;
3838
import net.minecraft.client.renderer.OrderedSubmitNodeCollector;
39-
import net.minecraft.client.renderer.rendertype.RenderType;
4039
import net.minecraft.client.renderer.entity.layers.EquipmentLayerRenderer;
4140
import net.minecraft.client.renderer.entity.state.EntityRenderState;
4241
import net.minecraft.client.renderer.entity.state.LivingEntityRenderState;
4342
import net.minecraft.client.renderer.feature.ModelFeatureRenderer;
43+
import net.minecraft.client.renderer.rendertype.RenderType;
4444
import net.minecraft.client.renderer.rendertype.RenderTypes;
4545
import net.minecraft.client.renderer.texture.OverlayTexture;
4646
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
@@ -55,59 +55,59 @@
5555
@IfModAbsent("ichor")
5656
@Mixin(EquipmentLayerRenderer.class)
5757
public abstract class MixinEquipmentLayerRenderer {
58-
@WrapOperation(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/RenderType;armorCutoutNoCull(Lnet/minecraft/resources/Identifier;)Lnet/minecraft/client/renderer/RenderType;"))
59-
private RenderType animatium$renderLayerArmorTint(Identifier resourceLocation, Operation<RenderType> original) {
60-
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint) {
61-
return RenderTypes.entityCutoutNoCullZOffset(resourceLocation);
62-
} else {
63-
return original.call(resourceLocation);
64-
}
65-
}
58+
@WrapOperation(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/rendertype/RenderTypes;armorCutoutNoCull(Lnet/minecraft/resources/Identifier;)Lnet/minecraft/client/renderer/rendertype/RenderType;"))
59+
private RenderType animatium$renderLayerArmorTint(Identifier resourceLocation, Operation<RenderType> original) {
60+
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint) {
61+
return RenderTypes.entityCutoutNoCullZOffset(resourceLocation);
62+
} else {
63+
return original.call(resourceLocation);
64+
}
65+
}
6666

67-
@WrapOperation(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/Sheets;armorTrimsSheet(Z)Lnet/minecraft/client/renderer/RenderType;"))
68-
private RenderType animatium$renderLayerArmorTrimTint(boolean bl, Operation<RenderType> original, @Local TextureAtlasSprite textureAtlasSprite) {
69-
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint) {
70-
return RenderTypes.entityCutoutNoCullZOffset(textureAtlasSprite.atlasLocation());
71-
} else {
72-
return original.call(bl);
73-
}
74-
}
67+
@WrapOperation(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/Sheets;armorTrimsSheet(Z)Lnet/minecraft/client/renderer/rendertype/RenderType;"))
68+
private RenderType animatium$renderLayerArmorTrimTint(boolean bl, Operation<RenderType> original, @Local TextureAtlasSprite textureAtlasSprite) {
69+
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint) {
70+
return RenderTypes.entityCutoutNoCullZOffset(textureAtlasSprite.atlasLocation());
71+
} else {
72+
return original.call(bl);
73+
}
74+
}
7575

76-
@ModifyArg(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/OrderedSubmitNodeCollector;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/RenderType;IIILnet/minecraft/client/renderer/texture/TextureAtlasSprite;ILnet/minecraft/client/renderer/feature/ModelFeatureRenderer$CrumblingOverlay;)V"), index = 5)
77-
private <S> int animatium$modifyUVArmorTint(int original, @Local(argsOnly = true) S entityRenderState) {
78-
return animatium$getPackUv(original, (EntityRenderState) entityRenderState);
79-
}
76+
@ModifyArg(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/OrderedSubmitNodeCollector;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/rendertype/RenderType;IIILnet/minecraft/client/renderer/texture/TextureAtlasSprite;ILnet/minecraft/client/renderer/feature/ModelFeatureRenderer$CrumblingOverlay;)V"), index = 5)
77+
private <S> int animatium$modifyUVArmorTint(int original, @Local(argsOnly = true) S entityRenderState) {
78+
return animatium$getPackUv(original, (EntityRenderState) entityRenderState);
79+
}
8080

81-
@ModifyArg(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/OrderedSubmitNodeCollector;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/RenderType;IIILnet/minecraft/client/renderer/texture/TextureAtlasSprite;ILnet/minecraft/client/renderer/feature/ModelFeatureRenderer$CrumblingOverlay;)V"), index = 5)
82-
private <S> int animatium$modifyUVTrimTint(int original, @Local(argsOnly = true) S entityRenderState) {
83-
return animatium$getPackUv(original, (EntityRenderState) entityRenderState);
84-
}
81+
@ModifyArg(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/OrderedSubmitNodeCollector;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/rendertype/RenderType;IIILnet/minecraft/client/renderer/texture/TextureAtlasSprite;ILnet/minecraft/client/renderer/feature/ModelFeatureRenderer$CrumblingOverlay;)V"), index = 5)
82+
private <S> int animatium$modifyUVTrimTint(int original, @Local(argsOnly = true) S entityRenderState) {
83+
return animatium$getPackUv(original, (EntityRenderState) entityRenderState);
84+
}
8585

86-
@WrapOperation(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/OrderedSubmitNodeCollector;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/RenderType;IIILnet/minecraft/client/renderer/texture/TextureAtlasSprite;ILnet/minecraft/client/renderer/feature/ModelFeatureRenderer$CrumblingOverlay;)V"))
87-
private <S> void animatium$armorHurtRendering(OrderedSubmitNodeCollector instance, Model<? super S> model, S renderState, PoseStack poseStack, RenderType renderType, int light, int overlay, int color, TextureAtlasSprite textureAtlasSprite, int i, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay, Operation<Void> original) {
88-
original.call(instance, model, renderState, poseStack, renderType, light, overlay, color, textureAtlasSprite, i, crumblingOverlay);
89-
if (Animatium.isEnabled() &&
90-
AnimatiumConfig.instance().other.entityArmorHurtTint &&
91-
AnimatiumConfig.instance().other.armorHurtRendering &&
92-
renderState instanceof LivingEntityRenderState livingEntityRenderState) {
93-
final boolean isHurt = livingEntityRenderState.hasRedOverlay;
94-
if (isHurt) {
95-
// TODO: Check if this code even does anything at all
96-
// TODO: Too strong? & glint needs to be tinted hurt color
97-
GlStateManager._enableBlend();
98-
GlStateManager._blendFuncSeparate(GlConst.toGl(SourceFactor.SRC_ALPHA), GlConst.toGl(DestFactor.ONE_MINUS_SRC_ALPHA), GlConst.toGl(SourceFactor.SRC_ALPHA), GlConst.toGl(DestFactor.ONE_MINUS_SRC_ALPHA));
99-
original.call(instance, model, renderState, poseStack, renderType, light, overlay, color, textureAtlasSprite, i, crumblingOverlay);
100-
GlStateManager._disableBlend();
101-
}
102-
}
103-
}
86+
@WrapOperation(method = "renderLayers(Lnet/minecraft/client/resources/model/EquipmentClientInfo$LayerType;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/world/item/ItemStack;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/resources/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/OrderedSubmitNodeCollector;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/rendertype/RenderType;IIILnet/minecraft/client/renderer/texture/TextureAtlasSprite;ILnet/minecraft/client/renderer/feature/ModelFeatureRenderer$CrumblingOverlay;)V"))
87+
private <S> void animatium$armorHurtRendering(OrderedSubmitNodeCollector instance, Model<? super S> model, S renderState, PoseStack poseStack, RenderType renderType, int light, int overlay, int color, TextureAtlasSprite textureAtlasSprite, int i, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay, Operation<Void> original) {
88+
original.call(instance, model, renderState, poseStack, renderType, light, overlay, color, textureAtlasSprite, i, crumblingOverlay);
89+
if (Animatium.isEnabled() &&
90+
AnimatiumConfig.instance().other.entityArmorHurtTint &&
91+
AnimatiumConfig.instance().other.armorHurtRendering &&
92+
renderState instanceof LivingEntityRenderState livingEntityRenderState) {
93+
final boolean isHurt = livingEntityRenderState.hasRedOverlay;
94+
if (isHurt) {
95+
// TODO: Check if this code even does anything at all
96+
// TODO: Too strong? & glint needs to be tinted hurt color
97+
GlStateManager._enableBlend();
98+
GlStateManager._blendFuncSeparate(GlConst.toGl(SourceFactor.SRC_ALPHA), GlConst.toGl(DestFactor.ONE_MINUS_SRC_ALPHA), GlConst.toGl(SourceFactor.SRC_ALPHA), GlConst.toGl(DestFactor.ONE_MINUS_SRC_ALPHA));
99+
original.call(instance, model, renderState, poseStack, renderType, light, overlay, color, textureAtlasSprite, i, crumblingOverlay);
100+
GlStateManager._disableBlend();
101+
}
102+
}
103+
}
104104

105-
@Unique
106-
private int animatium$getPackUv(final int original, final EntityRenderState entityRenderState) {
107-
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint && entityRenderState instanceof LivingEntityRenderState livingEntityRenderState) {
108-
return OverlayTexture.pack(OverlayTexture.u(0.0F), OverlayTexture.v(livingEntityRenderState.hasRedOverlay));
109-
} else {
110-
return original;
111-
}
112-
}
105+
@Unique
106+
private int animatium$getPackUv(final int original, final EntityRenderState entityRenderState) {
107+
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint && entityRenderState instanceof LivingEntityRenderState livingEntityRenderState) {
108+
return OverlayTexture.pack(OverlayTexture.u(0.0F), OverlayTexture.v(livingEntityRenderState.hasRedOverlay));
109+
} else {
110+
return original;
111+
}
112+
}
113113
}

src/main/java/org/visuals/legacy/animatium/mixins/v1/entity/glint/MixinRenderStateShard.java renamed to src/main/java/org/visuals/legacy/animatium/mixins/v1/entity/glint/MixinTextureTransform.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@
2727

2828
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
2929
import com.llamalad7.mixinextras.sugar.Local;
30-
import net.minecraft.client.renderer.RenderStateShard;
30+
import net.minecraft.client.renderer.rendertype.TextureTransform;
3131
import org.spongepowered.asm.mixin.Mixin;
3232
import org.spongepowered.asm.mixin.injection.At;
3333
import org.visuals.legacy.animatium.Animatium;
3434
import org.visuals.legacy.animatium.config.AnimatiumConfig;
3535

36-
@Mixin(RenderStateShard.class)
37-
public abstract class MixinRenderStateShard {
36+
@Mixin(TextureTransform.class)
37+
public abstract class MixinTextureTransform {
3838
@ModifyExpressionValue(method = "setupGlintTexturing", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/OptionInstance;get()Ljava/lang/Object;"))
3939
private static Object animatium$forceMaxGlintSpeed(Object original) {
4040
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.maxGlintProperties) {

src/main/java/org/visuals/legacy/animatium/mixins/v1/entity/particles/MixinPlayer_AlwaysSharpParticles.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,18 @@
3838

3939
@Mixin(Player.class)
4040
public abstract class MixinPlayer_AlwaysSharpParticles {
41-
@Shadow
42-
public abstract void magicCrit(final Entity entityHit);
41+
@Shadow
42+
public abstract void magicCrit(final Entity entityHit);
4343

44-
@Inject(method = "attack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/Entity;skipAttackInteraction(Lnet/minecraft/world/entity/Entity;)Z", shift = At.Shift.AFTER))
45-
private void animatium$alwaysSharpParticles(final Entity target, final CallbackInfo ci) {
46-
if (Animatium.isEnabled() && AnimatiumConfig.instance().extras.alwaysSharpParticles) {
47-
this.magicCrit(target);
48-
}
49-
}
44+
@Inject(method = "attack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;cannotAttack(Lnet/minecraft/world/entity/Entity;)Z", shift = At.Shift.AFTER))
45+
private void animatium$alwaysSharpParticles(final Entity target, final CallbackInfo ci) {
46+
if (Animatium.isEnabled() && AnimatiumConfig.instance().extras.alwaysSharpParticles) {
47+
this.magicCrit(target);
48+
}
49+
}
5050

51-
@WrapWithCondition(method = "attack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;magicCrit(Lnet/minecraft/world/entity/Entity;)V"))
52-
private boolean animatium$disableVanillaCrit(final Player instance, final Entity entityHit) {
53-
return !Animatium.isEnabled() || !AnimatiumConfig.instance().extras.alwaysSharpParticles;
54-
}
51+
@WrapWithCondition(method = "attackVisualEffects", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;magicCrit(Lnet/minecraft/world/entity/Entity;)V"))
52+
private boolean animatium$disableVanillaCrit(final Player instance, final Entity entityHit) {
53+
return !Animatium.isEnabled() || !AnimatiumConfig.instance().extras.alwaysSharpParticles;
54+
}
5555
}

src/main/java/org/visuals/legacy/animatium/mixins/v1/general/camera/MixinCamera.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import net.minecraft.world.entity.player.Player;
3535
import net.minecraft.world.level.BlockGetter;
3636
import net.minecraft.world.level.ClipContext;
37+
import net.minecraft.world.level.Level;
3738
import org.objectweb.asm.Opcodes;
3839
import org.spongepowered.asm.mixin.Mixin;
3940
import org.spongepowered.asm.mixin.Shadow;
@@ -103,7 +104,7 @@ public abstract class MixinCamera {
103104
}
104105

105106
@Inject(method = "setup", at = @At(value = "TAIL"))
106-
private void animatium$oldCameraVersion(final BlockGetter level, final Entity entity, final boolean detached, final boolean thirdPersonReverse, final float partialTick, final CallbackInfo ci) {
107+
private void animatium$oldCameraVersion(final Level level, final Entity entity, final boolean detached, final boolean mirror, final float partialTickTime, final CallbackInfo ci) {
107108
// TODO: Fix bed/sleeping position
108109
if (Animatium.isEnabled() && AnimatiumConfig.instance().screen.cameraVersion != CameraVersion.VANILLA && !detached && !(entity instanceof LivingEntity && ((LivingEntity) entity).isSleeping())) {
109110
final int ordinal = AnimatiumConfig.instance().screen.cameraVersion.ordinal();

0 commit comments

Comments
 (0)