By default, train engines burn lava much faster when fed with a fuel tank versus a barrel of buckets
James103 opened this issue ยท 1 comments
Describe the Bug
One bucket of lava, as an item, burns for 20,000 ticks, for a net consumption of 0.05 mB/t of lava.
Lava, as a fluid, burns at 50 ticks for 100 mB, for a net consumption of 2 mB/t of lava.
This is a 40x difference in fuel consumption, and means a full tank of lava only runs a train for 3 minutes and 20 seconds (8,000 mB at 2 mB/t) versus a barrel full of buckets of lava, which runs for 7 hours and 30 minutes (27,000 mB at 0.05 mB/t).
In other words, trains burn lava as if it were bamboo.
Reproduction Steps
- Create two trains.
- On the first train, place a barrel and place a lava bucket inside.
- On the second train, place a fuel tank and fill it completely with lava.
- Start both trains going in a loop.
- The train with the fuel tank of lava runs out of fuel before the train fueled with lava buckets from a barrel.
Repeating the same steps but inserting a piece of (char)coal in the train with the barrel will show that by the time the coal-powered train burns through 1 piece of charcoal, the lava-powered train would have burnt through 3,200 mB of lava.
Expected Result
Both trains should run for approximately the same amount of time when given the same amount of fuel, regardless of if the fuel is in the form of buckets in a barrel or a fluid in a fuel tank.
In the meantime, the following JSON file can be added to a data pack to patch the issue for lava:
data/example/railways_liquid_fuel/efficient_lava.json
{
"fluids": [
"minecraft:lava"
],
"fuel_ticks": 2000
}
Screenshots and Videos
No response
Crash Report or Log
No response
Operating System
Windows 10, 64-bit
Mod Version
1.6.1
Create Mod Version
0.5.1f
Minecraft Version
1.20.1
ModLoader and Version
Fabric 0.15.7
Other Mods
- advancementinfo 1.20-fabric0.83.0-1.4
- appleskin 2.5.1+mc1.20
- architectury 9.2.14
- carpet 1.4.112+v230608
- cloth-config 11.1.118
\-- cloth-basic-math 0.6.1
- create 0.5.1-f-build.1417+mc1.20.1
|-- com_electronwill_night-config_core 3.6.6
|-- com_electronwill_night-config_toml 3.6.6
|-- com_google_code_findbugs_jsr305 3.0.2
|-- flywheel 0.6.10-2
|-- forgeconfigapiport 8.0.0
|-- milk 1.2.60
| \-- dripstone_fluid_lib 3.0.2
|-- porting_lib_accessors 2.3.2+1.20.1
| \-- porting_lib_core 2.3.2+1.20.1
|-- porting_lib_base 2.3.2+1.20.1
| |-- com_electronwill_night-config_core 3.6.6
| |-- com_electronwill_night-config_toml 3.6.6
| |-- porting_lib_attributes 2.3.2+1.20.1
| |-- porting_lib_common 2.3.2+1.20.1
| |-- porting_lib_config 2.3.2+1.20.1
| |-- porting_lib_core 2.3.2+1.20.1
| |-- porting_lib_fluids 2.3.2+1.20.1
| |-- porting_lib_lazy_registration 2.3.2+1.20.1
| |-- porting_lib_mixin_extensions 2.3.2+1.20.1
| |-- porting_lib_utility 2.3.2+1.20.1
| \-- reach-entity-attributes 2.4.0
|-- porting_lib_brewing 2.3.2+1.20.1
| \-- porting_lib_core 2.3.2+1.20.1
|-- porting_lib_client_events 2.3.2+1.20.1
| \-- porting_lib_core 2.3.2+1.20.1
|-- porting_lib_entity 2.3.2+1.20.1
| |-- porting_lib_core 2.3.2+1.20.1
| \-- porting_lib_mixin_extensions 2.3.2+1.20.1
|-- porting_lib_extensions 2.3.2+1.20.1
| |-- porting_lib_attributes 2.3.2+1.20.1
| |-- porting_lib_common 2.3.2+1.20.1
| |-- porting_lib_core 2.3.2+1.20.1
| \-- reach-entity-attributes 2.4.0
|-- porting_lib_models 2.3.2+1.20.1
| |-- porting_lib_core 2.3.2+1.20.1
| |-- porting_lib_fluids 2.3.2+1.20.1
| \-- porting_lib_model_loader 2.3.2+1.20.1
|-- porting_lib_networking 2.3.2+1.20.1
| \-- porting_lib_core 2.3.2+1.20.1
|-- porting_lib_obj_loader 2.3.2+1.20.1
| |-- porting_lib_core 2.3.2+1.20.1
| \-- porting_lib_model_loader 2.3.2+1.20.1
|-- porting_lib_tags 3.0
| \-- porting_lib_core 2.3.2+1.20.1
|-- porting_lib_tool_actions 2.3.2+1.20.1
| \-- porting_lib_core 2.3.2+1.20.1
|-- porting_lib_transfer 2.3.2+1.20.1
| |-- porting_lib_core 2.3.2+1.20.1
| \-- porting_lib_fluids 2.3.2+1.20.1
|-- reach-entity-attributes 2.4.0
\-- registrate-fabric 1.3.62-MC1.20.1
|-- porting_lib_data 2.1.1090+1.20
| \-- porting_lib_gametest 2.1.1090+1.20
\-- porting_lib_model_generators 2.1.1090+1.20
|-- porting_lib_gametest 2.1.1090+1.20
\-- porting_lib_model_materials 2.1.1090+1.20
- create_enchantment_industry 1.2.16
\-- create_dragon_lib 1.4.2
- enhancedblockentities 0.9+1.20
|-- advanced_runtime_resource_pack 0.6.7
\-- spruceui 5.0.0+1.20
- fabric-api 0.92.0+1.20.1
|-- fabric-api-base 0.4.31+1802ada577
|-- fabric-api-lookup-api-v1 1.6.36+1802ada577
|-- fabric-biome-api-v1 13.0.13+1802ada577
|-- fabric-block-api-v1 1.0.11+1802ada577
|-- fabric-block-view-api-v2 1.0.1+1802ada577
|-- fabric-blockrenderlayer-v1 1.1.41+1802ada577
|-- fabric-client-tags-api-v1 1.1.2+1802ada577
|-- fabric-command-api-v1 1.2.34+f71b366f77
|-- fabric-command-api-v2 2.2.13+1802ada577
|-- fabric-commands-v0 0.2.51+df3654b377
|-- fabric-containers-v0 0.1.64+df3654b377
|-- fabric-content-registries-v0 4.0.11+1802ada577
|-- fabric-convention-tags-v1 1.5.5+1802ada577
|-- fabric-crash-report-info-v1 0.2.19+1802ada577
|-- fabric-data-attachment-api-v1 1.0.0+de0fd6d177
|-- fabric-data-generation-api-v1 12.3.4+1802ada577
|-- fabric-dimensions-v1 2.1.54+1802ada577
|-- fabric-entity-events-v1 1.6.0+1c78457f77
|-- fabric-events-interaction-v0 0.6.2+1802ada577
|-- fabric-events-lifecycle-v0 0.2.63+df3654b377
|-- fabric-game-rule-api-v1 1.0.40+1802ada577
|-- fabric-item-api-v1 2.1.28+1802ada577
|-- fabric-item-group-api-v1 4.0.12+1802ada577
|-- fabric-key-binding-api-v1 1.0.37+1802ada577
|-- fabric-keybindings-v0 0.2.35+df3654b377
|-- fabric-lifecycle-events-v1 2.2.22+1802ada577
|-- fabric-loot-api-v2 1.2.1+1802ada577
|-- fabric-loot-tables-v1 1.1.45+9e7660c677
|-- fabric-message-api-v1 5.1.9+1802ada577
|-- fabric-mining-level-api-v1 2.1.50+1802ada577
|-- fabric-model-loading-api-v1 1.0.3+1802ada577
|-- fabric-models-v0 0.4.2+9386d8a777
|-- fabric-networking-api-v1 1.3.11+1802ada577
|-- fabric-networking-v0 0.3.51+df3654b377
|-- fabric-object-builder-api-v1 11.1.3+1802ada577
|-- fabric-particles-v1 1.1.2+1802ada577
|-- fabric-recipe-api-v1 1.0.21+1802ada577
|-- fabric-registry-sync-v0 2.3.3+1802ada577
|-- fabric-renderer-api-v1 3.2.1+1802ada577
|-- fabric-renderer-indigo 1.5.1+1802ada577
|-- fabric-renderer-registries-v1 3.2.46+df3654b377
|-- fabric-rendering-data-attachment-v1 0.3.37+92a0d36777
|-- fabric-rendering-fluids-v1 3.0.28+1802ada577
|-- fabric-rendering-v0 1.1.49+df3654b377
|-- fabric-rendering-v1 3.0.8+1802ada577
|-- fabric-resource-conditions-api-v1 2.3.8+1802ada577
|-- fabric-resource-loader-v0 0.11.10+1802ada577
|-- fabric-screen-api-v1 2.0.8+1802ada577
|-- fabric-screen-handler-api-v1 1.3.30+1802ada577
|-- fabric-sound-api-v1 1.0.13+1802ada577
|-- fabric-transfer-api-v1 3.3.4+1802ada577
\-- fabric-transitive-access-wideners-v1 4.3.1+1802ada577
- fabricloader 0.15.7
\-- mixinextras 0.3.5
- fastload 3.4.0
|-- conditional-mixin 0.3.2
|-- fastload-119-0-1-2-compat 3.4.0
|-- fastload-1193-compat 3.4.0
|-- fastload-1194-compat 3.4.0
\-- fastload_fapi_forward 1.0.2
- ferritecore 6.0.1
- here-be-no-dragons 1.0.0
- immediatelyfast 1.2.11+1.20.4
\-- net_lenni0451_reflect 1.3.2
- indium 1.0.30+mc1.20.4
- itemscroller 0.20.0
- java 17
- krypton 0.2.3
\-- com_velocitypowered_velocity-native 3.2.0-SNAPSHOT
- languagereload 1.5.10+1.20.1
- litematica 0.15.3
- lithium 0.11.2
- malilib 0.16.3
- memoryleakfix 1.1.5
- minecraft 1.20.1
- minihud 0.27.0
- modmenu 7.2.2
- moreculling 1.20.4-0.22.1
\-- mixinsquared 0.1.1
- nochatreports 1.20.1-v2.2.2
- noisium 2.0.1+mc1.20.x
\-- mixinextras 0.3.5
- nvidium 0.2.6-beta
- railways 1.6.0+fabric-mc1.20.1
|-- mixinextras 0.3.5
\-- mm 2.3
- roughlyenoughitems 12.0.684
\-- error_notifier 1.0.9
- shulkerboxtooltip 4.0.4+1.20.1
- sodium 0.5.8+mc1.20.1
- starlight 1.1.2+fabric.dbc156f
- toms_storage 1.6.6
- trinkets 3.7.2
|-- cardinal-components-base 5.2.0
\-- cardinal-components-entity 5.2.0
- tweakeroo 0.17.1
- xaerominimap 24.0.3
- xaeroworldmap 1.38.1
Additional Context
The code responsible for most of this efficiency loss can be found here:
The division by 4 appears to be intentional per the comment, but the division by 100 should be a division by 10.
Fix note: powering trains by piping in fuel directly still carries a 4x multiplier to fuel consumption.
Assuming default configs, a fluid tank full of lava will run for (8000 mB / 0.2 mB/t) = 40,000 ticks (2,000 seconds or 33 min 20 sec), while a barrel full of lava will run for (27,000 mB / 0.05 mB/t) = 540,000 ticks (27,000 seconds or 7 hr 30 min).