Design Block(设计系统方块基类)
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | 不直接注册(public abstract class) |
| TileEntity | TileEntityMetadata |
| 硬度 | 基类不设置,由各子类决定 |
| 爆炸抗性 | 基类不设置,由各子类决定 |
| 亮度 | 由各子类决定 |
功能
BlockDesign(binnie/extratrees/carpentry/BlockDesign.java:32,abstract class BlockDesign extends BlockMetadata implements IMultipassBlock)。
⚠️ 已订正(数值):原条目写「硬度 2.0 / 爆炸抗性 5.0」。
BlockDesign构造函数只有一行super(material); designSystem = system;(BlockDesign.java:39-42),没有setHardness/setResistance调用。2.0 / 5.0 只属于BlockCarpentry一个子类,其余子类各不相同。原文把子类的数值安到了基类上。
⚠️ 已订正(归属):原条目称「所有木匠/染色玻璃方块都继承此类」并把
Ceramic Patterned列为其中之一。这在继承关系上成立(Botany:ceramicPattern的BlockCeramicPatterned确实extends BlockDesign),但它注册在 Botany 而非 ExtraTrees(botany/gardening/ModuleGardening.java:91),归类时需注意。
四个子类与各自数值
| 子类 | 注册名 | 域 | 构造位置 | 硬度 | 爆炸抗性 | 设计系统 / Material |
|---|---|---|---|---|---|---|
BlockCarpentry |
carpentry |
ExtraTrees |
extratrees/carpentry/BlockCarpentry.java:15-20 |
2.0 | 5.0 | DesignSystem.Wood / wood |
BlockCarpentryPanel |
panel |
ExtraTrees |
extratrees/carpentry/BlockCarpentryPanel.java:22-26 |
2.0(继承 BlockCarpentry) |
5.0(继承) | 同上 |
BlockStainedDesign |
stainedglass |
ExtraTrees |
extratrees/carpentry/BlockStainedDesign.java:21-22 |
未设置 | 未设置 | DesignSystem.Glass / glass |
BlockCeramicPatterned |
ceramicPattern |
Botany |
botany/ceramic/BlockCeramicPatterned.java:20-26 |
1.0 | 5.0 | CeramicDesignSystem / rock |
核心功能
- 多通道渲染:
IMultipassBlock,走MultipassBlockRenderer(BinnieCore.java:125)。物品端对应MultipassItemRenderer(extratrees/carpentry/ModuleCarpentry.java:90,92,94)。 - 设计编码:
ModuleCarpentry.getMetadata(plank1, plank2, design, rotation, facing)把主色木板、次色木板、设计图案、旋转、朝向压进一个整数(BlockDesign.java:48-50,ModuleCarpentry.java:65-72)。放置时 rotation/facing 固定为 0 / UP,物品形态才带完整编码(ModuleCarpentry.java:74-79)。 - 锤子切换设计:右键持 Forestry 锤(
IToolHammer)循环设计方案(BlockDesign.EventHandler,经registerHandler()挂到 Forge 事件总线,BlockDesign.java:44-46)。ModuleCarpentry.java:92只为BlockCarpentry调了registerHandler(),Panel / StainedDesign / CeramicPatterned 未注册(模组自身不对称)。
数值
见上表。无统一数值。
交互
| 触发 | 行为 |
|---|---|
| 右键(持锤子) | 切换设计方案(仅 BlockCarpentry 生效,见上) |
| 破坏 | 各子类自行处理;BlockCarpentryPanel 走 BlockMetadata.getBlockDropped(:152) |
所属多方块结构
无
相关条目
- Carpentry / Carpentry Panel / Stained Glass - ExtraTrees 子类
- Ceramic Patterned - Botany 子类
- BlockMetadata - 本类父类