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 16 instanceof 模式匹配(TileEntityFL tileEntityFL), 而项目目标是 1.7.10 源码(Java 8)。需确认编译级别;GTNH 侧通常由 toolchain 提升。

相关条目