Dynamo
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | TMechworks:dynamo |
| 方块类 | DynamoBlock(BlockContainer) |
| TileEntity | DynamoLogic —— 空类,无任何字段与方法 |
| 材质 | Material.iron |
| 亮度 | 1.0(setLightLevel(1.0F),common/MechContent.java:75) |
| 硬度 / 抗性 | 未调用任何 setter —— Block 默认硬度 0.0、抗性 0.0 |
| 步声 | 未调用 setStepSound —— 默认 soundTypeStone |
| 掉落 | 未覆写 getItemDropped —— 掉落自身 |
| getRenderType | -1(TESR 路径) |
| renderAsNormalBlock | false(覆写) |
| isOpaqueCube | false(覆写) |
| shouldSideBeRendered | 恒 true(覆写,无条件) |
| 贴图 | setBlockTextureName("tinker:compressed_alubrass") —— 复用 Tinkers’ Construct 的铝黄铜压缩块贴图 |
| GUI | 无(DynamoBlock 未覆写 onBlockActivated) |
| 能量产出 | 无 |
| 配方 | 无 |
结论:这是一个未完成的方块
DynamoLogic 全文只有三行:
package tmechworks.blocks.logic;
import net.minecraft.tileentity.TileEntity;
public class DynamoLogic extends TileEntity {
}
没有 generate()、没有能量字段、没有 Forge 能量接口(IEnergyHandler / generateEnergy)、没有 updateEntity、没有 NBT 读写。 它被 GameRegistry.registerTileEntity(DynamoLogic.class, "TMechworks:Dynamo") 注册(common/MechContent.java:78),但注册一个空 TE 不会产生任何行为。
DynamoBlock 同样只做渲染与贴图设置(blocks/DynamoBlock.java:12-41),构造器里除 setCreativeTab 外什么都没调。
common/MechRecipes.java:68-69 留着一行空注释 // Dynamo Recipes,说明配方部分被有意跳过 —— 配合无 TE 逻辑,可确认 Dynamo 是计划中但未实现的发电方块。
它当前在游戏里的唯一实际作用是:一个亮度 1 的装饰方块(可当弱光源用),贴图看起来像 TCon 的铝黄铜压缩块。
数值
| 数值 | 值 |
|---|---|
| 注册名 | TMechworks:dynamo |
| 亮度 | 1.0(setLightLevel(1.0F)) |
| 硬度 | 0.0(未调用 setter,默认值) |
| 爆炸抗性 | 0.0(未调用 setter,默认值) |
| 步声 | soundTypeStone(未调用 setter,默认值) |
| getRenderType | -1(TESR) |
| isOpaqueCube | false |
| renderAsNormalBlock | false |
| shouldSideBeRendered | 恒 true |
| 贴图 | tinker:compressed_alubrass(借用 Tinkers’ Construct) |
| TE 字段数 | 0 |
| TE 方法数 | 0(仅继承) |
| 能量产出 | 无 |
| 配方数 | 0 |
| GUI | 无 |
| 创意标签 | TMechworksRegistry.Mechworks |
交互
| 触发 | 行为 |
|---|---|
| 放置 | 正常放置,getRenderType = -1 走 TESR 渲染 |
| 右键 | 无 GUI(未覆写 onBlockActivated,走 Block 默认返回 false) |
| 提供能量 | 不能(TE 为空) |
| 破坏掉落 | 掉落 TMechworks:dynamo |
源码缺陷
- TE 是空类(
blocks/logic/DynamoLogic.java:5-6)—— 全仓无任何读写,见上文。 - 未设硬度:
DynamoBlock构造器(blocks/DynamoBlock.java:14-17)只调super(Material.iron)与setCreativeTab。硬度 0.0 = 一秒徒手挖掉,抗性 0.0。对比同仓RedstoneMachine明确setHardness(12),属明显遗漏。 - 未设步声:默认
soundTypeStone,放置/破坏脚步声与材质不符。 - 借贴图不声明依赖:
setBlockTextureName("tinker:compressed_alubrass")直接引用 Tinkers’ Construct 的资源域。虽然required-after:TConstruct已保证 TCon 存在,但这是唯一一处跨 mod 贴图借用,若 TCon 改名资源即破图。 shouldSideBeRendered恒true:全 6 面都渲染,TESR 无条件全渲染,无视方块遮挡,对区块渲染有额外开销。- 无配方且无替代获取途径:无掉落表、无
/give之外的手段,生存模式完全无法获得。// Dynamo Recipes空注释(common/MechRecipes.java:68)是直接的证据。 - 注册了 TE 却不用:
registerTileEntity(DynamoLogic.class, "TMechworks:Dynamo")(common/MechContent.java:78)的 TE ID 含冒号TMechworks:,是本仓唯一带命名空间前缀的 TE ID,其余 5 个 TE 均为裸名(Drawbridge/Firestarter/AdvDrawbridge/SignalBus/SignalTerminal),风格不统一。
相关条目
- Drawbridge - 本 mod 功能最完整的机器,可作对比
- Mesh Filter - 本 mod 另一个没有配方的方块
- tinkersconstruct - 本方块借用的贴图来源