刚刚好,直接燃料

刚刚好,直接燃料

一个Just Dire Things的扩展,将其硬编码的燃料系统改为数据包驱动。添加新的燃料(流体或固体),覆盖JDT的固定FE值,并在JEI中浏览它们。

Just Dire Fuels

Just Dire Things 附带了两个出色的发电机:一个是使用精炼燃料的流体发电机,另一个是使用分级煤炭的固体发电机。但它们完全封闭。流体燃料被锁定在三种内部类型,FE 值被硬编码到服务器配置中,并且没有公共 API 供模组或整合包添加新燃料。

Just Dire Fuels 旨在扩展这一点。两个新的 NeoForge 数据映射让任何数据包都可以添加燃料、覆盖现有速率,并且更改会立即在 JEI 中显示。

新增内容

流体发电机 T1 数据包驱动的燃料接受

原版 JDT 只接受实现内部 RefinedFuel 接口的流体。Just Dire Fuels 通过 justdirefuels:fluid_fuels 数据映射来路由燃料接受和每毫桶 FE。

// data/<your-pack>/data_maps/fluid/fluid_fuels.json
{
  "values": {
    "minecraft:lava":  { "fe_per_mb": 100 },
    "yourmod:plasma":  { "fe_per_mb": 7500 }
  }
}

原版和模组中的流体都是有效的目标。发电机的输入槽、储罐验证器和 FE 计算器都查询同一个映射。

固体发电机 T1 每个燃料的 FE/ tick 和燃烧速度覆盖

燃烧时间已经通过 NeoForge 的 furnace_fuels 数据映射由数据包驱动。但没有被驱动的是每个燃烧 tick 的 FE 和每个燃料的燃烧速度倍率(这些来自硬编码的物品类别和单个全局配置旋钮)。

justdirefuels:item_fuels 数据映射通过两个可选字段解决了这个问题:

// data/<your-pack>/data_maps/item/item_fuels.json
{
  "values": {
    "minecraft:diamond":      { "fe_per_tick": 500, "burn_speed_multiplier": 8 },
    "justdirethings:coal_t2": { "burn_speed_multiplier": 6 }
  }
}
字段 如果省略
fe_per_tick 回退到 JDT 的 generator_t1_fe_per_fuel_tick 配置(15)。
burn_speed_multiplier 回退到 JDT 的每个物品值(对于 JDT 未特殊处理的物品为 1)。

注意:一个新的固体燃料物品还需要在 NeoForge 的 furnace_fuels 数据映射中添加一个 burn_time。这两个是故意独立的。

JEI 集成

一个新的 "流体发电机燃料" 类别列出了数据映射中注册的每种流体及其 FE/mB 速率。流体发电机 T1 方块是配方催化剂,因此在 JEI 中右键点击它会直接跳转到燃料列表。

默认值

该附加组件附带的数据映射条目完全镜像了 JDT 1.5.7 的原始配置值(T2 = 450 FE/mB, T3 = 1300, T4 = 4000;煤炭 T1–T4 燃烧速度倍率 2/4/8/16)。

单独安装它不会有任何改变——它只有在数据包添加或覆盖条目时才会生效。

示例数据包

GitHub 仓库提供了一个可工作的演示数据包,位于 examples/justdirefuels_demo/,它同时做了三件事:

  1. 使原版熔岩成为一种流体燃料,提供 100 FE/mB。
  2. 将 JDT 的 T2 精炼燃料从 450 覆盖为 999 FE/mB。
  3. 使原版钻石成为一种(相当强大的)固体燃料。

将其放入 <world>/datapacks/,执行 /reload,然后查看 JEI。

要求

  • Minecraft 1.21.1
  • NeoForge 21.1.209 或更新版本
  • Just Dire Things 1.5.7 或更新版本
  • JEI(可选;仅游戏内燃料浏览器需要)

兼容性

该附加组件不会替换或隐藏任何 JDT 功能。它在 JDT 现有逻辑之前混入了额外的检查,因此未受影响的行为与原版相同。任何已经在使用 JDT 的整合包都可以安装 Just Dire Fuels,而不会破坏存档、配置或配方。

链接

鸣谢

  • 感谢 Direwolf20 提供了一个很棒的模组
  • 感谢 Dinnerbeef 提供了附加组件的想法