Skip to content

For Developer (API Document)

RedLime edited this page Sep 25, 2021 · 10 revisions

Since the 2.0 update, an API has been created for the Detail Armor Bar. This API provides custom armor bars for custom armor.

Setup dependency

Add curseforge repository

repositories {
    maven {
        url "https://cursemaven.com"
    }
}

Add Detail Armor Bar to dependencies (Forge)

dependencies {
    //1.17.1 forge - "curse.maven:detailab-520755:3470830"
    //1.16.5 forge - "curse.maven:detailab-520755:3470828"
    implementation fg.deobf("curse.maven:detailab-520755:3470830")
}

Add Detail Armor Bar to dependencies (Fabric)

dependencies {
    //1.17.1 fabric - "curse.maven:detailab-506898:3470827"
    //1.16.5 fabric - "curse.maven:detailab-506898:3470826"
    modImplementation "curse.maven:detailab-506898:3470827"
}

Usage

Register Custom Armor Bar

Use

DetailArmorBarAPI.customArmorBarBuilder().armor(ArmorItem...).render([Render Option]).register()

to register your armor.

Register Item Bar

Use

DetailArmorBarAPI.customArmorBarBuilder().item(Item).render([Render Option]).register()

to register your wearable item.

Render Option

Render options are based on Function.

Therefore, a conditional expression can be given according to the situation. For this, an ItemStack is provided, and this ItemStack represents the item equipped by the player.

The texture of the armor bar is 9px x 9px in size.

new ArmorBarRenderManager(texture, textureWidth, textureHeight, new TextureOffset(offsetX, offsetY), new TextureOffset(halfOffsetX, halfOffsetY), new TextureOffset(outlineOffsetX, outlineOffsetY), new TextureOffset(halfOutlineOffsetX, halfOutlineOffsetY));
new ArmorBarRenderManager(texture, textureWidth, textureHeight, new TextureOffset(offsetX, offsetY), new TextureOffset(halfOffsetX, halfOffsetY), new TextureOffset(outlineOffsetX, outlineOffsetY), new TextureOffset(halfOutlineOffsetX, halfOutlineOffsetY), new Color());
new ItemBarRenderManager(texture, textureWidth, textureHeight, new TextureOffset(offsetX, offsetY), new TextureOffset(outlineOffsetX, outlineOffsetY), true);
new ItemBarRenderManager(texture, textureWidth, textureHeight, new TextureOffset(offsetX, offsetY), new TextureOffset(outlineOffsetX, outlineOffsetY), true, new Color());

Example

Code base

//I recommend use on client Initialize. However, API have no restrictions on when to register it.
@Override
public void onInitializeClient() {
    // if you are using Forge version
    // ResourceLocation texture = new ResourceLocation(MOD_ID, "textures/needsyourtexture.png")
    Identifier texture = new Identifier(MOD_ID, "textures/needsyourtexture.png")
    DetailArmorBarAPI.customItemBarBuilder().item(Items.CREEPER_HEAD)
            .render((ItemStack itemStack) -> new ItemBarRenderManager(texture, 128, 128, new TextureOffset(63, 0), new TextureOffset(72, 0), true, Color.WHITE))
            .register();
}

Result