From 4b27632e5d83687624ce168eca71ee3b46479af0 Mon Sep 17 00:00:00 2001 From: CleverNucleus Date: Wed, 27 Jul 2022 11:09:27 +0100 Subject: [PATCH] Pushed update So this is no longer ArmorModelPredicate, because it doesn't change the model. It is now ArmorRenderLib because it is a small bit of reusable code that extends the FabricAPI ArmorRenderer to allow the dynamic changing of textures and colors of any armor item. Still in beta because while I could technically add support for predicates at this point (such as item tags), I have no need yet so I'm choosing to reduce bloat. --- README.md | 43 ++++++++++- build.gradle | 7 +- gradle.properties | 19 ++--- gradle/wrapper/gradle-wrapper.properties | 2 +- img/logo.png | Bin 0 -> 43306 bytes specification.zip | Bin 109016 -> 0 bytes .../ArmorModelPredicateProviderRegistry.java | 59 --------------- .../impl/ArmorModelPredicate.java | 9 --- .../impl/ArmorModelProvider.java | 8 --- .../impl/InvertedFunction.java | 6 -- .../impl/InvertedProvider.java | 11 --- .../impl/WrapperFunction.java | 6 -- .../mixin/ArmorFeatureRendererMixin.java | 67 ------------------ .../armorrenderlib/api/ArmorRenderData.java | 13 ++++ .../armorrenderlib/api/ArmorRenderLayer.java | 18 +++++ .../armorrenderlib/api/ArmorRenderLib.java | 26 +++++++ .../api/ArmorRenderProvider.java | 11 +++ .../impl/ArmorRenderLibImpl.java | 64 +++++++++++++++++ .../impl/ArmorTextureCache.java | 7 ++ .../impl/FeatureRendererAccessor.java | 9 +++ .../mixin/ArmorFeatureRendererInvoker.java | 18 +++++ .../mixin/ArmorFeatureRendererMixin.java | 25 +++++++ .../mixin/LivingEntityRendererMixin.java | 45 ++++++++++++ ...mixins.json => armorrenderlib.mixins.json} | 6 +- .../icon.png | Bin src/main/resources/fabric.mod.json | 19 ++--- 26 files changed, 303 insertions(+), 195 deletions(-) create mode 100644 img/logo.png delete mode 100644 specification.zip delete mode 100644 src/main/java/com/github/clevernucleus/armormodelpredicate/api/ArmorModelPredicateProviderRegistry.java delete mode 100644 src/main/java/com/github/clevernucleus/armormodelpredicate/impl/ArmorModelPredicate.java delete mode 100644 src/main/java/com/github/clevernucleus/armormodelpredicate/impl/ArmorModelProvider.java delete mode 100644 src/main/java/com/github/clevernucleus/armormodelpredicate/impl/InvertedFunction.java delete mode 100644 src/main/java/com/github/clevernucleus/armormodelpredicate/impl/InvertedProvider.java delete mode 100644 src/main/java/com/github/clevernucleus/armormodelpredicate/impl/WrapperFunction.java delete mode 100644 src/main/java/com/github/clevernucleus/armormodelpredicate/mixin/ArmorFeatureRendererMixin.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderData.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderLayer.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderLib.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderProvider.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/impl/ArmorRenderLibImpl.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/impl/ArmorTextureCache.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/impl/FeatureRendererAccessor.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/mixin/ArmorFeatureRendererInvoker.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/mixin/ArmorFeatureRendererMixin.java create mode 100644 src/main/java/com/github/clevernucleus/armorrenderlib/mixin/LivingEntityRendererMixin.java rename src/main/resources/{armor-model-predicate.mixins.json => armorrenderlib.mixins.json} (52%) rename src/main/resources/assets/{armor-model-predicate => armorrenderlib}/icon.png (100%) diff --git a/README.md b/README.md index 1c4501e..9f91c52 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,41 @@ -# ArmorModelPredicate - Adds the armor model predicates to Minecraft using Fabric Mixins. +Armor Render Lib +
+ +[![GitHub license](https://img.shields.io/github/license/CleverNucleus/ArmorRenderLib?style=flat-square)](https://github.com/CleverNucleus/ArmorRenderLib/blob/main/LICENSE) +[![GitHub stars](https://img.shields.io/github/stars/CleverNucleus/ArmorRenderLib?style=flat-square)](https://github.com/CleverNucleus/ArmorRenderLib/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/CleverNucleus/ArmorRenderLib?style=flat-square)](https://github.com/CleverNucleus/ArmorRenderLib/network) +[![GitHub issues](https://img.shields.io/github/issues/CleverNucleus/ArmorRenderLib?style=flat-square)](https://github.com/CleverNucleus/ArmorRenderLib/issues) + +Armor Render Lib is a lightweight extension library to Fabric API's fabric-rendering-v1 [ArmorRenderer](https://github.com/FabricMC/fabric/tree/1.18.2/fabric-rendering-v1). Since the Fabric API implementation is quite abstract, a more targeted implementation is needed for some specific use cases. These use cases are present across more than one of my mods, so in the spirit of code reuse this library was created. It is robust, using only a few very targeted mixins and is fully compatible with Cosmetic Armor and GeckoLib. + +### Use + +Armor Render Lib adds armor render layers. These are objects containing a dynamic texture location, color and glint boolean that render armor for an item (or items). They are roughly equivalent to Fabric API's [ArmorRenderer#renderPart](https://github.com/FabricMC/fabric/blob/f14603e8624d4cb192846321c429cc00c9ef6f55/fabric-rendering-v1/src/main/java/net/fabricmc/fabric/api/client/rendering/v1/ArmorRenderer.java#L69), but the texture, color and glint can be dynamically specified based on the `ItemStack`, `LivingEntity` and `EquipmentSlot`. + +They should be registered like so: + +```java +public class ExampleMod implements ClientModInitializer { + private static ArmorRenderProvider render(ItemStack stack, LivingEntity entity, EquipmentSlot slot) { + // Dynamic texture path + String texture = "examplemod:textures/model/armor/example_chestplate.png"; + + // Dynamic color + int color = 0xFF00FF; + + return data -> data.accept(texture, color, stack.hasGlint()); + } + + @Override + public void onInitializeClient() { + ArmorRenderLib.register(ExampleMod::render, Items.IRON_CHESTPLATE); + } +} +``` + +### Notes + +- An item can have multiple different armor render layers registered to it. +- Multiple items can have the same armor render layer registered to them. +- Registering a render layer to a vanilla item (or other armor item) overrides the default armor rendering. + - This means that the texture, color and/or enchantment glint of vanilla armor can be modified. \ No newline at end of file diff --git a/build.gradle b/build.gradle index 8920490..ce02388 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.11-SNAPSHOT' + id 'fabric-loom' version '0.12-SNAPSHOT' id 'maven-publish' } @@ -18,6 +18,7 @@ dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" } processResources { @@ -48,8 +49,8 @@ publishing { from components.java } } - + repositories { - + } } diff --git a/gradle.properties b/gradle.properties index 614b228..5218fee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,16 +1,11 @@ -# Done to increase the memory available to gradle. org.gradle.jvmargs=-Xmx1G -# Fabric Properties - # check these on https://fabricmc.net/develop - minecraft_version=1.18.1 - yarn_mappings=1.18.1+build.22 - loader_version=0.12.12 +minecraft_version=1.18.2 +yarn_mappings=1.18.2+build.3 +loader_version=0.14.6 -# Mod Properties - mod_version = 0.1.0 - maven_group = com.github.clevernucleus - archives_base_name = armor-model-predicate +mod_version = 0.1.1 +maven_group = com.github.clevernucleus +archives_base_name = armorrenderlib -# Dependencies - +fabric_version=0.55.1+1.18.2 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2e6e589..41dfb87 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d2fd1f8f8af366ff5594ee6349a0c8cbbb59f2f0 GIT binary patch literal 43306 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 z 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 a{QqfHD5EecF diff --git a/src/main/java/com/github/clevernucleus/armormodelpredicate/api/ArmorModelPredicateProviderRegistry.java b/src/main/java/com/github/clevernucleus/armormodelpredicate/api/ArmorModelPredicateProviderRegistry.java deleted file mode 100644 index 14b1be5..0000000 --- a/src/main/java/com/github/clevernucleus/armormodelpredicate/api/ArmorModelPredicateProviderRegistry.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.github.clevernucleus.armormodelpredicate.api; - -import java.util.ArrayList; -import java.util.List; - -import com.github.clevernucleus.armormodelpredicate.impl.ArmorModelPredicate; -import com.github.clevernucleus.armormodelpredicate.impl.InvertedFunction; -import com.github.clevernucleus.armormodelpredicate.impl.InvertedProvider; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.item.DyeableArmorItem; -import net.minecraft.util.Identifier; - -/** - * Register custom armor texture/colors with this class. - * - * @author CleverNucleus - * - */ -@Environment(EnvType.CLIENT) -public final class ArmorModelPredicateProviderRegistry { - private static final List PROVIDERS = new ArrayList(); - - /** - * This method can be used to register armor colors and textures. An example is provided below: - *

- * - * ArmorModelPredicateProviderRegistry.register((itemStack, entity) -> { - * return itemStack.getItem() == Items.IRON_CHESTPLATE; - * }, (itemStack, entity, legs) -> { - * Identifier texture = new Identifier("example_mod:textures/models/armor/custom_iron_layer_" + (legs ? 2 : 1) + ".png"); - * return provider -> provider.provide(texture, 0xFF0000); - * }); - * - * - * @param predicate - * @param provider - */ - public static void register(final ArmorModelPredicate predicate, final InvertedProvider provider) { - PROVIDERS.add(wrapper -> wrapper.apply(predicate, provider)); - } - - public static List providers() { - return PROVIDERS; - } - - static { - register((itemStack, entity) -> itemStack.getItem() instanceof DyeableArmorItem, (itemStack, entity, legs) -> { - Identifier texture = new Identifier("minecraft:textures/models/armor/leather_layer_" + (legs ? 2 : 1) + ".png"); - int color = ((DyeableArmorItem)itemStack.getItem()).getColor(itemStack); - return provider -> provider.provide(texture, color); - }); - register((itemStack, entity) -> itemStack.getItem() instanceof DyeableArmorItem, (itemStack, entity, legs) -> { - Identifier texture = new Identifier("minecraft:textures/models/armor/leather_layer_" + (legs ? 2 : 1) + "_overlay.png"); - return provider -> provider.provide(texture, 16777215); - }); - } -} diff --git a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/ArmorModelPredicate.java b/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/ArmorModelPredicate.java deleted file mode 100644 index 6e82167..0000000 --- a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/ArmorModelPredicate.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.github.clevernucleus.armormodelpredicate.impl; - -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; - -@FunctionalInterface -public interface ArmorModelPredicate { - boolean test(final ItemStack itemStack, final LivingEntity entity); -} diff --git a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/ArmorModelProvider.java b/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/ArmorModelProvider.java deleted file mode 100644 index 332074e..0000000 --- a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/ArmorModelProvider.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.github.clevernucleus.armormodelpredicate.impl; - -import net.minecraft.util.Identifier; - -@FunctionalInterface -public interface ArmorModelProvider { - void provide(final Identifier texture, final int color); -} diff --git a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/InvertedFunction.java b/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/InvertedFunction.java deleted file mode 100644 index b1ee37c..0000000 --- a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/InvertedFunction.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.github.clevernucleus.armormodelpredicate.impl; - -@FunctionalInterface -public interface InvertedFunction { - boolean invert(final WrapperFunction function); -} diff --git a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/InvertedProvider.java b/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/InvertedProvider.java deleted file mode 100644 index f0c76a6..0000000 --- a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/InvertedProvider.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.github.clevernucleus.armormodelpredicate.impl; - -import java.util.function.Consumer; - -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; - -@FunctionalInterface -public interface InvertedProvider { - Consumer invert(final ItemStack itemStack, final LivingEntity entity, final boolean legs); -} diff --git a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/WrapperFunction.java b/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/WrapperFunction.java deleted file mode 100644 index b751c05..0000000 --- a/src/main/java/com/github/clevernucleus/armormodelpredicate/impl/WrapperFunction.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.github.clevernucleus.armormodelpredicate.impl; - -@FunctionalInterface -public interface WrapperFunction { - boolean apply(final ArmorModelPredicate predicate, final InvertedProvider prodiver); -} diff --git a/src/main/java/com/github/clevernucleus/armormodelpredicate/mixin/ArmorFeatureRendererMixin.java b/src/main/java/com/github/clevernucleus/armormodelpredicate/mixin/ArmorFeatureRendererMixin.java deleted file mode 100644 index 87c0df3..0000000 --- a/src/main/java/com/github/clevernucleus/armormodelpredicate/mixin/ArmorFeatureRendererMixin.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.github.clevernucleus.armormodelpredicate.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; - -import com.github.clevernucleus.armormodelpredicate.api.ArmorModelPredicateProviderRegistry; - -import net.minecraft.client.render.OverlayTexture; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; -import net.minecraft.client.render.entity.feature.FeatureRenderer; -import net.minecraft.client.render.entity.feature.FeatureRendererContext; -import net.minecraft.client.render.entity.model.AnimalModel; -import net.minecraft.client.render.entity.model.BipedEntityModel; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ArmorItem; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Identifier; - -@Mixin(ArmorFeatureRenderer.class) -abstract class ArmorFeatureRendererMixin, A extends BipedEntityModel> extends FeatureRenderer { - private ArmorFeatureRendererMixin(FeatureRendererContext context, A leggingsModel, A bodyModel) { super(context); } - - private void amp_renderArmorParts(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, Identifier texture, boolean usesSecondLayer, A model, float red, float green, float blue) { - VertexConsumer vertexConsumer = ItemRenderer.getArmorGlintConsumer(vertexConsumers, RenderLayer.getArmorCutoutNoCull(texture), false, usesSecondLayer); - ((AnimalModel)model).render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, red, green, blue, 1.0F); - } - - @Inject(method = "renderArmor", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;hasGlint()Z", shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD, cancellable = true) - private void onRenderArmor(MatrixStack matrices, VertexConsumerProvider vertexConsumers, T entity, EquipmentSlot armorSlot, int light, A model, CallbackInfo info, ItemStack itemStack, ArmorItem armorItem, boolean bl) { - boolean bl2 = itemStack.hasGlint(); - boolean check = true; - - for(var function : ArmorModelPredicateProviderRegistry.providers()) { - if(function.invert((predicate, provider) -> { - if(predicate.test(itemStack, entity)) { - provider.invert(itemStack, entity, bl).accept((texture, color) -> { - float r = (float)(color >> 16 & 0xFF) / 255.0F; - float g = (float)(color >> 8 & 0xFF) / 255.0F; - float b = (float)(color & 0xFF) / 255.0F; - this.amp_renderArmorParts(matrices, vertexConsumers, light, texture, bl2, model, r, g, b); - }); - - return true; - } else { - return false; - } - })) { - check = false; - } - } - - if(check) { - this.amp_renderArmorParts(matrices, vertexConsumers, light, new Identifier("minecraft:textures/models/armor/" + armorItem.getMaterial().getName() + "_layer_" + (bl ? 2 : 1) + ".png"), bl2, model, 1.0F, 1.0F, 1.0F); - } - - info.cancel(); - } -} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderData.java b/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderData.java new file mode 100644 index 0000000..61942a7 --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderData.java @@ -0,0 +1,13 @@ +package com.github.clevernucleus.armorrenderlib.api; + +@FunctionalInterface +public interface ArmorRenderData { + + /** + * + * @param texturePath + * @param color + * @param hasGlint + */ + void accept(final String texturePath, final int color, final boolean hasGlint); +} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderLayer.java b/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderLayer.java new file mode 100644 index 0000000..9e0e9a5 --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderLayer.java @@ -0,0 +1,18 @@ +package com.github.clevernucleus.armorrenderlib.api; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.LivingEntity; +import net.minecraft.item.ItemStack; + +@FunctionalInterface +public interface ArmorRenderLayer { + + /** + * + * @param itemStack + * @param livingEntity + * @param slot + * @return + */ + ArmorRenderProvider render(final ItemStack itemStack, final LivingEntity livingEntity, final EquipmentSlot slot); +} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderLib.java b/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderLib.java new file mode 100644 index 0000000..a19092b --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderLib.java @@ -0,0 +1,26 @@ +package com.github.clevernucleus.armorrenderlib.api; + +import net.minecraft.item.ItemConvertible; + +/** + * Use this to register armor render layers! + * + * @author CleverNucleus + * + */ +public interface ArmorRenderLib { + /** + *

+ * Registers an armor render layer for the input item(s). The same armor render layer can be registered for multiple items. The same item(s) can have multiple armor render layers. The armor render layer specifies what armor texture should be used, what color should be applied (if any) and whether it has a glint. + *

+ *

+ * This is an extension of {@link net.fabricmc.fabric.api.client.rendering.v1.ArmorRenderer#render(net.minecraft.client.util.math.MatrixStack, net.minecraft.client.render.VertexConsumerProvider, net.minecraft.item.ItemStack, net.minecraft.entity.LivingEntity, net.minecraft.entity.EquipmentSlot, int, net.minecraft.client.render.entity.model.BipedEntityModel)}. + *

+ * + * @param layer + * @param items + */ + static void register(ArmorRenderLayer layer, ItemConvertible ... items) { + com.github.clevernucleus.armorrenderlib.impl.ArmorRenderLibImpl.register(layer, items); + } +} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderProvider.java b/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderProvider.java new file mode 100644 index 0000000..9e07beb --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/api/ArmorRenderProvider.java @@ -0,0 +1,11 @@ +package com.github.clevernucleus.armorrenderlib.api; + +@FunctionalInterface +public interface ArmorRenderProvider { + + /** + * + * @param data + */ + void from(final ArmorRenderData data); +} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/impl/ArmorRenderLibImpl.java b/src/main/java/com/github/clevernucleus/armorrenderlib/impl/ArmorRenderLibImpl.java new file mode 100644 index 0000000..6b5d860 --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/impl/ArmorRenderLibImpl.java @@ -0,0 +1,64 @@ +package com.github.clevernucleus.armorrenderlib.impl; + +import com.github.clevernucleus.armorrenderlib.api.ArmorRenderLayer; +import com.github.clevernucleus.armorrenderlib.mixin.ArmorFeatureRendererInvoker; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; + +import net.fabricmc.fabric.api.client.rendering.v1.ArmorRenderer; +import net.fabricmc.fabric.impl.client.rendering.ArmorRendererRegistryImpl; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.OverlayTexture; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; +import net.minecraft.client.render.entity.model.BipedEntityModel; +import net.minecraft.client.render.item.ItemRenderer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.LivingEntity; +import net.minecraft.item.ArmorItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemConvertible; +import net.minecraft.item.ItemStack; + +public final class ArmorRenderLibImpl { + private static final Multimap RENDERERS = ArrayListMultimap.create(); + + @SuppressWarnings("unchecked") + private static , A extends BipedEntityModel> void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, ItemStack stack, LivingEntity entity, EquipmentSlot slot, int light, BipedEntityModel contextModel) { + if(!(stack.getItem() instanceof ArmorItem)) return; + ArmorItem item = (ArmorItem)stack.getItem(); + + if(item.getSlotType() != slot) return; + var entityRenderer = MinecraftClient.getInstance().getEntityRenderDispatcher().getRenderer(entity); + ArmorFeatureRenderer armorFeatureRenderer = (ArmorFeatureRenderer)((FeatureRendererAccessor)entityRenderer).getFeatureRenderer(ArmorFeatureRenderer.class); + A model = ((ArmorFeatureRendererInvoker)armorFeatureRenderer).invokeGetArmor(slot); + contextModel.setAttributes((BipedEntityModel)model); + ((ArmorFeatureRendererInvoker)armorFeatureRenderer).invokeSetVisible(model, slot); + + for(ArmorRenderLayer layer : RENDERERS.get(item)) { + layer.render(stack, entity, slot).from((path, color, glint) -> { + float red = (float)(color >> 16 & 0xFF) / 255.0F; + float green = (float)(color >> 8 & 0xFF) / 255.0F; + float blue = (float)(color & 0xFF) / 255.0F; + + VertexConsumer vertexConsumer = ItemRenderer.getArmorGlintConsumer(vertexConsumers, RenderLayer.getArmorCutoutNoCull(((ArmorTextureCache)armorFeatureRenderer).getOrCache(path)), false, glint); + model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, red, green, blue, 1.0F); + }); + } + } + + public static void register(ArmorRenderLayer layer, ItemConvertible ... items) { + if(items == null || items.length == 0) return; + + for(ItemConvertible item : items) { + if(ArmorRendererRegistryImpl.get(item.asItem()) == null) { + ArmorRenderer.register(ArmorRenderLibImpl::render, item); + } + + RENDERERS.put(item.asItem(), layer); + } + } +} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/impl/ArmorTextureCache.java b/src/main/java/com/github/clevernucleus/armorrenderlib/impl/ArmorTextureCache.java new file mode 100644 index 0000000..492415a --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/impl/ArmorTextureCache.java @@ -0,0 +1,7 @@ +package com.github.clevernucleus.armorrenderlib.impl; + +import net.minecraft.util.Identifier; + +public interface ArmorTextureCache { + Identifier getOrCache(final String path); +} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/impl/FeatureRendererAccessor.java b/src/main/java/com/github/clevernucleus/armorrenderlib/impl/FeatureRendererAccessor.java new file mode 100644 index 0000000..a6330f7 --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/impl/FeatureRendererAccessor.java @@ -0,0 +1,9 @@ +package com.github.clevernucleus.armorrenderlib.impl; + +import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.entity.LivingEntity; + +public interface FeatureRendererAccessor> { + ArmorFeatureRenderer getFeatureRenderer(Object key); +} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/mixin/ArmorFeatureRendererInvoker.java b/src/main/java/com/github/clevernucleus/armorrenderlib/mixin/ArmorFeatureRendererInvoker.java new file mode 100644 index 0000000..541d6e5 --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/mixin/ArmorFeatureRendererInvoker.java @@ -0,0 +1,18 @@ +package com.github.clevernucleus.armorrenderlib.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; +import net.minecraft.client.render.entity.model.BipedEntityModel; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.LivingEntity; + +@Mixin(ArmorFeatureRenderer.class) +public interface ArmorFeatureRendererInvoker, A extends BipedEntityModel> { + @Invoker("getArmor") + public A invokeGetArmor(EquipmentSlot slot); + + @Invoker("setVisible") + public void invokeSetVisible(A bipedModel, EquipmentSlot slot); +} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/mixin/ArmorFeatureRendererMixin.java b/src/main/java/com/github/clevernucleus/armorrenderlib/mixin/ArmorFeatureRendererMixin.java new file mode 100644 index 0000000..bf0e49e --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/mixin/ArmorFeatureRendererMixin.java @@ -0,0 +1,25 @@ +package com.github.clevernucleus.armorrenderlib.mixin; + +import java.util.Map; + +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import com.github.clevernucleus.armorrenderlib.impl.ArmorTextureCache; + +import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; +import net.minecraft.util.Identifier; + +@Mixin(value = ArmorFeatureRenderer.class, priority = 900) +abstract class ArmorFeatureRendererMixin implements ArmorTextureCache { + + @Shadow + @Final + private static Map ARMOR_TEXTURE_CACHE; + + @Override + public Identifier getOrCache(final String path) { + return ARMOR_TEXTURE_CACHE.computeIfAbsent(path, Identifier::new); + } +} diff --git a/src/main/java/com/github/clevernucleus/armorrenderlib/mixin/LivingEntityRendererMixin.java b/src/main/java/com/github/clevernucleus/armorrenderlib/mixin/LivingEntityRendererMixin.java new file mode 100644 index 0000000..4ebb4d8 --- /dev/null +++ b/src/main/java/com/github/clevernucleus/armorrenderlib/mixin/LivingEntityRendererMixin.java @@ -0,0 +1,45 @@ +package com.github.clevernucleus.armorrenderlib.mixin; + +import java.util.List; +import java.util.Map; + +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import com.github.clevernucleus.armorrenderlib.impl.FeatureRendererAccessor; + +import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap; +import net.minecraft.client.render.entity.LivingEntityRenderer; +import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; +import net.minecraft.client.render.entity.feature.FeatureRenderer; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.entity.LivingEntity; + +@Mixin(LivingEntityRenderer.class) +abstract class LivingEntityRendererMixin> implements FeatureRendererAccessor { + + @Unique + private final Map>, FeatureRenderer> arl_features = new Object2ObjectArrayMap<>(); + + @SuppressWarnings("unchecked") + @Inject(method = "addFeature", at = @At("HEAD"), cancellable = true) + private void arl_addFeature(FeatureRenderer feature, CallbackInfoReturnable info) { + this.arl_features.put((Class>)feature.getClass(), feature); + info.setReturnValue(true); + } + + @Redirect(method = "render", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;features:Ljava/util/List;", opcode = Opcodes.GETFIELD)) + private List> arl_get(LivingEntityRenderer renderer) { + return this.arl_features.values().stream().toList(); + } + + @Override + public ArmorFeatureRenderer getFeatureRenderer(Object key) { + return (ArmorFeatureRenderer)this.arl_features.get(key); + } +} diff --git a/src/main/resources/armor-model-predicate.mixins.json b/src/main/resources/armorrenderlib.mixins.json similarity index 52% rename from src/main/resources/armor-model-predicate.mixins.json rename to src/main/resources/armorrenderlib.mixins.json index 0c77989..0c96be4 100644 --- a/src/main/resources/armor-model-predicate.mixins.json +++ b/src/main/resources/armorrenderlib.mixins.json @@ -1,13 +1,15 @@ { "required": true, "minVersion": "0.8", - "package": "com.github.clevernucleus.armormodelpredicate.mixin", + "package": "com.github.clevernucleus.armorrenderlib.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ ], "client": [ - "ArmorFeatureRendererMixin" + "LivingEntityRendererMixin", + "ArmorFeatureRendererMixin", + "ArmorFeatureRendererInvoker" ], "injectors": { "defaultRequire": 1 diff --git a/src/main/resources/assets/armor-model-predicate/icon.png b/src/main/resources/assets/armorrenderlib/icon.png similarity index 100% rename from src/main/resources/assets/armor-model-predicate/icon.png rename to src/main/resources/assets/armorrenderlib/icon.png diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 287f516..ae5c2a6 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,19 +1,19 @@ { "schemaVersion": 1, - "id": "armor-model-predicate", + "id": "armorrenderlib", "version": "${version}", - "name": "Armor Model Predicate", - "description": "Adds armor model predicates to Minecraft using Fabric Mixins.", + "name": "Armor Render Lib", + "description": "Extends Fabric API's armor renderer registry to enable a more specific implementation.", "authors": [ "CleverNucleus" ], "contact": { - "homepage": "https://github.com/CleverNucleus/ArmorModelPredicate", - "sources": "https://github.com/CleverNucleus/ArmorModelPredicate" + "homepage": "https://github.com/CleverNucleus/ArmorRenderLib", + "sources": "https://github.com/CleverNucleus/ArmorRenderLib" }, "license": "MIT", - "icon": "assets/armor-model-predicate/icon.png", + "icon": "assets/armorrenderlib/icon.png", "environment": "*", "entrypoints": { @@ -22,11 +22,12 @@ ] }, "mixins": [ - "armor-model-predicate.mixins.json" + "armorrenderlib.mixins.json" ], "depends": { - "fabricloader": ">=0.12.12", - "minecraft": "1.18.x", + "fabricloader": ">=0.14.6", + "fabric": ">=0.55.1", + "minecraft": "1.18.2", "java": ">=17" } } \ No newline at end of file