Cable Sign(告示牌更新器)
基本信息
| 属性 | 值 |
|---|---|
| modid | StevesFactoryManager |
| FML 注册键 | StevesFactoryManager:BlockCableSignName(CABLE_SIGN_NAME_TAG,ModBlocks.java:64,183) |
| 未本地化名 | sfm.BlockCableSign(BlockCableSign.java:25) |
| 显示名 | 告示牌更新器 / Sign Updater |
| TileEntity | TileEntitySignUpdater(BlockCableSign.java:31) |
| 方块类 | BlockCableSign extends BlockContainer(BlockCableSign.java:19) |
| 硬度 | 1.2(setHardness(1.2F),BlockCableSign.java:26) |
| 爆炸抗性 | 10.0 — 源码未设置,Block 默认值 |
| metadata | 6 面朝向 = 目标告示牌所在面 |
| 可更新行数 | 4 |
功能
Sign 电缆本身不存文字。它按 metadata 朝向找到紧邻的那一格上的 TileEntitySign,由 Manager 里的 ComponentMenuSignText 组件推送文字。
updateSign(menu)(TileEntitySignUpdater.java:18-45):
direction = VALID_DIRECTIONS[getBlockMetadata() % 6],取该面相邻方块的 TileEntity(TileEntitySignUpdater.java:19-22)- 必须是
TileEntitySign(TileEntitySignUpdater.java:23) - 清空编辑器文本
sign.func_145912_a(null)(TileEntitySignUpdater.java:26) - 对 4 行逐行判断
menu.shouldUpdate(i),只覆盖勾选的行(TileEntitySignUpdater.java:28-37) - 有实际变化才
markDirty()+markBlockForUpdate(TileEntitySignUpdater.java:38-41)
朝向写入:onBlockPlacedBy 用 BlockPistonBase.determineOrientation 存入 meta(BlockCableSign.java:62-68)。
不导通电缆:类头注释明确 “This is indeed not a subclass to the cable, you can’t relay signals through this block”(BlockCableSign.java:18)。
摆放要求
- 可在任何位置放置
- 朝向必须正对相邻的告示牌,否则静默无动作(源码无任何报错或回退,TileEntitySignUpdater.java:23)
- 不可旋转
数值
| 参数 | 值 | 证据 |
|---|---|---|
| 可更新行数 | 4 | TileEntitySignUpdater.java:28 for (int i = 0; i < 4; i++) |
| 朝向粒度 | 6 面 | TileEntitySignUpdater.java:19-20 |
交互
| 触发 | 行为 |
|---|---|
| 左键 | 无特殊行为 |
| 右键 | 无特殊行为(onBlockActivated 未覆写) |
| 放置 | 按玩家面向写入 meta |
| Manager 组件更新 | 覆盖相邻告示牌的勾选行 |
合成配方
无序:工厂线缆 + 白色染料(dye meta 0) + 羽毛(ModBlocks.java:287-291)
审计订正
- modid / 注册名错:原文
stevesfactorymanager:blockCableSign→StevesFactoryManager;传入实参CABLE_SIGN_NAME_TAG = "BlockCableSignName"(ModBlocks.java:64,183)。 - 登记名大小写/词形:方块类名是
BlockCableSign(单数),注册常量值是"BlockCableSignName";原文写的blockCableSign两边都不对。 - 补正:原文"可更新行数 4 行"✓ 正确(TileEntitySignUpdater.java:28);"方向由
BlockPistonBase.determineOrientation决定、指向要更新的告示牌"✓ 正确(BlockCableSign.java:63、TileEntitySignUpdater.java:19-22)。已补上原文缺失的关键信息:按行选择性更新(menu.shouldUpdate(i))、朝向不对时静默失败、不可旋转、合成配方、“不导通电缆”(BlockCableSign.java:18)。 - 原文"无特殊行为"式交互表信息量极低,已改为反映实际触发链路。
相关条目
- Connection Block - 连接抽象(非注册物品)