From b482670b0f65ad343a85a916ccac2fa86fdbc9dc Mon Sep 17 00:00:00 2001 From: Leo dev Date: Thu, 27 Mar 2025 18:56:43 +0100 Subject: [PATCH] diamond armor rendering (for hats) --- .../saturnclient/SaturnClient.java | 24 +++++++------------ .../mixin/ArmorFeatureRendererMixin.java | 21 ++++++++++++++++ src/main/resources/saturnclient.mixins.json | 7 +++++- 3 files changed, 36 insertions(+), 16 deletions(-) create mode 100644 src/main/java/org/saturnclient/saturnclient/mixin/ArmorFeatureRendererMixin.java diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 83a0f5f..c2c1ab5 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -28,20 +28,16 @@ public class SaturnClient implements ModInitializer { public static ConfigManager config = new ConfigManager("Saturn Client"); public static Property COLOR = config.property( - "Primary color", - new Property( - ColorHelper.getArgb(255, 251, 60, 79), - Property.PropertyType.HEX - ) - ); + "Primary color", + new Property( + ColorHelper.getArgb(255, 251, 60, 79), + Property.PropertyType.HEX)); public static Property NORMAL = config.property( - "Default color", - new Property( - ColorHelper.getArgb(255, 182, 182, 182), - Property.PropertyType.HEX - ) - ); + "Default color", + new Property( + ColorHelper.getArgb(255, 182, 182, 182), + Property.PropertyType.HEX)); public static int WHITE = ColorHelper.getArgb(255, 255, 255, 255); public static TextRenderer textRenderer = null; @@ -60,9 +56,7 @@ public class SaturnClient implements ModInitializer { ModManager.init(); ConfigManager.load(); - ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> - ConfigManager.save() - ); + ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> ConfigManager.save()); KeyInputHandler.register(); if (SaturnSocket.authenticate()) { diff --git a/src/main/java/org/saturnclient/saturnclient/mixin/ArmorFeatureRendererMixin.java b/src/main/java/org/saturnclient/saturnclient/mixin/ArmorFeatureRendererMixin.java new file mode 100644 index 0000000..a677ab8 --- /dev/null +++ b/src/main/java/org/saturnclient/saturnclient/mixin/ArmorFeatureRendererMixin.java @@ -0,0 +1,21 @@ +package org.saturnclient.saturnclient.mixin; + +import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; +import net.minecraft.client.render.entity.state.BipedEntityRenderState; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(ArmorFeatureRenderer.class) +public class ArmorFeatureRendererMixin { + @Redirect(method = "render", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/entity/state/BipedEntityRenderState;equippedHeadStack:Lnet/minecraft/item/ItemStack;", opcode = org.objectweb.asm.Opcodes.GETFIELD)) + private ItemStack redirectEquippedHeadStack(BipedEntityRenderState state) { + ItemStack original = state.equippedHeadStack; + if (original.isEmpty()) { + return new ItemStack(Items.DIAMOND_HELMET); + } + return original; + } +} \ No newline at end of file diff --git a/src/main/resources/saturnclient.mixins.json b/src/main/resources/saturnclient.mixins.json index 770306a..9359c5c 100644 --- a/src/main/resources/saturnclient.mixins.json +++ b/src/main/resources/saturnclient.mixins.json @@ -3,7 +3,12 @@ "minVersion": "0.8", "package": "org.saturnclient.saturnclient.mixin", "compatibilityLevel": "JAVA_17", - "client": ["CapeRenderer", "TabListMixin", "NameTagMixin"], + "client": [ + "CapeRenderer", + "TabListMixin", + "NameTagMixin", + "ArmorFeatureRendererMixin" + ], "injectors": { "defaultRequire": 1 }