EntryAbstract
基本信息
| 属性 | 值 |
|---|---|
| 类名 | amerifrance.guideapi.api.abstraction.EntryAbstract |
| 类型 | abstract class,3 个 public 字段 + 12 个方法 |
| 启用版本 | Minecraft 1.7.10 |
功能
四层结构的第 3 层——条目的抽象基类。持有页面列表并定义条目在 GUI 上的绘制、可见性与点击行为。
字段
| 字段 | 类型 | 说明 |
|---|---|---|
pageList |
List<IPage> |
本条目的页面列表 |
unlocEntryName |
String |
条目名的本地化键 |
unicode |
boolean |
是否用 Unicode 字体渲染 |
已实现的方法
- 列表操作:
addPage、removePage、addPageList、removePageList - 本地化:
getLocalizedName(走StatCollector.translateToLocal) - 值语义:
equals、hashCode(比较pageList+unlocEntryName)
必须由子类实现的方法
| 方法 | 侧 | 说明 |
|---|---|---|
draw(...) |
CLIENT | 在分类页中绘制自身 |
drawExtras(...) |
CLIENT | 绘制附加信息 |
canSee(EntityPlayer, ItemStack) |
双端 | 该玩家能否看到此条目 |
onLeftClicked(...) |
CLIENT | 左键点击 |
onRightClicked(...) |
CLIENT | 右键点击 |
onInit(...) |
CLIENT | 界面初始化(GuiCategory 上下文) |
实现要点
- 提供 2 个构造器:
EntryAbstract(List, String, boolean)主构造器, 与EntryAbstract(List, String)便捷重载(unicode传false)。 - 主构造器参数声明为裸
List(无泛型),而pageList字段是List<IPage>——存在未检查转换。 equals/hashCode不比较unicode字段, 两个仅字体设置不同的条目会被判相等。unicode字段被 PageBase 读取以决定字体: 条目的 unicode 设置需要显式下传给页面。
相关条目
- EntryBase - 直接继承本类的默认实现
- EntryText - 文本条目实现
- EntryUniText - Unicode 文本条目实现
- EntryItemStack - 物品条目实现
- EntryResourceLocation - 纹理条目实现
- IPage - 第 4 层
- CategoryAbstract - 第 2 层
- ItemGuideBook - 按
unlocEntryName定位条目