罐车容量与填充速率(Railcraft 配置驱动)

基本信息

属性 值
类型 外部配置项(不属于本 mod,由 Railcraft 提供)
配置归属 Railcraft,配置分类 tweaks.minecarts.tank
影响范围 全部 10 种罐车的容量(等比缩放)
本 mod 是否有自己的配置文件 否(仓库中无 Configuration 类、无 cfg 文件)
本 mod 是否有指令 否(无 ICommand 实现)

[!IMPORTANT] IronTankMinecarts 自身不含任何配置项、指令或游戏规则。它不注册方块、不注册 TileEntity、不提供 GUI 处理器。唯一受外部配置影响的行为是罐车容量,而该配置项属于 Railcraft。

容量计算公式

本 mod 的 EntityMinecartTankAbstract(src/main/java/secondderivative/irontankminecarts/minecarts/EntityMinecartTankAbstract.java:33):

public static int getCapacity(TankType type) {
    return RailcraftConfig.getTankCartCapacity() / (FluidContainerRegistry.BUCKET_VOLUME * 16)
        * 1000
        * type.capacity;
}

FluidContainerRegistry.BUCKET_VOLUME 为 Forge 常量 1000,先做整数除法再乘,故:

容量(mB) = floor(Railcraft 罐车配置桶数 / 16) * 1000 * TankType.capacity
容量(桶) = floor(Railcraft 罐车配置桶数 / 16) * TankType.capacity

每个变体只覆写 getCapacity() 返回本公式的结果,公式中的 type.capacity 来自 Irontanks 的 TankType 枚举。

数值

TankType.capacity(Irontanks 依赖提供的桶数系数,源码逐项如下):

TankType capacity 本 mod 中的变体
COPPER 27 铜罐车
IRON 32 铁罐车
GOLD 48 金罐车
SILVER 43 钢罐车
DIAMOND 64 钻石罐车
OBSIDIAN 64 黑曜石罐车
EMERALD 96 铝罐车
STAINLESSSTEEL 128 不锈钢罐车
TITANIUM 256 钛罐车
TUNGSTENSTEEL 512 钨钢罐车
GLASS 0 无对应变体(preInit 中 if (type == TankType.GLASS) continue; 显式跳过)

[!WARNING] 本条目不给出各变体的绝对容量数值。绝对容量取决于运行环境中 Railcraft 的 tweaks.minecarts.tank 配置值,而该值无法从本仓库核实:本 mod 在 dependencies.gradle 中声明编译依赖为 Railcraft 9.16.33,而本机可用的 Railcraft 源码镜像是 12.1.0-beta-8(面向新版本 Minecraft,API 已不兼容),两者不可互相代入。

各实体条目中出现的具体 mB 数值均为「代入 Railcraft 罐车配置 = 32 桶」的显式假设结果,已就地标注,不应视为硬编码常量。

行为

  • RailcraftConfig.getTankCartCapacity() 返回的是档位系数(单位为 Railcraft 配置的桶数),本 mod 只把它当作系数使用。
  • 容量系数改动会等比缩放全部 10 种罐车,不改变变体之间的相对大小顺序(相对顺序完全由 TankType.capacity 决定)。
  • 填充速率(getTankCartFillRate())本 mod 从未引用,因此不受本 mod 影响,也不在本条目范围内。
  • 由于公式含整数除法,配置桶数在 1~15 区间时 floor(.../16) 为 0,该区间内所有变体容量均为 0。

依赖声明上的不一致

@Mod(dependencies = "required-after:Forge@[10.10,);required-after:irontank") 只声明了 Forge 与 Irontanks,没有声明 Railcraft;但源码直接 import 并继承 mods.railcraft.common.carts.EntityCartTank、RailcraftConfig 等 Railcraft 类。Railcraft 仅作为 Gradle 编译期依赖(implementation(...))存在,运行期缺失会导致类加载失败。

相关条目