IPage
基本信息
| 属性 | 值 |
|---|---|
| 类名 | amerifrance.guideapi.api.abstraction.IPage |
| 类型 | interface,7 个方法 |
| 启用版本 | Minecraft 1.7.10 |
功能
四层结构的第 4 层——页面接口。一页内容的绘制与交互契约。
| 方法 | 侧 | 说明 |
|---|---|---|
draw(Book, CategoryAbstract, EntryAbstract, guiLeft, guiTop, mouseX, mouseY, GuiBase, FontRenderer) |
CLIENT | 绘制页面主体 |
drawExtras(...) |
CLIENT | 绘制附加内容(tooltip 等) |
canSee(Book, CategoryAbstract, EntryAbstract, EntityPlayer, ItemStack, GuiEntry) |
双端 | 该玩家能否看到此页 |
onLeftClicked(...) |
CLIENT | 左键点击 |
onRightClicked(...) |
CLIENT | 右键点击 |
onInit(...) |
CLIENT | 页面初始化(进入该页时) |
equals(Object) |
双端 | 覆写 Object 契约 |
实现要点
- 7 个方法中 6 个标注
@SideOnly(Side.CLIENT), 仅canSee与equals为双端。 - 每个方法都接收完整的 4 层上下文(
Book→CategoryAbstract→EntryAbstract)加GuiEntry,使页面能反查当前页码与所属界面。 这条「把整个结构一路传下来」的签名是本 API 最大的耦合点。 canSee是唯一带EntityPlayer与ItemStack的非@SideOnly方法, 用于服务端权限判定。equals被显式列入接口(标注@Override), 因为页面在pageList中按值查找(见 PageBase 的equals实现)。
相关条目
- PageBase - 全空默认实现,绝大多数页面继承它
- EntryAbstract - 持有
List<IPage>的上层 - GuiEntry - 传入上下文的界面类
- PageText - 常用实现之一
- PageHelper - 页面切换辅助
- PageWrapper - 页面的网络包装