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 默认行为) |
— |
源码缺陷
switch缺break导致跨维度调用。PamBeeGenerator.java:16-23:
在下界(维度 IDswitch (world.field_73011_w.field_76574_g) { case -1: { this.generateNether(...); } // ← 没有 break case 0: { this.generateSurface(...); } }
-1)中,generateNether之后还会继续执行generateSurface。目前因generateNether是空方法(:36-37)而没有可见后果,但这是明确的逻辑缺陷。generateNether是空方法(PamBeeGenerator.java:36-37)—— 下界蜂箱生成功能是空壳,没有实现。- 蜂箱的掉落物是「一只蜂王」,不是方块本身。
BlockPamBeehive.java:29-31无条件返回ItemRegistry.queenbeeItem,忽略 meta 与时运。配合BlockRegistry.java:637使用的registerBlock(Block, String)两参重载(全模组registerItemBlock调用数为 0),蜂箱自身没有方块掉落物。无法从本仓库确定:Forge 的两参
registerBlock是否会自动创建默认ItemBlock(即harvestcraft:beehive是否存在可放置的物品形式),取决于 Forge 实现,而本仓库内不含 Forge 源码,故此处不下结论。可确定的是:源码显式声明的掉落物只有蜂王一只。 - 多方块 / 控制器 / 可否旋转:源码未定义。
相关条目
订正记录
- 本条目完全重写。旧版基于 MC 1.12.2 的
MatrexsVigil/harvestcraftfork,引用了该 fork 的BeehiveBlock.java等 1.12.2 类名与行号,并称蜂箱有独立 GUI/蜂群系统。1.7.10 GTNH 版的蜂箱是无 TileEntity、无 GUI 的纯装饰/掉落方块,旧版行号一律作废。