BookCreator

基本信息

属性 值
类名 amerifrance.guideapi.util.serialization.BookCreator
类型 class,2 个静态方法 + 6 个静态内部类
内部类 CustomItemStackJson、CustomColorJson、CustomPageJson、CustomEntryJson、CustomCategoryJson、CustomBookJson
启用版本 Minecraft 1.7.10

功能

Gson 反序列化基础设施:注册自定义类型适配器,并从 JSON 加载整本书。

两个静态方法

方法 调用时机 作用
registerCustomSerializers(GsonBuilder) preInit 往 builder 注册 6 个自定义适配器
registerJsonBooks(GsonBuilder) postInit 扫描并加载 JSON 书文件

6 个内部 JSON 适配器

内部类 负责的类型
CustomItemStackJson ItemStack
CustomColorJson java.awt.Color
CustomPageJson IPage
CustomEntryJson EntryAbstract
CustomCategoryJson CategoryAbstract
CustomBookJson Book

实现要点

  • GuideRegistry.bookBuilder 在 preInit 中被赋为 new GsonBuilder(), 适配器随即注册;实际 .create() 与文件读取发生在 postInit。
  • 适配器全部实现 ITypeReader(JsonSerializer + JsonDeserializer 双向)。
  • 分层的 JSON 反序列化是 Guide-API 的卖点之一(README: Also allows book creation via JSON files.), 即书的内容可以不写 Java 代码而从 JSON 定义。
  • registerJsonBooks 放在 postInit 而非 preInit, 是为了让所有依赖方 mod 都有机会先 registerBook, 避免 JSON 书被加载到空的注册表前面。

相关条目