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 在本仓库内无构造点

相关条目