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 —— 实现方自行决定平移。
相关条目
- GuiBetterAchievements - 调用方
- ICustomBackgroundColour - 同级的方框背景色接口