跳到正文
烈焰甘蔗Wiki

Cable Input(红石信号接收器)

基本信息

属性 值
modid StevesFactoryManager
FML 注册键 StevesFactoryManager:BlockCableInputName(CABLE_INPUT_NAME_TAG,ModBlocks.java:34,125)
未本地化名 sfm.BlockCableInput(BlockCableInput.java:21)
显示名 红石信号接收器 / Redstone Receiver
TileEntity TileEntityInput(BlockCableInput.java:27)
方块类 BlockCableInput extends BlockContainer(BlockCableInput.java:15)
硬度 1.2(setHardness(1.2F),BlockCableInput.java:22)
爆炸抗性 10.0 — 源码未设置,Block 默认值
接口 IRedstoneNode, ISystemListener, ITriggerNode(TileEntityInput.java:11)
监测方向 6(ForgeDirection.VALID_DIRECTIONS)

功能

Input 把周围 6 个面的间接红石信号读进来,交给 Manager 里的红石组件判断。

triggerRedstone() 每次都全量重算 6 个面的 getIndirectPowerLevelTo(...)(TileEntityInput.java:29-38),随后无条件通知 managerList 中所有 Manager(TileEntityInput.java:40-42),最后 oldPowered = isPowered(TileEntityInput.java:44)。

oldPowered[] / isPowered[] 通过 ITriggerNode.getPower() 暴露给 GUI(TileEntityInput.java:47-50),供玩家在 Manager 里设置条件(例如"某面信号由 0 变 1");方块本身不做边沿判定。

触发时机:onBlockAdded 与 onNeighborBlockChange 均调用 input.triggerRedstone()(BlockCableInput.java:41-60)。

数值

参数 值 证据
监测面数 6 TileEntityInput.java:31-37(ForgeDirection.VALID_DIRECTIONS)
信号范围 0-15(间接信号强度) getIndirectPowerLevelTo 返回值

交互

触发 行为
左键 无特殊行为
右键 无特殊行为(onBlockActivated 未覆写)
方块加入 / 邻居变化 触发 triggerRedstone()

合成配方

无序:工厂线缆 + 红石(ModBlocks.java:229)

审计订正

  • 语义写反:「用于检测边沿变化(上升沿触发)」→ 错误。triggerRedstone() 无条件重算并通知所有 Manager,源码里没有任何 if (isPowered != oldPowered) 判定(TileEntityInput.java:29-45)。边沿比较发生在 GUI/Manager 侧,Input 只负责提供当前值与上一次的值。已改写。
  • modid / 注册名错:原文 stevesfactorymanager:blockCableInput → StevesFactoryManager;传入实参 CABLE_INPUT_NAME_TAG = "BlockCableInputName"(ModBlocks.java:34,125)。
  • 补正:原文未写"不导通电缆"(BlockCableInput 未继承 BlockCable,源码无相关注释但 isCable() 也不含它,BlockCable.java:103-106)、未写"读的是间接红石信号"(getIndirectPowerLevelTo,TileEntityInput.java:33)、未写触发时机(onBlockAdded + onNeighborBlockChange,BlockCableInput.java:41-53)、未写合成配方。
  • 原文"信号方向数 6"✓ 正确。

相关条目

浏览全部模组