diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-11-15 23:57:55 +0100 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-11-15 23:57:55 +0100 |
| commit | b132826a3149eae8fe2e3d4aa4d69d289557e2a4 (patch) | |
| tree | 859e2d4b69e067ba81ff36ea9b9db7e81cbcf706 /src/main/java/moe/nea/firmament/mixins/render | |
| parent | 5632c1d50bb0319886fb6acd54df92bf01491532 (diff) | |
| download | Firmament-b132826a3149eae8fe2e3d4aa4d69d289557e2a4.tar.gz Firmament-b132826a3149eae8fe2e3d4aa4d69d289557e2a4.tar.bz2 Firmament-b132826a3149eae8fe2e3d4aa4d69d289557e2a4.zip | |
snapshot: mixin cleanup p1
Diffstat (limited to 'src/main/java/moe/nea/firmament/mixins/render')
5 files changed, 21 insertions, 16 deletions
diff --git a/src/main/java/moe/nea/firmament/mixins/render/entitytints/ChangeColorOfLivingEntities.java b/src/main/java/moe/nea/firmament/mixins/render/entitytints/ChangeColorOfLivingEntities.java index 2b96e5c..79958c0 100644 --- a/src/main/java/moe/nea/firmament/mixins/render/entitytints/ChangeColorOfLivingEntities.java +++ b/src/main/java/moe/nea/firmament/mixins/render/entitytints/ChangeColorOfLivingEntities.java @@ -4,9 +4,11 @@ import com.llamalad7.mixinextras.injector.ModifyReturnValue; import com.llamalad7.mixinextras.sugar.Local; import moe.nea.firmament.events.EntityRenderTintEvent; import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.state.LivingEntityRenderState; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; import org.spongepowered.asm.mixin.Mixin; @@ -41,18 +43,19 @@ public class ChangeColorOfLivingEntities<T extends LivingEntity, S extends Livin return originalWhiteOffset; } - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;pop()V")) - private void afterRender(S livingEntityRenderState, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo ci) { - var tintState = EntityRenderTintEvent.HasTintRenderState.cast(livingEntityRenderState); - var overlayTexture = tintState.getOverlayTexture_firmament(); - if (overlayTexture != null && vertexConsumerProvider instanceof VertexConsumerProvider.Immediate imm) { - imm.drawCurrentLayer(); - } - EntityRenderTintEvent.overlayOverride = null; + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;pop()V")) + private void afterRender(S livingEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState cameraRenderState, CallbackInfo ci) { +// var tintState = EntityRenderTintEvent.HasTintRenderState.cast(livingEntityRenderState); +// var overlayTexture = tintState.getOverlayTexture_firmament(); +// if (overlayTexture != null && vertexConsumerProvider instanceof VertexConsumerProvider.Immediate imm) { +// imm.drawCurrentLayer(); +// } +// EntityRenderTintEvent.overlayOverride = null; + // TODO: 1.21.10 } - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;push()V")) - private void beforeRender(S livingEntityRenderState, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;push()V")) + private void beforeRender(S livingEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState cameraRenderState, CallbackInfo ci) { var tintState = EntityRenderTintEvent.HasTintRenderState.cast(livingEntityRenderState); var overlayTexture = tintState.getOverlayTexture_firmament(); if (overlayTexture != null) { diff --git a/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableEquipmentRenderer.java b/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableEquipmentRenderer.java index d9c174c..8671bda 100644 --- a/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableEquipmentRenderer.java +++ b/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableEquipmentRenderer.java @@ -16,7 +16,7 @@ import org.spongepowered.asm.mixin.injection.At; */ @Mixin(EquipmentRenderer.class) public class UseOverlayableEquipmentRenderer { - @WrapOperation(method = "render(Lnet/minecraft/client/render/entity/equipment/EquipmentModel$LayerType;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/model/Model;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/util/Identifier;)V", + @WrapOperation(method = "render(Lnet/minecraft/client/render/entity/equipment/EquipmentModel$LayerType;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/util/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getArmorCutoutNoCull(Lnet/minecraft/util/Identifier;)Lnet/minecraft/client/render/RenderLayer;")) private RenderLayer replace(Identifier texture, Operation<RenderLayer> original) { if (EntityRenderTintEvent.overlayOverride != null) @@ -24,7 +24,7 @@ public class UseOverlayableEquipmentRenderer { return original.call(texture); } - @ModifyExpressionValue(method = "render(Lnet/minecraft/client/render/entity/equipment/EquipmentModel$LayerType;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/model/Model;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/util/Identifier;)V", + @ModifyExpressionValue(method = "render(Lnet/minecraft/client/render/entity/equipment/EquipmentModel$LayerType;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/util/Identifier;II)V", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/OverlayTexture;DEFAULT_UV:I")) private int replaceUvIndex(int original) { if (EntityRenderTintEvent.overlayOverride != null) diff --git a/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableHeadFeatureRenderer.java b/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableHeadFeatureRenderer.java index 07bc5cf..0422a66 100644 --- a/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableHeadFeatureRenderer.java +++ b/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableHeadFeatureRenderer.java @@ -5,6 +5,7 @@ import moe.nea.firmament.events.EntityRenderTintEvent; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.entity.feature.HeadFeatureRenderer; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -15,8 +16,8 @@ import org.spongepowered.asm.mixin.injection.At; @Mixin(HeadFeatureRenderer.class) public class UseOverlayableHeadFeatureRenderer { - @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/LivingEntityRenderState;FF)V", - at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/OverlayTexture;DEFAULT_UV:I")) + @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/LivingEntityRenderState;FF)V", + at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/OverlayTexture;DEFAULT_UV:I", opcode = Opcodes.GETSTATIC)) private int replaceUvIndex(int original) { if (EntityRenderTintEvent.overlayOverride != null) return OverlayTexture.packUv(15, 10); // TODO: store this info in a global alongside overlayOverride diff --git a/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableItemRenderer.java b/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableItemRenderer.java index 620ab2c..739fc5f 100644 --- a/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableItemRenderer.java +++ b/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableItemRenderer.java @@ -6,6 +6,7 @@ import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderPhase; import net.minecraft.client.render.item.ItemRenderState; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -16,7 +17,7 @@ import org.spongepowered.asm.mixin.injection.At; */ @Mixin(ItemRenderState.LayerRenderState.class) public class UseOverlayableItemRenderer { - @ModifyExpressionValue(method = "render", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/item/ItemRenderState$LayerRenderState;renderLayer:Lnet/minecraft/client/render/RenderLayer;")) + @ModifyExpressionValue(method = "render", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/item/ItemRenderState$LayerRenderState;renderLayer:Lnet/minecraft/client/render/RenderLayer;", opcode = Opcodes.GETFIELD)) private RenderLayer replace(RenderLayer original) { if (EntityRenderTintEvent.overlayOverride != null && original instanceof RenderLayer.MultiPhase multiPhase && multiPhase.phases.texture instanceof RenderPhase.Texture texture && texture.getId().isPresent()) return RenderLayer.getEntityTranslucent(texture.getId().get()); diff --git a/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableSkullBlockEntityRenderer.java b/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableSkullBlockEntityRenderer.java index 9905af1..2a15e8c 100644 --- a/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableSkullBlockEntityRenderer.java +++ b/src/main/java/moe/nea/firmament/mixins/render/entitytints/UseOverlayableSkullBlockEntityRenderer.java @@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.At; @Mixin(SkullBlockEntityRenderer.class) public class UseOverlayableSkullBlockEntityRenderer { - @ModifyExpressionValue(method = "renderSkull", + @ModifyExpressionValue(method = "render(Lnet/minecraft/util/math/Direction;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/block/entity/SkullBlockEntityModel;Lnet/minecraft/client/render/RenderLayer;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/OverlayTexture;DEFAULT_UV:I")) private static int replaceUvIndex(int original) { if (EntityRenderTintEvent.overlayOverride != null) |
