灌注矩阵 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() 实际返回的类型矛盾。

相关条目