IAppleCoreRegistry
基本信息
| 属性 | 值 |
|---|---|
| 类名 | squeek.applecore.api.IAppleCoreRegistry |
| 类型 | interface,3 个方法 |
| 实现 | AppleCoreRegistryImpl(枚举单例) |
| 启用版本 | Minecraft 1.7.10 |
功能
维护「可吃方块 ↔ 对应物品」的双向映射表。之所以需要这张表,是因为原版
Block.getBlockFromItem / Item.getItemFromBlock 是按方块物品元数据反推的,
对 Blocks.cake ↔ Items.cake 这类并非元数据派生的配对会返回 null。
| 方法 | 说明 |
|---|---|
registerEdibleBlock(Block, Item) |
手工登记一对映射 |
getItemFromEdibleBlock(Block) |
查表;无记录时回退 Item.getItemFromBlock |
getEdibleBlockFromItem(Item) |
查表;无记录时回退 Block.getBlockFromItem |
实现要点
- Javadoc 明确给出示例:
Blocks.cake <-> Items.cake的关系必须手工登记, 否则查询失败。 - 两个查询方法都有回退逻辑,因此对普通方块物品无需登记;
登记只对
getBlockFromItem行为异常的配对是必需的。 - BlockCakeMixin 是内置的唯一查询调用点。
相关条目
- AppleCoreRegistryImpl - 实际实现
- BlockCakeMixin - 内置调用方,查询
getItemFromEdibleBlock - IEdibleBlock - 可吃方块的接口,配合本表使用