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 实现)。

相关条目