Skip to content

Commit d66eb0d

Browse files
committed
Add translations for new settings
1 parent f0cebce commit d66eb0d

File tree

13 files changed

+129
-79
lines changed

13 files changed

+129
-79
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## NOTICE: This update will reset your settings!
1+
## NOTICE: This update will reset your settings! I'm sorry.
22

33
### Changed:
44
- Simplified a ton of settings (Combined stuff like Sneaking Settings)

src/main/java/org/visuals/legacy/animatium/AnimatiumFabricClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public void onInitializeClient() {
4848
Animatium.initialize();
4949
final ModContainer modContainer = FabricLoader.getInstance().getModContainer(AnimatiumConstants.MOD_ID).orElseThrow(() -> new RuntimeException("Mod container data could not be found for Animatium!"));
5050
ResourceManagerHelper.registerBuiltinResourcePack(Animatium.location("classic_textures"), modContainer, ResourcePackActivationType.DEFAULT_ENABLED);
51+
ResourceManagerHelper.registerBuiltinResourcePack(Animatium.location("classic_water"), modContainer, ResourcePackActivationType.NORMAL);
5152
ClientCommandRegistrationCallback.EVENT.register((dispatcher, context) -> dispatcher.register(AnimatiumCommand.create()));
5253
registerPayloads();
5354
ModelLoadingPlugin.register(context -> context.addModel(AnimatiumConstants.FAST_GRASS_MODEL_KEY, SimpleUnbakedExtraModel.blockStateModel(AnimatiumConstants.FAST_GRASS_MODEL_LOCATION)));

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

Lines changed: 50 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,9 @@
3030
import com.llamalad7.mixinextras.sugar.Local;
3131
import com.mojang.blaze3d.opengl.GlConst;
3232
import com.mojang.blaze3d.opengl.GlStateManager;
33-
import com.mojang.blaze3d.platform.DepthTestFunction;
3433
import com.mojang.blaze3d.platform.DestFactor;
3534
import com.mojang.blaze3d.platform.SourceFactor;
3635
import com.mojang.blaze3d.vertex.PoseStack;
37-
import net.minecraft.client.Minecraft;
3836
import net.minecraft.client.model.Model;
3937
import net.minecraft.client.renderer.OrderedSubmitNodeCollector;
4038
import net.minecraft.client.renderer.RenderType;
@@ -54,64 +52,59 @@
5452

5553
@Mixin(EquipmentLayerRenderer.class)
5654
public abstract class MixinEquipmentLayerRenderer {
57-
@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/ResourceLocation;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/RenderType;armorCutoutNoCull(Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/client/renderer/RenderType;"))
58-
private RenderType animatium$renderLayerArmorTint(ResourceLocation resourceLocation, Operation<RenderType> original) {
59-
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint) {
60-
return RenderType.entityCutoutNoCullZOffset(resourceLocation);
61-
} else {
62-
return original.call(resourceLocation);
63-
}
64-
}
55+
@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/ResourceLocation;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/RenderType;armorCutoutNoCull(Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/client/renderer/RenderType;"))
56+
private RenderType animatium$renderLayerArmorTint(ResourceLocation resourceLocation, Operation<RenderType> original) {
57+
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint) {
58+
return RenderType.entityCutoutNoCullZOffset(resourceLocation);
59+
} else {
60+
return original.call(resourceLocation);
61+
}
62+
}
6563

66-
@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/ResourceLocation;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/Sheets;armorTrimsSheet(Z)Lnet/minecraft/client/renderer/RenderType;"))
67-
private RenderType animatium$renderLayerArmorTrimTint(boolean bl, Operation<RenderType> original, @Local TextureAtlasSprite textureAtlasSprite) {
68-
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint) {
69-
return RenderType.entityCutoutNoCullZOffset(textureAtlasSprite.atlasLocation());
70-
} else {
71-
return original.call(bl);
72-
}
73-
}
64+
@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/ResourceLocation;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/Sheets;armorTrimsSheet(Z)Lnet/minecraft/client/renderer/RenderType;"))
65+
private RenderType animatium$renderLayerArmorTrimTint(boolean bl, Operation<RenderType> original, @Local TextureAtlasSprite textureAtlasSprite) {
66+
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.entityArmorHurtTint) {
67+
return RenderType.entityCutoutNoCullZOffset(textureAtlasSprite.atlasLocation());
68+
} else {
69+
return original.call(bl);
70+
}
71+
}
7472

75-
@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/ResourceLocation;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)
76-
private <S> int animatium$modifyUVArmorTint(int original, @Local(argsOnly = true) S entityRenderState) {
77-
return animatium$getPackUv(original, (EntityRenderState) entityRenderState);
78-
}
73+
@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/ResourceLocation;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)
74+
private <S> int animatium$modifyUVArmorTint(int original, @Local(argsOnly = true) S entityRenderState) {
75+
return animatium$getPackUv(original, (EntityRenderState) entityRenderState);
76+
}
7977

80-
@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/ResourceLocation;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)
81-
private <S> int animatium$modifyUVTrimTint(int original, @Local(argsOnly = true) S entityRenderState) {
82-
return animatium$getPackUv(original, (EntityRenderState) entityRenderState);
83-
}
78+
@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/ResourceLocation;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)
79+
private <S> int animatium$modifyUVTrimTint(int original, @Local(argsOnly = true) S entityRenderState) {
80+
return animatium$getPackUv(original, (EntityRenderState) entityRenderState);
81+
}
8482

85-
@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/ResourceLocation;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"))
86-
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) {
87-
original.call(instance, model, renderState, poseStack, renderType, light, overlay, color, textureAtlasSprite, i, crumblingOverlay);
88-
if (Animatium.isEnabled() &&
89-
AnimatiumConfig.instance().other.entityArmorHurtTint &&
90-
AnimatiumConfig.instance().other.armorHurtRendering &&
91-
renderState instanceof LivingEntityRenderState livingEntityRenderState) {
92-
// TODO: Check if this code even does anything at all
93-
// TODO: Too strong? & glint needs to be tinted hurt color
94-
boolean isHurt = livingEntityRenderState.hasRedOverlay;
95-
if (isHurt) {
96-
// Code sourced from 1.7/1.8
97-
Minecraft.getInstance().gameRenderer.lightTexture().turnOffLightLayer();
98-
GlStateManager._enableBlend();
99-
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));
100-
GlStateManager._depthFunc(GlConst.toGl(DepthTestFunction.EQUAL_DEPTH_TEST));
101-
original.call(instance, model, renderState, poseStack, renderType, light, overlay, color, textureAtlasSprite, i, crumblingOverlay);
102-
GlStateManager._depthFunc(GlConst.toGl(DepthTestFunction.LEQUAL_DEPTH_TEST));
103-
GlStateManager._disableBlend();
104-
Minecraft.getInstance().gameRenderer.lightTexture().turnOnLightLayer();
105-
}
106-
}
107-
}
83+
@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/ResourceLocation;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"))
84+
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) {
85+
original.call(instance, model, renderState, poseStack, renderType, light, overlay, color, textureAtlasSprite, i, crumblingOverlay);
86+
if (Animatium.isEnabled() &&
87+
AnimatiumConfig.instance().other.entityArmorHurtTint &&
88+
AnimatiumConfig.instance().other.armorHurtRendering &&
89+
renderState instanceof LivingEntityRenderState livingEntityRenderState) {
90+
boolean isHurt = livingEntityRenderState.hasRedOverlay;
91+
if (isHurt) {
92+
// TODO: Check if this code even does anything at all
93+
// TODO: Too strong? & glint needs to be tinted hurt color
94+
GlStateManager._enableBlend();
95+
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));
96+
original.call(instance, model, renderState, poseStack, renderType, light, overlay, color, textureAtlasSprite, i, crumblingOverlay);
97+
GlStateManager._disableBlend();
98+
}
99+
}
100+
}
108101

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

src/main/java/org/visuals/legacy/animatium/mixins/v1/rendering/MixinGameRenderer_OldDepthFar.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public abstract class MixinGameRenderer_OldDepthFar {
4343
@WrapOperation(method = "getDepthFar", at = @At(value = "INVOKE", target = "Ljava/lang/Math;max(FF)F"))
4444
private float animatium$oldDepthFar(float a, float b, Operation<Float> original) {
4545
if (Animatium.isEnabled() && AnimatiumConfig.instance().screen.oldDepthFar) {
46+
// TOD: Sky uses RD*2.0F, Clouds uses RD*4.0F
4647
return this.renderDistance * Mth.SQRT_OF_TWO;
4748
} else {
4849
return original.call(a, b);

src/main/java/org/visuals/legacy/animatium/mixins/v1/rendering/lighting/MixinAoCalculator_FastSmoothLighting.java

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

2626
package org.visuals.legacy.animatium.mixins.v1.rendering.lighting;
2727

28-
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
29-
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
30-
import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoCalculator;
31-
import net.fabricmc.fabric.impl.client.indigo.renderer.aocalc.AoConfig;
32-
import org.objectweb.asm.Opcodes;
28+
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView;
29+
import net.fabricmc.fabric.impl.client.indigo.renderer.helper.GeometryHelper;
30+
import net.minecraft.core.Direction;
3331
import org.spongepowered.asm.mixin.Mixin;
3432
import org.spongepowered.asm.mixin.injection.At;
33+
import org.spongepowered.asm.mixin.injection.Inject;
34+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
35+
import org.visuals.legacy.animatium.Animatium;
36+
import org.visuals.legacy.animatium.config.AnimatiumConfig;
3537

36-
@Mixin(AoCalculator.class)
38+
// Indigo Renderer Support
39+
@Mixin(value = GeometryHelper.class, remap = false)
3740
public abstract class MixinAoCalculator_FastSmoothLighting {
38-
// TODO: Figure out how to do the proper modification in whatever part of this class
39-
@WrapOperation(method = "compute", at = @At(value = "FIELD", target = "Lnet/fabricmc/fabric/impl/client/indigo/Indigo;AMBIENT_OCCLUSION_MODE:Lnet/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoConfig;", opcode = Opcodes.GETSTATIC), remap = false)
40-
private AoConfig animatium$forceVanillaAO(Operation<Object> original) {
41-
return AoConfig.VANILLA;
42-
}
41+
42+
@Inject(method = "isQuadCubic", at = @At("HEAD"), cancellable = true)
43+
private static void animatium$oldFastSmoothLighting(Direction lightFace, QuadView quad, CallbackInfoReturnable<Boolean> cir) {
44+
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.oldMinimumSmoothLighting) {
45+
cir.setReturnValue(true);
46+
}
47+
}
48+
4349
}

0 commit comments

Comments
 (0)