Length Wire
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | TMechworks:lengthwire |
| 类 | LengthWire(继承 Item) |
| 堆叠上限 | 64(this.maxStackSize = 64) |
| subtype | 无(setHasSubtypes(false)) |
| 贴图 | tmechworks:logic/lengthwire |
| 纹理数组 | textureNames = {"lengthwire"}(长度 1) |
| 容器 / GUI / TileEntity | 无 |
| 配方产出 | 8 个 / 次(铝黄铜锭竖排 3 格) |
| 创意标签 | TMechworksRegistry.Mechworks |
功能
Length Wire 是 Signal Bus 与 Spool of Wire 的唯一配方原料。它本身没有任何独立功能 —— 不通电、不连接、不放置方块。
它的定位是「有线」:Signal Bus 用线材 + 石半砖合成(有线传输),而 Spool of Wire 用线材 + 石棒合成(无线跨维度传输)。有线便宜、无线昂贵,这是本 mod 的核心设计对比。
数值
| 数值 | 值 |
|---|---|
| 注册名 | TMechworks:lengthwire |
| 堆叠上限 | 64 |
| subtype 数 | 0 |
| 贴图路径 | tmechworks:logic/lengthwire |
| 配方产出 | 8 |
| 消耗方 | Signal Bus(3 个)、Spool of Wire(8 个) |
| 修复配方 | 无(不可损坏,setMaxDamage 未调用) |
配方
common/MechRecipes.java:130-137,1 条:
a
a
a
| 符号 | 材料 | 数量 |
|---|---|---|
a |
ingotAluminumBrass |
3 |
产出 TMechworks:lengthwire × 8。
交互
| 触发 | 行为 |
|---|---|
| 拾取 / 丢弃 | 标准 Item 行为 |
| 合成 | 作为 Signal Bus / Spool of Wire 的材料 |
| 右键 | 无(未覆写任何 Item 方法) |
源码缺陷
getIconFromDamage的 clamp 越界(items/LengthWire.java:31-34):int arr = MathHelper.clamp_int(meta, 0, unlocalizedNames.length); return icons[arr];
clamp_int的上界是数组长度(1)而非最后合法索引(0)。当meta >= 1时arr == 1,icons[1]越界 →ArrayIndexOutOfBoundsException。因本物品setHasSubtypes(false)正常游戏流程不会产生 meta ≥ 1,但任何带 damage 的栈(如被其他 mod 改写)都会导致客户端渲染崩溃。getSubItems未加@SideOnly(Side.CLIENT)(:47-50):与本仓其他物品(SpoolOfWire.getSubItems同样未加,但addInformation等都加了)不一致,服务端也会执行。1.7.10 的CreativeTabs只在客户端调用,故当前无害。setCreativeTab直接改this.creativeTab:同SpoolOfWire,未用 Forge 推荐写法。1.7.10 下可用。- 未调用
setUnlocalizedName而覆写getUnlocalizedName:SpoolOfWire同样做法(return "item." + unlocalizedName)。MechContent中new LengthWire().setUnlocalizedName("lengthwire")与覆写方法重复(common/MechContent.java:54),覆写使 setter 的效果失效。 - 物品本体无功能:作为「纯配方料」存在,玩家没有任何使用它的理由,只能看到它被消耗。
相关条目
- Spool of Wire - 消耗 8 个 Length Wire 制作
- Signal Bus - 消耗 3 个 Length Wire 制作
- Signal Terminal - 破坏时可能掉落 Length Wire