跳到正文
烈焰甘蔗Wiki

Beehive(蜂箱)

事实基准:harvestcraft-1.3.14-GTNH.jar(MC 1.7.10 / Forge 10.13.4.1614)CFR 0.152 反编译源码。

基本信息

属性 值 来源
注册名 harvestcraft:beehive BlockRegistry.java:637
方块类 BlockPamBeehive extends Block BlockPamBeehive.java:17-18
字段 BlockRegistry.pamBeehive BlockRegistry.java:48
构造 new BlockPamBeehive(Material.field_151585_k) BlockRegistry.java:448
显示名 tile.beehive.name = Beehive en_US.lang:32
硬度 1.0f BlockRegistry.java:448
TileEntity 无(继承 Block) —
GUI 无,不打开任何界面 —
条件注册 无,无条件注册 BlockRegistry.java:637
多方块 否,源码未定义任何多方块结构 —
朝向 不支持(无 func_149689_a) —
贴图 侧 harvestcraft:beehiveside、顶 beehivetop、底 beehivebottom BlockPamBeehive.java:33-38

掉落:破坏蜂箱得到一只蜂王

BlockPamBeehive.func_149650_a(int meta, Random random, int fortune) 无条件返回 ItemRegistry.queenbeeItem(BlockPamBeehive.java:29-31),忽略 meta 与时运。

  • 显示名 item.queenbeeItem.name = Queen Bee(en_US.lang:252)。
  • 这是源码里唯一给蜂箱指定掉落物的方式,没有分支、没有概率。

蜂箱的作用:它是蜂王与花的来源

蜂箱本身是死方块,真正的生产者是 Apiary。关系链:

Beehive --破坏掉落--> Queen Bee --放入--> Apiary 的 18 号槽 --> 产出蜂蜡/蜂蜜 + 幼虫

世界生成(PamBeeGenerator,IWorldGenerator)

注册于 HarvestCraft.java:120-121,受配置 enablebeehiveGeneration 门控(默认 true,BlockRegistry.java:342)。

参数 值 来源
每区块生成尝试次数 beehiveRarity = 5 BlockRegistry.java:341
Y 坐标 rand.nextInt(128) → 0–127 任意高度 PamBeeGenerator.java:29
地面条件 目标格下方一格必须是 Blocks.field_150362_t 或 Blocks.field_150364_r PamBeeGenerator.java:31
生成位置 放在 y-1(地面格本身被替换为蜂箱) PamBeeGenerator.java:32
下界 generateNether(...) 被调用但方法体为空 PamBeeGenerator.java:36-37

Blocks.field_150362_t / field_150364_r 是未反混淆的原版方块名,本仓库无 MCP 映射,不断言具体是草方块还是树叶。

处理耗时 / 速率

无。 蜂箱没有 TileEntity、没有 tick 逻辑、不消耗任何东西。真正的速率参数在 Apiary / Apiary 的 TileEntity 条目。

交互

触发 行为 来源
破坏 无条件掉落 ItemRegistry.queenbeeItem BlockPamBeehive.java:29-31
右键 无特殊处理(普通 Block 默认行为) —

源码缺陷

  1. switch 缺 break 导致跨维度调用。PamBeeGenerator.java:16-23:
    switch (world.field_73011_w.field_76574_g) {
        case -1: { this.generateNether(...); }   // ← 没有 break
        case 0:  { this.generateSurface(...); }
    }
    
    在下界(维度 ID -1)中,generateNether 之后还会继续执行 generateSurface。目前因 generateNether 是空方法(:36-37)而没有可见后果,但这是明确的逻辑缺陷。
  2. generateNether 是空方法(PamBeeGenerator.java:36-37)—— 下界蜂箱生成功能是空壳,没有实现。
  3. 蜂箱的掉落物是「一只蜂王」,不是方块本身。BlockPamBeehive.java:29-31 无条件返回 ItemRegistry.queenbeeItem,忽略 meta 与时运。配合 BlockRegistry.java:637 使用的 registerBlock(Block, String) 两参重载(全模组 registerItemBlock 调用数为 0),蜂箱自身没有方块掉落物。

    无法从本仓库确定:Forge 的两参 registerBlock 是否会自动创建默认 ItemBlock(即 harvestcraft:beehive 是否存在可放置的物品形式),取决于 Forge 实现,而本仓库内不含 Forge 源码,故此处不下结论。可确定的是:源码显式声明的掉落物只有蜂王一只。

  4. 多方块 / 控制器 / 可否旋转:源码未定义。

相关条目

  • Apiary — 真正的养蜂机器(有 TileEntity)
  • TileEntity:Apiary

订正记录

  • 本条目完全重写。旧版基于 MC 1.12.2 的 MatrexsVigil/harvestcraft fork,引用了该 fork 的 BeehiveBlock.java 等 1.12.2 类名与行号,并称蜂箱有独立 GUI/蜂群系统。1.7.10 GTNH 版的蜂箱是无 TileEntity、无 GUI 的纯装饰/掉落方块,旧版行号一律作废。
浏览全部模组