跳到正文
烈焰甘蔗Wiki

Present

礼物盒方块,节日主题装饰方块,具有邻居方块同步功能。

基本属性

属性 值
注册名 chisel:present
父类 Block (implements ICarvable)(BlockPresent.java:31)
材质 Material.wood(BlockPresent.java:33)
硬度 2.0F(Features.java:3182)
爆炸抗性 10.0F(Features.java:3183)
方块边界 0.0625,0,0.0625 ~ 0.9375,0.875,0.9375(BlockPresent.java:36-38)
瓦片实体 TileEntityPresent(BlockPresent.java:199-201)
物品类 ItemBlockPresent(Features.java:3190)
GUI ID 2(BlockPresent.java:115)
渲染 ID getRenderType() 返回 -1(BlockPresent.java:70-72)
变体组 present

功能

  • 实现 ICarvable,16 个纹理变体
  • 实现了 IInventory 容器语义(由 TileEntity 承载),是一个可开箱的双箱
  • 右键打开 GUI(GUI ID 2):player.openGui(Chisel.instance, 2, world, x, y, z) (BlockPresent.java:110-119)
  • TileEntityPresent implements IInventory, IDoubleChest (TileEntityPresent.java:21),可与相邻 present 连接成双箱 (connectTo / findConnections,BlockPresent.java:79-88)
  • 支持比较器取样:Container.calcRedstoneFromInventory((TileEntityPresent) te) (BlockPresent.java:210-212)
  • 破坏时把箱内物品全部掉落(BlockPresent.java:88-105)
  • isOpaqueCube() = false、renderAsNormalBlock() = false(:61-68)
  • 实际外观由 RenderPresent(TileEntitySpecialRenderer)绘制, ClientProxy.java:74 绑定;因为 getRenderType() 返回 -1, 不走 CTM

已订正(编造的行为):原文"邻居同步"整节称 “BlockPresent 响应 onNeighborBlockChange,用于检测红石信号变化 / 与相邻方块同步状态”。 BlockPresent 中不存在 onNeighborBlockChange 方法(已确认全文)。 这是"把原版箱子/红石灯的行为套到 present 上"造成的编造。 present 的"相邻联动"真实机制是 TileEntity 层的 connectTo() / findConnections() / MessagePresentConnect(双箱连接), 与红石信号无关。证据:BlockPresent.java 全文无该方法; BlockPresent.java:75-88、TileEntityPresent.java:48-70。

已订正(编造的方法):原文称"特殊渲染 | 支持 CTM/多纹理"—— getRenderType() 实际返回 -1(BlockPresent.java:70-72), 即标准方块渲染 + TileEntity 特殊渲染,不涉及 CTM。

已订正(语义写反):原文称"getPickBlock - 快捷键获取物品(返回 metadata 0)"。 实际 getPickBlock 返回 new ItemStack(this, 1, world.getBlockMetadata(x, y, z)) ——即方块当前的 metadata(BlockPresent.java:222-225), 会正确保留镌取到的变体,而不是强制 0。

已订正(语义写反):原文称"放置时根据玩家朝向设置 metadata"。 实际 onBlockPlacedBy 里 metadata 取自物品耐久值(变体 id) world.setBlockMetadataWithNotify(x, y, z, stack.getItemDamage(), 3), 玩家朝向写入的是 te.setRotation(heading)(BlockPresent.java:74-86)。 朝向与变体是两个独立字段。

变体系统

变体组 present 共 16 个成员,全部是 chisel:present 自身 (Features.java:3185-3187,for i in 0..15), 纹理统一引用 minecraft:planks_oak(:3186)。 组注册矿物名 Carving.chisel.registerOre("present", "chest")(Features.java:3191), 即可用原版箱子合成(Features.java:3197-3199:箱子 + 对应染料)。

getSubBlocks 列出全部 16 个(BlockPresent.java:51-55), damageDropped(meta) 返回 meta 保留变体(:217-220)。

浏览全部模组