KAMI 材料与工具
基本信息
| 属性 |
值 |
| 物品数量 |
13(ItemKamiResource 8 种形态 + 5 件独立物品) |
| 注册位置 |
TTRegistry.java:105-109(ItemIchorPouch、ItemKamiResource、ItemPlacementMirror、ItemProtoclay、ItemSkyPearl) |
| 注册门槛 |
5 类全部为 ConfigHandler.enableKami —— ItemIchorPouch 直接覆写;其余 4 类继承 ItemKamiBase.shouldRegister()(ItemKamiBase.java:9-11) |
ItemKamiResource:单类 8 形态
ItemKamiResource(TTRegistry.java:106)是一个物品类 + 8 个 meta 形态,而非 8 个注册项。形态名由 LibItemNames.KAMI_RESOURCE_NAMES 数组给出(LibItemNames.java 中该数组为 { "ichor", "ichorCloth", "ichorium", "ichorNugget", "ichorCap", "ichorclothRod", "netherShard", "enderShard" })。
| meta |
资源名 |
说明 |
| 0 |
ichor |
血凝 |
| 1 |
ichorCloth |
血凝布 |
| 2 |
ichorium |
血凝块 |
| 3 |
ichorNugget |
血凝粒 |
| 4 |
ichorCap |
血凝帽(研究键 CAP_ICHOR) |
| 5 |
ichorclothRod |
血凝布棍(研究键 ROD_ICHORCLOTH) |
| 6 |
netherShard |
下界碎片 |
| 7 |
enderShard |
末地碎片 |
- 未本地化名:
par1ItemStack.getItemDamage() >= subtypes 时回退到 super.getUnlocalizedName()(ItemKamiResource.java:76-77)。
- 稀有度:
getItemDamage() 为 6 或 7 时返回 super.getRarity(),其余形态返回 TTCommonProxy.kamiRarity(ItemKamiResource.java:82)。即两个维度碎片不使用 KAMI 稀有度。
- 图标:
icons[Math.min(subtypes - 1, par1)](ItemKamiResource.java:71),越界 meta 钳制到最后一个图标。
独立物品
| 物品 |
注册名 |
Java 类 |
基础类 |
说明 |
| 血凝袋 |
ichorPouch |
ItemIchorPouch |
ItemKamiBase |
117 格容器(13×9),有专属 GUI |
| 幻位镜 |
placementMirror |
ItemPlacementMirror |
ItemKamiBase |
Worldshaper 的幻影方块显示,保存为 TTRegistry.itemPlacementMirror(TTRegistry.java:30) |
| 原土 |
protoclay |
ItemProtoclay |
ItemKamiBase |
shouldRegister() 额外向 MinecraftForge.EVENT_BUS 注册一个内部 EventHandler 后再 super.shouldRegister() |
| 天空珍珠 |
skyPearl |
ItemSkyPearl |
ItemKamiBase |
LibResearch 中的 KEY_SKY_PEARL 在本仓库内无构造点 |
| 黑洞护符 |
blockTalisman |
ItemBlockTalisman |
ItemKamiBase |
Bauble;保存为 TTRegistry.itemBlackHoleTalisman(TTRegistry.java:31) |
ItemIchorPouch 与 ItemBlockTalisman 均实现 Baubles 的 IBauble 接口,与 护符与饰品 归为同一维度,此处不重复描述。
数值
| 数值 |
值 |
来源 |
ItemKamiResource 形态数 |
8 |
LibItemNames.KAMI_RESOURCE_NAMES |
| 血凝袋槽位数 |
13 × 9 = 117 |
ContainerIchorPouch.java:37-38(y * 13 + x,循环上界 y < 9 / x < 13) |
| 血凝袋玩家背包起始槽 |
currentItem + 27 + 13 * 9 |
ContainerIchorPouch.java:36 |
交互
- 血凝袋容器初始化被静默吞异常:
ContainerIchorPouch 构造函数中 ((InventoryIchorPouch) inv).stackList = ((ItemFocusPouch) pouch.getItem()).getInventory(pouch); 被包在 try { … } catch (Exception ignored) {} 中(ContainerIchorPouch.java:41-43)—— 捕获后为空语句体,不打印也不重抛。若手持物不是 ItemFocusPouch,stackList 将保持未赋值而容器继续构造。
- 原土注册顺序:
ItemProtoclay.shouldRegister() 先执行 MinecraftForge.EVENT_BUS.register(new EventHandler()),再返回 super.shouldRegister()(即 ItemBase 的 true)。该事件订阅在方法被调用时即已生效,与返回值无关。
- 幻位镜显示可关闭:由
ConfigHandler.showPlacementMirrorBlocks(配置键 placementMirror.blocks.show,默认 true)控制读取方为 TTClientProxy.java:114。
研究
| 物品 |
研究键 |
键值 |
ItemKamiResource |
KEY_DIMENSION_SHARDS |
DIMENSION_SHARDS |
ItemKamiResource |
KEY_ICHOR |
ICHOR |
| 血凝袋 |
KEY_ICHOR_POUCH |
ICHOR_POUCH |
| 幻位镜 |
KEY_PLACEMENT_MIRROR |
PLACEMENT_MIRROR |
| 原土 |
KEY_PROTOCLAY |
PROTOCLAY |
| 天空珍珠 |
无 |
KEY_SKY_PEARL 在本仓库内无构造点 |
相关条目