Iron Tank Cart(实体)
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | irontankminecarts.minecart_tank_iron |
| 实体类 | secondderivative.irontankminecarts.minecarts.types.EntityMinecartIronTank |
对应 TankType |
TankType.IRON |
| 实体 ID | 0(EntityRegistry.registerModEntity 传入 TankType.ordinal()) |
| 追踪范围 | 80 |
| 更新频率 | 3 tick |
| 发送速度更新 | 是 |
getCapacity() |
64,000 mB ≈ 64 桶(按下方公式,代入 Railcraft 罐车配置 32 桶) |
[!NOTE] 本条目描述 实体。对应的可放置物品见 同名物品。
功能
由 EntityMinecartIronTank 实例化的流体罐车实体,继承自 Railcraft 罐车基类 mods.railcraft.common.carts.EntityCartTank(经 EntityMinecartTankAbstract 一层)。本 mod 只覆写两个方法:
tankType()—— 返回固定的TankType.IRON。getCapacity()—— 返回EntityMinecartTankAbstract.getCapacity(TankType.IRON)。
速度、摩擦/滚动阻力、GUI 打开方式、装填/卸载、液体注入排出、NBT 持久化、比较器输出、破坏掉落物等行为本 mod 一律未覆写,全部沿用 Railcraft 罐车基类实现(源码中不存在这些方法的覆写)。本 mod 没有自定义 GUI、TileEntity 或 GUI 处理器。
容量公式
// EntityMinecartTankAbstract.getCapacity(TankType type)
RailcraftConfig.getTankCartCapacity() / (FluidContainerRegistry.BUCKET_VOLUME * 16) * 1000 * type.capacity
BUCKET_VOLUME = 1000,化简为(整数除法先算):
容量(mB) = floor(Railcraft 罐车配置桶数 / 16) * 1000 * TankType.capacity
TankType.capacity 是 Irontanks 中该罐类型的桶数系数,本变体为 32。
[!WARNING] 上述 64,000 mB 是代入「Railcraft 罐车容量配置 = 32 桶」的假设结果。本仓库可用的 Railcraft 镜像为 12.1.0-beta-8,而本 mod 在
dependencies.gradle中声明编译依赖 Railcraft 9.16.33,故该配置项的默认值、以及基类是否真的调用被覆写的getCapacity()来决定罐体大小,均未在可用源码中核实。容量随该配置等比缩放,详见 罐车容量与填充速率(Railcraft 配置驱动)。
变体差异
| 变体 | 注册名后缀 | TankType |
实体 ID | 容量系数 | 特有行为 |
|---|---|---|---|---|---|
| 铜 | copper |
COPPER |
3 | 27 | 无 |
| 铁 | iron |
IRON |
0 | 32 | 无 |
| 金 | gold |
GOLD |
1 | 48 | 无 |
| 钢 | steel |
SILVER |
4 | 43 | 无 |
| 钻石 | diamond |
DIAMOND |
2 | 64 | 无 |
| 黑曜石 | obsidian |
OBSIDIAN |
5 | 64 | 免疫爆炸伤害 |
| 铝 | aluminium |
EMERALD |
7 | 96 | 无 |
| 不锈钢 | stainlesssteel |
STAINLESSSTEEL |
8 | 128 | 无 |
| 钛 | titanium |
TITANIUM |
9 | 256 | 无 |
| 钨钢 | tungstensteel |
TUNGSTENSTEEL |
10 | 512 | 无 |
除「特有行为」一列外,10 种罐车在源码层面没有其他差异:类结构完全相同,仅 TankType 常量与容量系数不同。速度与摩擦阻力不随 TankType 变化。不存在升级(upgrade)槽位或升级模块机制。
交互
| 交互方 | 行为 |
|---|---|
| 玩家 | 继承 Railcraft 罐车基类交互(本 mod 未覆写 doInteract 等交互方法) |
| 方块 | 未覆写;与轨道/方块的碰撞行为继承自基类 |
渲染
客户端(ClientProxy.postInit)为该类向 Railcraft 的 CartModelManager.modelsContents 注册一个 ModelSimpleCube 模型,贴图 irontankminecarts:textures/entities/carts/iron.png,并关闭背面剔除(doBackFaceCulling(false))。
相关条目
- Iron Tank Cart(物品) - 放置后生成该实体的物品
- 罐车容量与填充速率(Railcraft 配置驱动) - 决定本实体容量的外部配置项