治疗槽多方块结构
基本信息
| 属性 | 值 |
|---|---|
| 结构名称 | Curative Vat(治疗槽) |
| 主控方块 | ThaumicHorizons:vat(BlockVat,无参构造) |
| 组成部分 | ThaumicHorizons:vatSolid、ThaumicHorizons:vatInterior、可选顶盖 ThaumicHorizons:modMatrix |
| 主控 TileEntity | TileVat —— 由 metadata == 7 选出(common/blocks/BlockVat.java:56-57) |
| 附属 TileEntity | TileVatConnector(metadata == 4)、TileVatSlave(其余 metadata)(common/blocks/BlockVat.java:58-61) |
| GUI ID | 7(common/CommonProxy.java:91-93 容器端 / client/ClientProxy.java 同号客户端) |
| 硬度 / 抗性 / 光照 | 3.0 / 15.0 / 8(common/blocks/BlockVat.java:34-36;BlockVatInterior 完全相同) |
| 研究条目 | healingVat(复杂度 8)、incarnationVat(10)、infusionVat(10),见 研究列表 |
功能
治疗槽是本模组的核心结构,同一套方块按注入的要素不同而承担三种截然不同的用途,对应三条研究线。
一、治疗(healingVat)
槽体本身即为「诊断—配药」装置:接受受伤生物进入后自动判定伤情并向内注入对应要素。语言表 incarnationVat/healingVat 研究页原文给出的要素分工(src/main/resources/assets/thaumichorizons/lang/en_US.lang):
| 要素 | 作用 |
|---|---|
| §5 Victu§0 | 缓慢恢复已损失生命值 |
| §5 Fames§0 | 补充饥饿值 |
| §5 Sano§0 | 快速恢复生命值,并驱散多数负面状态效果 |
| §5 Mortuus§0 | 对亡灵缓慢恢复生命值 |
| §5 Exanimis§0 | 对亡灵更高效地恢复生命值 |
进出方式:右键槽盖的检修口(access hatch)。检修口同时兼作扩展口(healingVat2 原文),即 TileVatConnector 所负责的连接部位。
二、化身 / 克隆(incarnationVat)
流程:放入目标生物的组织样本(肉块,或装有该生物血液的封禁注射器)→ 注入 4 点 §5 Victu§0 要素点燃生长 → 持续供给营养 → 成年后用空封禁罐右键取出。
incarnationVat2 明确记载两条限制:克隆体在生长中会自行凝聚灵魂(因此人类克隆必然失败);砸开装有生物的槽会造成生物死亡。healingVatContainment 页补充:用封禁罐可将捕获的生物放入槽内,空罐又可将其取出;同样地,砸开装有生物的槽会让其身体溶解为流质并从槽中爆炸性喷出。
代码侧对应常量:EFFIGY_ESSENTIA_AMOUNT = 8(common/tiles/TileVat.java:100)、BLOOD_SAMPLE_LIFE_COST = 4(:101)、BLOOD_SAMPLE_INITIAL_PROGRESS = 40(:87)、CLONE_PROGRESS = 800(:82)、COUNT_DELAY = 10(:83)。
三、生物注入(infusionVat)
槽顶必须先安装改造符文矩阵(ThaumicHorizons:modMatrix / TileVatMatrix)—— 研究页 infusionVat1 原文即以「You must first install a modified runic matrix atop the vat」开篇,并警告直接对符文矩阵做注入会产生可观的魔法反馈。
运行方式与 TC4 普通注入祭坛几乎相同,区别是要素必须由管道直接接入(infusionVat2)。代码中 TileVat implements IAspectContainer(common/tiles/TileVat.java),TileVatMatrix extends TileVisNode implements IWandable, IAspectContainer(common/tiles/TileVatMatrix.java:18)。
限制(infusionVat2 / infusionVat3 原文):
- 过程不可中止,只能以成功或死亡告终;
- 累积的「不稳定度」会伤害实验对象,强度高时直接致死;
- 注入 §3 Aqua§0、§7 Ordo§0、§2 Terra§0 三种 centivis 的组合可减缓受伤速率;
- 人类及有智慧的生物无法注入(人类灵魂会干扰魔法能量注入);
- 不死生物与傀儡等本身即魔法造物的生物不受影响;
- 同一生物可拥有任意多条通用注入,但物种专属注入最多一条;
- 被注入的生物不会把注入遗传给后代;
- 克隆被注入的生物时(
infusionVatClone页),需提供各次注入所用要素之和,但血样已包含完整图样,不产生不稳定度也无需任何实体材料,因此克隆是繁殖注入生物的高效途径。
数值
common/tiles/TileVat.java:82-102 中的全部 private static final 调参常量:
| 常量名 | 值 | 行 |
|---|---|---|
CLONE_PROGRESS |
800 | 82 |
COUNT_DELAY |
10 | 83 |
HEAL_ASPECT_COOLDOWN |
40 | 84 |
LIFE_ASPECT_COOLDOWN |
50 | 85 |
EFFIGY_PROGRESS |
80 | 86 |
BLOOD_SAMPLE_INITIAL_PROGRESS |
40 | 87 |
INFUSER_SOUND_INTERVAL |
65 | 88 |
CRAFTCOUNT_WIND_DOWN_MAX |
50 | 89 |
INSTABILITY_EFFECT_CHANCE |
200 | 90 |
INSTABILITY_CRAFT_CHANCE |
500 | 91 |
INSTABILITY_INCREASE_CHANCE_BASE |
100 | 92 |
MAX_INSTABILITY |
25 | 93 |
EFFIGY_ESSENTIA_AMOUNT |
8 | 100 |
BLOOD_SAMPLE_LIFE_COST |
4 | 101 |
VIS_DRAIN_AMOUNT |
100 | 102 |
不稳定度的封顶逻辑位于 common/tiles/TileVat.java:1055-1056:
1055: if (this.instability > MAX_INSTABILITY) {
1056: this.instability = MAX_INSTABILITY;
即 instability 单向增长并在 25 处截断,不做衰减。*_CHANCE 常量(200/500/100)参与随机判定,具体掷骰实现未逐一核对。
交互
| 触发 | 行为 |
|---|---|
| 右键槽盖检修口 | 进入 / 离开治疗槽(healingVat2) |
| 右键(手持封禁罐) | 放入捕获的生物;空手罐则取出(healingVatContainment) |
| 右键(成年克隆体就绪时持空罐) | 取出克隆体(incarnationVat2) |
| 供给要素 | 需由 TileVatConnector(implements IEssentiaTransport)从 Essentia 管道接入 |
| 破坏装有生物的槽 | 生物死亡 / 溶解并爆炸(incarnationVat2、healingVatContainment) |
| GUI | ID 7,ContainerVat + GuiVat |
TileVatSlave 与 TileVatConnector 的继承关系:TileVatSlave extends TileThaumcraft implements IAspectContainer(common/tiles/TileVatSlave.java:16),TileVatConnector extends TileVatSlave implements IEssentiaTransport, ISidedInventory(common/tiles/TileVatConnector.java:15)。附属方块在主控消失时通过 killMyBoss(md) 通知主控(common/tiles/TileVatSlave.java:131,调用点 common/blocks/BlockVat.java:66-71)。
合成配方
槽体本身不在本模组的任何工作台配方中产出。顶盖所需的改造符文矩阵由一条 Thaumcraft 4 注入配方产出(common/ThaumicHorizons.java:1447-1455):
| 项 | 值 |
|---|---|
| 配方 API | ThaumcraftApi.addInfusionCraftingRecipe,配方名 "infusionVat" |
| 产物 | ThaumicHorizons:modMatrix(1 个) |
| 注入等级 | 10 |
| 所需要素 | LIFE 32 + CRAFT 32 + MAGIC 32 + BEAST 32(四系各 32) |
| 输入基底 | thaumcraft:blockStoneDevice meta 2(1 个) |
| 注入物 | thaumcraft:itemResource meta 14 ×2、ThaumicHorizons:syringeBlood ×2 |
该配方无条件注册(位于 postInit 主体,不在 enablePocket 或 GregTech 判断块内)。注意受 GregTech 门控的是基座插槽 blockSlot(ThaumicHorizons:slotTH,配方见 common/ThaumicHorizons.java:2111-2129 与无 GT 分支 :2153-2161),不是 modMatrix,两者不可混淆。