机器与功能方块

基本信息

属性 值
方块数 11(其中 1 个未注册)
实际注册 10(BlockRPlacer 的 shouldRegister() 恒为 false,永不注册)
注册位置 TTRegistry.java:37-55、TTRegistry.java:64-65

本页收录 11 个同属「机器 / 功能方块」族、但彼此无共同基类的方块:它们没有可共享的行为配置,因此按独立条目 + 对照表组织,而非合并为单一变体表。

数值

方块 注册名 Java 类 基类 TileEntity 注册门槛 注册行
动画板 animationTablet BlockAnimationTablet BlockModContainer TileAnimationTablet 无条件 TTRegistry.java:37
要素分析仪 ⚠ aspectAnalyzer BlockAspectAnalyzer BlockModContainer TileAspectAnalyzer 需 ComputerCraft TTRegistry.java:38
注魔器 enchanter BlockEnchanter BlockModContainer TileEnchanter 无条件 TTRegistry.java:39
力场 forcefield BlockForcefield BlockMod 无(TileForcefield 存在但不由本方块注册) 无条件 TTRegistry.java:40
漏斗 funnel BlockFunnel BlockModContainer TileFunnel 无条件 TTRegistry.java:41
磁石 magnet BlockMagnet BlockModContainer + IMultiTileEntityBlock TileMagnet、TileMobMagnet 无条件 TTRegistry.java:47
平台 camo BlockPlatform BlockCamo TileCamo 无条件 TTRegistry.java:49
修复器 repairer BlockRepairer BlockModContainer TileRepairer 无条件 TTRegistry.java:50
远程放置器 ❌ remotePlacer BlockRPlacer BlockCamo + IWandable TileRPlacer 永不注册 TTRegistry.java:51
召唤器 spawner BlockSummon Block + ITTinkererBlock TileSummon 无条件 TTRegistry.java:52
石魔像连接器 ⚠ golemConnector BlockGolemConnector BlockCamo TileGolemConnector 需 ComputerCraft TTRegistry.java:44

⚠ = 软依赖门控;❌ = 死注册(见下)。

forcefield 是全模组唯一只实现运行时 TileEntity 创建、却没有 getTileEntity() 的方块。详见下方「力场的 TileEntity 注册缺口」。

功能

注魔器(Enchanter)

唯一的附魔施加方块。TileEnchanter 实现 ISidedInventory 与 AE2 的 IMovableTile(TileEnchanter.java:46,后者带 @Optional.Interface(iface = "appeng.api.movable.IMovableTile", modid = "appliedenergistics2"),即 AE2 缺失时该接口被剥离):

属性 值 来源
物品槽位数 2(ItemStack[] inventorySlots = new ItemStack[2]) TileEnchanter.java:64
附魔持久化 enchantsIntArray + levelsIntArray TileEnchanter.java:48-49
要素持久化 totalAspects + currentAspects TileEnchanter.java:50-51
工作状态持久化 working TileEnchanter.java:52
要素扣费 EnchantmentManager.enchantmentData.get(enchant).get(level).aspects TileEnchanter.java:331

因子定价取自 附魔要素定价,附魔本身取自 自定义附魔。

修复器(Repairer)

可修复物品,受 ConfigHandler.repairTConTools 控制对 Tinkers’ Construct 工具的支持:

  • TileRepairer.java:76:if (LoadedMods.TConstructLoaded && ConfigHandler.repairTConTools) 才走 TCon 分支
  • TileRepairer.java:272:if (ConfigHandler.repairTConTools) 控制修复流程
  • TileRepairer.java:397:return ConfigHandler.repairTConTools && TinkersConstructCompat.getDamage(stack) > 0; —— 该项同时要求 TCon 已加载(否则 getDamage 不会被调用)

repairTConTools 默认 false(配置键 repairTconTools.enabled)。

磁石(Magnet)

唯一实现 IMultiTileEntityBlock 的方块。TTRegistry.registerBlock() 对实现该接口的方块额外遍历 getAdditionalTileEntities() 并逐个 registerTileEntity()(TTRegistry.java:282-287),因此磁石同时注册 TileMagnet(本体)与 TileMobMagnet(生物磁石)两个 TileEntity。它是唯一持有 ItemBlock(ItemBlockMagnet)的方块之一。

远程放置器(BlockRPlacer)— 死注册

TTRegistry.java:51 确实调用了 loadSimpleBlock(new BlockRPlacer()),但 BlockRPlacer.shouldRegister() 无条件 return false:

@Override
public boolean shouldRegister() {
    return false;
}

(BlockRPlacer.java:91-93)

TTRegistry.loadSimpleBlock() 在 ittBlock.shouldRegister() 为假时直接跳过整个注册流程并返回 null(TTRegistry.java:161-174),因此:

  • 方块、ItemBlock、TileEntity 均不注册
  • 其 getResearchItem() 中的 KEY_REMOTE_PLACER 研究(LibResearch 中值为 REMOTE_PLACER)也永远不会注册 —— 它是本仓库中唯一「有构造点但不可达」的研究键
  • shouldDisplayInTab() 虽返回 true(BlockRPlacer.java:96-98),但该分支不可达

TileRPlacer.java 文件存在,但同样不构成注册证据。

力场的 TileEntity 注册缺口

本模组的 TileEntity 有两条接入路径:ITTinkererBlock.getTileEntity()(供 TTRegistry.registerBlock() 调 GameRegistry.registerTileEntity(),TTRegistry.java:278-281)与原版 createTileEntity(World, int)(供世界运行时实例化)。

BlockForcefield 只走了第二条:

成员 实现 源码
createTileEntity(World, int) return new TileForcefield(); BlockForcefield.java:40-41
hasTileEntity(int) return true; BlockForcefield.java:44-46
getTileEntity() 未覆写 —

对全部 34 个注册方块做交叉核对后,BlockForcefield 是唯一有运行时 createTileEntity() 却无 getTileEntity() 的方块(BlockInfusedFarmland、BlockInfusedGrain、BlockSummon、BlockBedrockPortal、BlockMobilizer、BlockMobilizerRelay 两者皆有)。因此 GameRegistry.registerTileEntity() 从未为 TileForcefield 执行过注册。TileForcefield.java 文件的存在不构成注册证据。

记录口径:以上为代码结构的事实陈述。仓库内没有测试、注释或提交信息表明这是否有意为之,故不断言其为缺陷。

ComputerCraft 门控的 2 个方块

BlockAspectAnalyzer.shouldRegister() 返回 LoadedMods.computerCraftLoaded(BlockAspectAnalyzer.java:143-145),BlockGolemConnector.shouldRegister() 同理(BlockGolemConnector.java:55-57)。ComputerCraft 缺失时这两个方块连同其 KEY_ASPECT_ANALYZER / KEY_GOLEMCONNECTOR 研究一并消失。

研究

方块 研究键 状态
动画板 KEY_ANIMATION_TABLET 可达
要素分析仪 KEY_ASPECT_ANALYZER 仅 CC 加载时可达
注魔器 KEY_ENCHANTER 可达
漏斗 KEY_FUNNEL 可达
磁石 KEY_MAGNETS 可达
平台 KEY_PLATFORM 可达
修复器 KEY_REPAIRER 可达
召唤器 KEY_SUMMON 可达
石魔像连接器 KEY_GOLEMCONNECTOR 仅 CC 加载时可达
远程放置器 KEY_REMOTE_PLACER 不可达(死注册)
力场 无 LibResearch 中无对应键

相关条目