Cable Output(红石信号发射器)
基本信息
| 属性 | 值 |
|---|---|
| modid | StevesFactoryManager |
| FML 注册键 | StevesFactoryManager:BlockCableOutputName(CABLE_OUTPUT_NAME_TAG,ModBlocks.java:30,120) |
| 未本地化名 | sfm.BlockCableOutput(BlockCableOutput.java:22) |
| 显示名 | 红石信号发射器 / Redstone Emitter |
| TileEntity | TileEntityOutput(BlockCableOutput.java:28) |
| 方块类 | BlockCableOutput extends BlockContainer(BlockCableOutput.java:16) |
| 硬度 | 1.2(setHardness(1.2F),BlockCableOutput.java:23) |
| 爆炸抗性 | 10.0 — 源码未设置,Block 默认值 |
| 接口 | IRedstoneNode(TileEntityOutput.java:25) |
| 供电方向 | 6 面,每面独立开关 |
功能
Output 由 Manager 里的红石组件驱动,逐面保存「强度 int + 是否强信号 boolean」(TileEntityOutput.java:27-31),并向周围邻块发红石更新。
注意对外供电取的是"对面":isProvidingWeakPower / isProvidingStrongPower 都走 getStrengthFromOppositeSide(side)(BlockCableOutput.java:61-77;TileEntityOutput.java:59-65)。
数值
| 参数 | 值 | 证据 |
|---|---|---|
| 单面强度范围 | 0-15 | TileEntityOutput.java:171 Math.min(15, …)、177 % 16、181 回绕 +16 |
| 强信号标记 | 每面独立 boolean strong[],与强度数值无关 |
TileEntityOutput.java:28,47-49,76 |
| 每 tick 脉冲上限 | 200 | TileEntityOutput.java:101 |
| 脉冲时长 | 选定时长 +1 tick | TileEntityOutput.java:92-98 |
强度运算模式(8 种)
updateSideState() 的 ComponentMenuRedstoneOutput.getSelectedSetting()(TileEntityOutput.java:153-186):
| 模式 | 行为 |
|---|---|
| FIXED | strength = selectedStrength |
| TOGGLE | strength > 0 ? 0 : 15 |
| MAX | Math.max(strength, selected) |
| MIN | Math.min(strength, selected) |
| INCREASE | Math.min(15, strength + selected) |
| DECREASE | Math.max(0, strength - selected) |
| FORWARD | (strength + selected) % 16 |
| BACKWARD | strength -= selected,为负则 +16 |
脉冲合并策略
EXTEND_OLD / KEEP_ALL / KEEP_NEW / KEEP_OLD(TileEntityOutput.java:102-128)。
交互
| 触发 | 行为 |
|---|---|
| 左键 | 无特殊行为 |
| 右键 | 无特殊行为(onBlockActivated 未覆写) |
审计订正
- 编造数值:「Strong(强信号):信号强度 16 时显示强信号图标」→ 错误。强度只有 0-15,根本不存在 16;强信号是独立的每面 boolean(TileEntityOutput.java:28,47-49),由
ComponentMenuRedstoneSidesEmitter.useStrongSignal()设定(TileEntityOutput.java:76)。"16"疑似从(strength + x) % 16的模数误读。 - 编造数值:「红石信号强度 0-15(强信号)或 0-15(弱信号)」→ 同一区间的两套写法自相矛盾,且无出处。已改为单一范围 0-15。
- 语义写反:「自动向所有相邻方块提供红石信号」→ 错误。每一面都必须在 GUI 中单独启用(
sides.isSideRequired(i),TileEntityOutput.java:71),未启用的面不供电。原文漏掉了 8 种强度运算模式和 4 种脉冲合并策略,已补。 - modid / 注册名错:原文
stevesfactorymanager:blockCableOutput→StevesFactoryManager;传入实参CABLE_OUTPUT_NAME_TAG = "BlockCableOutputName"(ModBlocks.java:30,120)。 - 补正:原文未写"不导通电缆"(类头注释,BlockCableOutput.java:15)与"对外供电取对面"(BlockCableOutput.java:61-77)。
相关条目
- Cable Input - 红石接收
- Connection Block - 连接抽象(非注册物品)