自定义蜂巢方块
基本信息
| 属性 | 值 |
|---|---|
| 注册方式 | CustomHives.registerHives()(custom/CustomHives.scala)→ net.bdew.gendustry.blocks.BeeHive |
| 注册名 | gendustry:BeeHive<hiveId>(SimpleBlock("BeeHive" + hiveId, ...)) |
| 数量 | 默认 0 个 |
| 硬度 | 1.0(setHardness(1.0f)) |
| 收获等级 | "scoop" 0(setHarvestLevel("scoop", 0)) |
| 材质 | MaterialBeehive = Material(MapColor.stoneColor) + setRequiresTool() + setImmovableMobility() |
| 创造标签 | GendustryCreativeTabs.main |
[!IMPORTANT] 默认注册数为 0
assets/gendustry/config/files.lst只列出 5 个内部配置文件:tuning.cfg/recipes.cfg/upgrades.cfg/bees_color.cfg/bees_patreon.cfg。hives.cfg不在其中,也不在src/main/resources里 —— 它只作为示例存在于仓库根目录的example_configs/hives.cfg。 因此纯净安装下 Gendustry 不注册任何蜂巢方块。玩家必须自行把 hive 定义写进config/gendustry/下的.cfg文件(按字母序在内部配置之后加载),方块才会出现。
功能
BeeHive 是一个运行时按配置动态生成的方块类,每个 hive 定义实例化一个,注册名与贴图都由 hiveId 决定。
registerHives() 的注册流程:
- 建立合法群系列表(
BiomeGenBase.getBiomeGenArray过滤 null 后按小写biomeName索引) - 对每条定义先求值
HDSpawnIf条件,任一不满足就整条跳过(日志Condition unmet: ... - not registering) - 未写
HDBiomes或含all时视为所有群系 - 未写
HDYRange时默认HDYRange(0, 255) - 未写
HDSpawnChance时默认1f
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 硬度 | 1.0 | BeeHive.setHardness(1.0f) |
| 收获等级 | scoop 0 | setHarvestLevel("scoop", 0) |
| 默认 Y 范围 | 0–255 | HDYRange(0, 255) 默认值 |
| 默认生成概率乘数 | 1.0 | HDSpawnChance 默认 1f |
| 光照等级 | 由定义的 LightLevel 决定 |
lightValue = lightLevel |
没有任何爆炸抗性设置 —— BeeHive 及其父类 SimpleBlock 均未调 setResistance。
掉落逻辑
getDrops 覆盖了方块的完整掉落计算,分三轮独立随机(每次都用新的 Random(world.rand) 种子,同一次挖掘三次判定):
- 公主 / 蜂后:先按
rng.shuffle打乱掉落表,find第一个rng.nextInt(100) <= drop.getChance的项;若一个都没选中,退化为「取概率最高的那一项」—— 保证一定掉一只 - 雄蜂:同样机制,但没有兜底(
find无结果就不掉) - 额外掉落:同样机制,无兜底
每种掉落内部还区分 ignoble(可育)标记与物品产出(getPrincess / getDrones / getAdditional 三方法,配合 fortune)。
配置指令
example_configs/hives.cfg 给出两个完整示例(HiveGen Test 与 HiveGen Rock),可用指令:
| 指令 | 作用 |
|---|---|
YLevel <min> - <max> |
生成 Y 范围(闭区间) |
SpawnIf <条件> |
前置条件,不满足则整条不注册 |
SpawnChance <n> |
生成概率乘数 |
SpawnDebug |
把每次生成位置写入日志 |
Biome <名称...> |
群系列表,含空格或特殊字符的名称要加引号;多行会合并 |
Humidity / Temperature |
温湿度等级列表 |
Above / Under / NextTo / Near / Replace |
位置条件(支持 Air / Leaves / 物品字典引用) |
Drops { ... } |
掉落表,格式 <概率> "<物种UID>" (<ignoble 概率>) + <物品> |
TopTexture / BottomTexture / SideTexture |
贴图覆盖 |
Color 0xRRGGBB |
贴图颜色乘数 |
LightLevel <n> |
发光等级 |
贴图未指定时默认取 gendustry:beehives/{id}/{top|side}。
相关条目
- Hive Spawning Debugger - 逐条校验上述条件的调试工具
- 内容包配置 -
hives.cfg的加载顺序与覆盖机制 - Industrial Apiary - 机器形态的蜂箱,可与自然蜂巢共存