跳到正文
烈焰甘蔗Wiki

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)。

相关条目

浏览全部模组