护甲渲染库

护甲渲染库

为Fabric API的ArmorRenderer提供的小型扩展库,具有更针对性和具体的实现,以动态更改盔甲纹理和颜色。

装备

Armor Render Lib

Armor Render Lib 是 Fabric API 的 fabric-rendering-v1 ArmorRenderer 的一个轻量级扩展库。由于 Fabric API 的实现相当抽象,某些特定用例需要更有针对性的实现。这些用例出现在我的多个模组中,因此本着代码复用的精神创建了这个库。它非常健壮,仅使用少量非常有针对性的 mixin,并且与 Cosmetic Armor 和 GeckoLib 完全兼容。

构建

要将此库包含到你的项目中,请将以下内容复制到你的 build.gradle 中:

repositories {
    maven {
        name = "Modrinth"
        url = "https://api.modrinth.com/maven"
        content {
            includeGroup "maven.modrinth"
        }
    }
}
dependencies {
    modImplementation "maven.modrinth:armor-render-lib:<version>"
    include "maven.modrinth:armor-render-lib:<version>"
}

使用

Armor Render Lib 添加了盔甲渲染层。这些对象包含动态纹理位置、颜色以及闪烁布尔值,用于为某个(或某些)物品渲染盔甲。它们大致相当于 Fabric API 的 ArmorRenderer#renderPart,但纹理、颜色和闪烁可以根据 ItemStack、LivingEntity 和 EquipmentSlot 动态指定。

它们应该这样注册:

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);
    }
}

注意事项

  • 一个物品可以注册多个不同的盔甲渲染层。
  • 多个物品可以注册同一个盔甲渲染层。
  • 将渲染层注册到原版物品(或其他盔甲物品)会覆盖默认的盔甲渲染。
    • 这意味着原版盔甲的纹理、颜色和/或附魔闪烁可以被修改。