IRecipeRenderer
基本信息
| 属性 | 值 |
|---|---|
| 类名 | amerifrance.guideapi.api.abstraction.IRecipeRenderer |
| 类型 | interface + 1 个内部抽象类 RecipeRendererBase<T> |
| 启用版本 | Minecraft 1.7.10 |
功能
配方在指南书页面中的渲染器接口,与 IPage 平行但独立。
接口方法
| 方法 | 侧 | 说明 |
|---|---|---|
draw(Book, CategoryAbstract, EntryAbstract, guiLeft, guiTop, mouseX, mouseY, GuiBase, FontRenderer) |
CLIENT | 绘制配方 |
drawExtras(...) |
CLIENT | 绘制 tooltip 等附加内容 |
内部类 RecipeRendererBase<T extends IRecipe>
| 成员 | 说明 |
|---|---|
protected T recipe |
持有的配方实例 |
protected List<String> tooltips |
累积的提示文本(Lists.newArrayList()) |
RecipeRendererBase(T recipe) |
构造器,存入 recipe |
drawExtras(...) |
调 guiBase.func_146283_a(tooltips, mouseX, mouseY) 后 tooltips.clear() |
实现要点
- 内部类只实现
drawExtras(即上面表格里两个方法中的一个),draw仍为抽象。 drawExtras的实现模式是「子类在draw里往tooltips塞字符串, 框架统一在drawExtras里渲染并清空」——即 producer/consumer 约定。 因此子类必须覆写drawExtras才能显示提示。- 5 个具体渲染器都继承 BasicRecipeRenderer, 而不是直接实现本接口。
相关条目
- BasicRecipeRenderer - 通用实现基类
- PageIRecipe - 使用渲染器的页面
- ShapedRecipesRenderer - 有序配方
- ShapelessRecipesRenderer - 无序配方
- IPage - 平行的页面接口