跳到正文
烈焰甘蔗Wiki

Trim Custom(自定义材质装饰条)

基本信息

属性 值
注册名 StorageDrawers:trimCustom
TileEntity TileEntityTrim
硬度 5.0
爆炸抗性 BlockTrimCustom 未定义构造器属性,全部继承 BlockTrim(只 setHardness(5f));从未调用 setResistance,也未覆写 getExplosionResistance,具体数值取父类默认值(本仓库源码中无此数值)
透明性 否
声音 木质(BlockTrim 构造器固定 setStepSound(Block.soundTypeWood),不随材质变化)

功能

自定义材质装饰条(Trim Custom)是独立合成的装饰条方块,材质信息存储在 TileEntityTrim 的 NBT 中。

与 Trim 的关系

  • 不是从标准 trim 转换来的。⚠️ 原文"通过 Framing Table 将标准 trim 转换而来"是错误的:trimCustom 由工作台直接合成(ModRecipes.java:480-...,图案 "yxy" / "xyx" / "yxy",'x' = "stickWood"、'y' = ?)
  • 注册也受 enableFramedDrawers 开关控制(默认 true),与 trim 本身是否启用无关:ModBlocks.java:116-117 只判断 config.isBlockEnabled("trim") 后注册 trimCustom
  • 两者功能一致(都是 1/16 格宽的窄条、都是 INetworked 连通节点、都不贡献槽位),差别只在外观与材质存储

材质来源

  • ⚠️ 原文"任意原木/木板方块(BlockWood 类型)"错误。TileEntityFramingTable.isItemValidMaterial 的判定是 block.isOpaqueCube(),即任意不透明方块(黑曜石、石头、金属块……),与 BlockWood 无关
  • 材质数据写入 ItemCustomTrim.makeItemStack(block, 1, matSide, matTrim),落地后由 TileEntityTrim 存入 NBT

配色方式

  1. 先用工作台合成一个 trimCustom 物品
  2. 放置 Framing Table,左键或右键打开配方面板
  3. 槽 0 放入 trimCustom 物品,槽 1 放入侧面材质,槽 2 放入装饰条材质(两者都必须是 isOpaqueCube() == true 的方块)
  4. 槽 4 输出新的 trimCustom 物品

重新着色

  • 因为是物品级配方,可以反复送进 Framing Table 换不同材质,不存在"只能改一次"的限制
  • ⚠️ 不存在"手持木板右键点击已放置的 trimCustom"这条路径:BlockTrimCustom 未覆写 onBlockActivated

摆放要求

  • 与标准 trim 相同(继承 BlockTrim 的放置逻辑)
  • 可放置于抽屉间的缝隙
  • BlockTrimCustom 覆写 isOpaqueCube() 返回 false(BlockTrimCustom.java:51-53),标准 trim 则为默认 true
  • getRenderType() 走独立渲染器 trimCustomRenderID(BlockTrimCustom.java:36-38),getRenderBlockPass() = 1

交互

BlockTrimCustom 没有覆写 onBlockActivated。原文"右键(手持木板时进行材质转换)"是虚构的。

触发 行为
左键(挖掘) 破坏方块,掉落 1 个带材质 NBT 的 trimCustom(getMainDrop → ItemCustomTrim.makeItemStack(this, 1, tile.getMaterialSide(), tile.getMaterialTrim())),材质不丢失
右键 无任何自定义行为,走 Block 默认逻辑
手持 trimCustom 右键放置 在 tile.getMaterialSide() == null 时 onBlockActivated 直接 return false,该方块不可交互

数值

数值名 值 来源
挖掘难度 5.0(继承 BlockTrim) BlockTrim.java:34
声音 Block.soundTypeWood(固定,不随材质变) BlockTrim.java:35
TileEntity TileEntityTrim(implements ITileEntityProvider,isBlockContainer = true) BlockTrimCustom.java:23,33,96-97
材质槽位数 2(side / trim) ContainerFramingTable.java:100-103
材质合法条件 block.isOpaqueCube() TileEntityFramingTable.java:115-122

材质存储

材质信息通过 TileEntity 存储,包含:

  • 使用的木板方块类型
  • 材质名称显示

这使得模组可以添加自定义木材种类,并通过 Framing Table 使用。

所属多方块结构

相关条目

第三方集成

集成 Mod 集成类型 功能
Waila 工具提示 显示装饰条材质
NEI 配方/隐藏 物品显示和隐藏
Chisel 变体注册 所有装饰条变体的 Chisel 变体注册
MineTweaker 脚本集成 OreDictionary 黑/白名单
GTNH 配方注册 GTNH/dreamcraft 配方系统
Backhand 副手兼容 副手交互兼容性
浏览全部模组