跳到正文
烈焰甘蔗Wiki

Cable Breaker(方块交互器)

基本信息

属性 值
modid StevesFactoryManager
FML 注册键 StevesFactoryManager:BlockCableBreakerName(CABLE_BREAKER_NAME_TAG,ModBlocks.java:51,154)
未本地化名 sfm.BlockCableBreaker(BlockCableBreaker.java:27)
显示名 方块交互器 / Block Gate
TileEntity TileEntityBreaker(BlockCableBreaker.java:33)
方块类 BlockCableBreaker extends BlockContainer(BlockCableBreaker.java:21)
硬度 1.2(setHardness(1.2F),BlockCableBreaker.java:28)
爆炸抗性 10.0 — 源码未设置,Block 默认值
接口 IInventory, IPacketBlock(TileEntityBreaker.java:33)
metadata 6 面朝向(determineOrientation)

功能

Breaker 破坏它正前方那一格的方块,并把掉落物朝 placeDirection 的反面丢出,同时通过 IInventory 让 Manager 读取。

方向分工(两个独立量,别混):

量 来源 作用
getBlockMetadata() % 6 放置时 determineOrientation 破坏面——决定破坏哪一格(TileEntityBreaker.java:46-54)
placeDirection 右键点击的面 投放面——VALID_DIRECTIONS[placeDirection].getOpposite()(TileEntityBreaker.java:72-74)

破坏用 FakePlayer 模拟(名 [SFM_PLAYER],UUID 由名字派生,TileEntityBreaker.java:35-37),先 useItemRightClick(给工具机会),若结果与原物品相同再 activateBlockOrUseItem 真正挖(TileEntityBreaker.java:99-115)。

不导通电缆:类头注释明确 “This is indeed not a subclass to the cable, you can’t relay signals through this block”(BlockCableBreaker.java:20)。

摆放要求

  • 可在任何位置放置
  • 破坏面 = 放置时玩家面向;不可旋转(源码无旋转方法),只能改投放面

交互

触发 行为
右键某一面 把 placeDirection 设为该面(投放朝其反面)
潜行 + 右键 同上,但取该面的对面:ForgeDirection.VALID_DIRECTIONS[side].getOpposite().ordinal()(BlockCableBreaker.java:94-96)
isBlocked() 为真时右键 忽略(上一次破坏未完成)

合成配方

无序:工厂线缆 + 铁镐 + 发射器(ModBlocks.java:250-254)

审计订正

  • 语义写反(严重):原文把"右键/潜行+右键"描述成「改变破坏方向」→ 错误。右键改的是 placeDirection(投放方向),破坏面由 metadata 固定、源码无法通过交互改变。已按 placeDirection / getBlockMetadata() 拆开写清,证据 TileEntityBreaker.java:46-54,72-74 与 BlockCableBreaker.java:93-105。
  • 遗漏限制:原文完全没提 isBlocked() 保护——上一次破坏尚未完成时右键被忽略(BlockCableBreaker.java:101-105)。已补。
  • "改变破坏方向(反向)"表述不准:潜行时是取被点面对面作为投放面,不是"反向切换已有值"。已订正。
  • modid / 注册名错:原文 stevesfactorymanager:blockCableBreaker → StevesFactoryManager;传入实参 CABLE_BREAKER_NAME_TAG = "BlockCableBreakerName"(ModBlocks.java:51,154)。
  • 补正:原文未写"不可旋转"、未写合成配方、未写"不导通电缆"(BlockCableBreaker.java:20)。原文"使用 FakePlayer(模拟玩家)来破坏方块"✓ 正确。
  • 原文"硬度 1.2 / 爆炸抗性 10.0"数值正确,爆炸抗性已标注为 Block 默认值。

相关条目

浏览全部模组