灌注矩阵 Alpha
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | thaumicinsurgence:matrixAlpha |
| 类 | thaumicinsurgence.block.BlockInfusionMatrixAlpha |
| 基类 | thaumcraft.common.blocks.BlockStoneDevice |
| TileEntity | 实际创建 TileEntityInfusionMatrixAlpha |
| 硬度 | 3.0 |
| 爆炸抗性 | 25.0 |
| 采集等级 | 镐 0 |
| 渲染类型 | Config.blockStoneDeviceRI = -1(未注册的占位值,见文末) |
| 贴图 | 无(registerBlockIcons 为空,由自定义渲染器接管) |
功能
本 mod 的核心机制方块,是 Thaumcraft Infusion 灌注系统的高阶替代实现。TileEntityInfusionMatrixAlpha 复刻并扩展了原版 TileInfusionMatrix 的逻辑,额外能力包括:
- 范围伤害 / 污染:在矩阵周围 3 格 AABB 内搜索生物,施加
Config.potionTaintPoisonID(120 tick)与Config.potionVisExhaustID(2400 tick)——注意这两个常量取自 Thaumcraft 自己的thaumcraft.common.config.Config。 - Infusion 附魔配方支持:调用
ThaumcraftCraftingManager.findMatchingInfusionEnchantmentRecipe(),若产物是Enchantment则用EnchantmentHelper.setEnchantments()叠加一级(TileEntityInfusionMatrixAlpha.java:931-937)。 - 自定义
InfusionAlphaRecipe配方类型(thaumicinsurgence/api/InfusionAlphaRecipe.java)。
active 字段由外部置为 true 以激活矩阵(见 Alastor 之杖 的 replaceInfusionAltar())。
摆放要求
onBlockActivated 无实际逻辑(仅取到 TE 后丢弃),右键不打开 GUI。碰撞箱被 addCollisionBoxesToList 强制重置为完整 1×1×1。
交互
| 触发 | 行为 |
|---|---|
| 右键 | 无有效行为(返回 super) |
| 破坏 | 通过 Thaumcraft InventoryUtils.dropItems() 掉落全部物品 |
已知缺陷
getRenderType() 返回 Config.blockStoneDeviceRI,其值在 Config.java:150-154 的静态块中被硬编码为 -1(blockStoneDeviceTwoRI = -2、blockStoneDeviceThreeRI = -3)。这三个负值是从未被注册的渲染 ID 占位符,本仓库中没有任何 BlockRenderRegister.registerBlockRenderingHandler 之类的注册代码与之对应。
此外 registerBlockIcons() 方法体为空,图标全靠 BlockMatrixAlphaRenderer 处理 —— 在渲染器注册修复前,本方块在游戏中很可能不可见。
更严重的是注册错配:Config.setupInfusionAlpha() 给 matrixAlpha 注册的 TileEntity 类是 TileEntityInfusionPillarAlpha(见 灌注柱 Alpha 页面),与本方块 createNewTileEntity() 实际返回的类型矛盾。
相关条目
- 灌注柱 Alpha - 与本方块存在 TileEntity 注册互换缺陷
- Alastor 之杖 -
replaceInfusionAltar()会置位本方块 TE 的active - Thaumcraft Infusion 合成