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 书被加载到空的注册表前面。
相关条目