BlockFL(方块基类)
基本信息
| 属性 | 值 |
|---|---|
| 路径 | de.keridos.floodlights.block.BlockFL |
| 类型 | class(继承 Block) |
| 源码 | src/main/java/de/keridos/floodlights/block/BlockFL.java |
本 mod 所有投光灯方块的抽象基类,负责朝向、朝图标与 NBT 透传。
构造器
protected BlockFL(String unlocName, Material material, SoundType type, float hardness)
- 依次调用
setStepSound(type)→setHardness(hardness)→setBlockName(unlocName) - ⭐ 特殊逻辑(
BlockFL.java:43):当 unlocName 等于tilePhantomLight或tileUVLight时 不设置创造栏(setCreativeTab被跳过)。故这两个方块不会出现在 Flood Lights 创造栏中。
关键方法
| 方法 | 说明 |
|---|---|
getUnlocalizedName() |
覆写为 tile.floodlights:<去掉包名前缀的名字> |
registerBlockIcons |
注册 _top / _top_on / _bot / _side 四张图标 |
getIcon(side, meta) |
meta > 5 表示「亮着」:meta-6 那一面用 topOnIcon;朝向面 topIcon,背面 botIcon,其余 sideIcon |
removedByPlayer |
仅当 willHarvest 为真时允许玩家直接破坏 |
harvestBlock |
破坏后强制 setBlockToAir |
getDrops |
若存在 TileEntityFL,把 TE 的 NBT 写进掉落物,保留设置与燃料 |
onBlockPlacedBy |
读回 NBT/名称,按放置者视角写入朝向 metadata |
getFacing(EntityLivingBase) |
俯仰 >45° → 0(上),< -45° → 1(下),否则按 yaw 取 2…5 |
缺陷
BlockFL.java:106使用 Java 16instanceof模式匹配(TileEntityFL tileEntityFL), 而项目目标是 1.7.10 源码(Java 8)。需确认编译级别;GTNH 侧通常由 toolchain 提升。
相关条目
- ModBlocks — 方块注册表
- TileEntityFL — NBT 载体
- Names —
tilePhantomLight/tileUVLight常量