跳到正文
烈焰甘蔗Wiki

Cable Camouflages(伪装方块)

基本信息

属性 值
modid StevesFactoryManager
FML 注册键 StevesFactoryManager:BlockCableCamouflageName(CABLE_CAMOUFLAGE_NAME_TAG,ModBlocks.java:60,163)
方块类 BlockCableCamouflages(类名是复数,BlockCableCamouflages.java:19)
未本地化名 sfm.BlockCableCamouflage / sfm.BlockCableInsideCamouflage / sfm.BlockCableShapeCamouflage
显示名 伪装方块 / 伪装方块-双面 / 伪装方块-变换
TileEntity TileEntityCamouflage(BlockCableCamouflages.java:30)
方块类 BlockCableCamouflages extends BlockCamouflageBase(BlockCableCamouflages.java:19)
硬度 1.2(setHardness(1.2F),BlockCableCamouflages.java:25)
爆炸抗性 10.0 — 源码未设置,Block 默认值
伪装类型数 3
渲染 ID ModBlocks.CAMOUFLAGE_RENDER_ID(BlockCamouflageBase.java:111)

伪装类型(TileEntityCamouflage.CamouflageType)

只有 3 个枚举值(TileEntityCamouflage.java:102-104):

枚举 未本地化名 贴图 双面渲染 特殊形状 中文名
NORMAL BlockCableCamouflage cable_camo 否 否 伪装方块
INSIDE BlockCableInsideCamouflage cable_camo_inside 是 否 伪装方块-双面
SHAPE BlockCableShapeCamouflage cable_camo_shape 是 是 伪装方块-变换

三者在同一个方块上按 metadata 切换(getId(meta) = meta % 3,BlockCableCamouflages.java:66-68;getCamouflageType() 反查,TileEntityCamouflage.java:137)。

功能

  • 伪装状态存在 TileEntityCamouflage 里,不靠 metadata;metadata 只是"当前伪装类型"的选择器,放置时由物品 getItemDamage() 写入(BlockCableCamouflages.java:75-81)
  • damageDropped(meta) = meta,拆方块保留伪装类型(BlockCableCamouflages.java:70-73)
  • SHAPE 型可模拟非方块碰撞箱:isUseCollision() 为假时碰撞箱归零、选中框也归零(BlockCamouflageBase.java:24-54);isFullCollision() 为真时回退整格(BlockCamouflageBase.java:48-50)
  • SHAPE 型关闭碰撞时硬度变成 600000(近乎不可破坏),用于防误拆(BlockCamouflageBase.java:95-102)
  • 隐藏自己:isOpaqueCube() 恒 false,renderAsNormalBlock() 恒 false,走 CAMOUFLAGE_RENDER_ID 自定义渲染(BlockCamouflageBase.java:109-138)
  • 透光性:非普通方块时 getBlocksMovement() 跟随伪装目标(BlockCamouflageBase.java:56-61)

数值

参数 值 证据
伪装类型数量 3 TileEntityCamouflage.java:102-104
物品形态 metadata 0/1/2 对应 NORMAL/INSIDE/SHAPE BlockCableCamouflages.java:60-64;ItemCamouflage.java:20-21
堆叠 / 耐久 64 / 无 ItemCamouflage.java:14 setMaxDamage(0)
SHAPE 无碰撞时硬度 600000 BlockCamouflageBase.java:99

交互

触发 行为
左键 无特殊行为
右键 无特殊行为(onBlockActivated 未覆写)
放置 按手持物品 getItemDamage() 选定伪装类型

合成配方

  • meta 0:无序 工厂线缆 + 红羊毛(14) + 粉羊毛(13) + 黑羊毛(11)(ModBlocks.java:268-273)
  • meta 1:无序 伪装方块(meta 0) ×2 + 铁栅栏 ×2(ModBlocks.java:275-280)
  • meta 2:无序 伪装方块(meta 1) + 黏性活塞(ModBlocks.java:282-285)

审计订正

  • 编造内容:「通过 CamouflageType 枚举定义多种伪装类型,包括实心方块、楼梯、台阶等多种形状变体」→ 全部凭空。源码只有 3 个类型:NORMAL / INSIDE(双面)/ SHAPE(变换)(TileEntityCamouflage.java:102-104)。没有任何"楼梯""台阶"伪装。
  • 数值未落实:「伪装类型数量 | 由 CamouflageType.VALUES 决定」→ VALUES 就是 values(),长度 3。原文明明有确定答案却写成占位式描述。已填。
  • 登记名词形错:原文标题/注册名 blockCableCamouflage(单数)——方块类名是复数 BlockCableCamouflages,而 registerBlock 传入的实参常量值是单数 "BlockCableCamouflageName"(ModBlocks.java:60,163)。已分别标注。
  • modid 错:原文 stevesfactorymanager → StevesFactoryManager。
  • 补正:原文未写 SHAPE 型的两个关键行为——关闭碰撞时硬度变 600000(BlockCamouflageBase.java:95-102)、可模拟非方块碰撞箱(BlockCamouflageBase.java:24-54);未写"伪装状态存在 TileEntity 而非 metadata";未写三条合成配方。
  • 原文"伪装数据通过 metadata 存储"→ 半错:metadata 只索引 CamouflageType,真正的伪装形状/碰撞配置在 TileEntityCamouflage(TileEntityCamouflage.java:137 只做数组反查)。已改写。

相关条目

浏览全部模组