CategoryAbstract
基本信息
| 属性 | 值 |
|---|---|
| 类名 | amerifrance.guideapi.api.abstraction.CategoryAbstract |
| 类型 | abstract class,2 个 public 字段 + 12 个方法 |
| 启用版本 | Minecraft 1.7.10 |
功能
四层结构的第 2 层——分类的抽象基类。持有条目列表并定义分类在 GUI 上的绘制、可见性与点击行为。
已实现的方法
| 分类 | 方法 |
|---|---|
| 列表操作 | addEntry、removeEntry、addEntryList、removeEntryList |
| 本地化 | getLocalizedName |
| 提示 | getTooltip(默认返回只含本地化名的单元素列表) |
| 值语义 | equals、hashCode |
必须由子类实现的方法
| 方法 | 侧 | 说明 |
|---|---|---|
draw(...) |
CLIENT | 在分类列表中绘制自身(参数含 drawOnLeft、RenderItem) |
drawExtras(...) |
CLIENT | 绘制附加信息 |
canSee(EntityPlayer, ItemStack) |
双端 | 该玩家能否看到此分类 |
onLeftClicked(...) |
CLIENT | 左键点击 |
onRightClicked(...) |
CLIENT | 右键点击 |
onInit(...) |
CLIENT | 界面初始化(GuiHome 上下文) |
实现要点
entryList与unlocCategoryName是public非 final 字段, 子类与外部代码可直接改写,绕过 4 个add*/remove*方法。equals/hashCode只比较entryList与unlocCategoryName, 不比较子类特有的图标字段(如CategoryItemStack的ItemStack), 因此两个图标不同但条目列表相同的分类会被判相等。getTooltip()的默认实现返回new ArrayList并只放入本地化名, 供 GuiHome 统一渲染悬浮提示。
相关条目
- CategoryBase - 直接继承本类的默认实现
- CategoryItemStack - 用物品作图标的实现
- CategoryResourceLocation - 用纹理作图标的实现
- EntryAbstract - 第 3 层
- Book - 持有本类的上层
- GuiHome - 调用
draw/canSee的界面