ICustomIconRenderer

基本信息

属性 值
全限定名 betterachievements.api.components.achievement.ICustomIconRenderer
类型 接口(Achievement 自定义图标渲染)
源文件 src/main/java/betterachievements/api/components/achievement/ICustomIconRenderer.java

功能

Achievement 实现后,可以接管 GuiBetterAchievements 中该成就图标的渲染逻辑(默认是 RenderItem.renderItemAndEffectIntoGUI(achievement.theItemStack))。

方法签名

void renderIcon(int xPos, int yPos);
参数 含义
xPos 成就图标左上角的 X 坐标(已应用缩放与平移)
yPos 成就图标左上角的 Y 坐标(已应用缩放与平移)

调用点

GuiBetterAchievements.drawAchievement(achievement):

if (achievement instanceof ICustomIconRenderer) {
    GL11.glPushMatrix();
    ((ICustomIconRenderer) achievement).renderIcon(achievementXPos, achievementYPos);
    GL11.glPopMatrix();
} else {
    RenderItem renderItem = new RenderItem();
    if (!canUnlock) {
        GL11.glColor4f(0.1F, 0.1F, 0.1F, 1.0F);
        renderItem.renderWithColor = false;
    }
    RenderHelper.enableGUIStandardItemLighting();
    GL11.glEnable(GL11.GL_CULL_FACE);
    renderItem.renderItemAndEffectIntoGUI(
        this.mc.fontRenderer, this.mc.getTextureManager(),
        achievement.theItemStack,
        achievementXPos + 3, achievementYPos + 3);
}

调用方已经 GL11.glPushMatrix,但未做 glTranslatef —— 实现方自行决定平移。

相关条目