branchrust_reboot/main/watercatcher_perf_improvementscancel
12 Commits over 62 Days - 0.01cph!
Better fix for catcher detecting if inventory of target liquid container is full
Fixed water catchers not filling up with water if the attached destination liquid container is full
Fix static water catchers throwing an exception
Added Jake's bench_io command from water_io_benchmark branch (there were some other unrelated changes on that branch)
Added server.waterContainersLeaveWaterBehind, when enabled water containers will leave 1 unit of water behind when transferring water to other containers
Attached sprinklers can still fully drain a liquid container
Can be toggled at runtime, enabling this during peak hours or temporarily while IO usage is high should help general server performance
Increase distance daisy chained water catchers can deposit their newly created water
Fixed chains of water storage entities sending excessive entity updates when chained together
Storage entities will now wait 10s after they have initially received water before they start draining to subsequent storage entities
Entity updates were caused by entities constantly dithering from having water/not having water, with this change every storage entity in a chain will maintain a low amount of water while a daisy chained water flow is occuring
Increased backtrack count for water entity drain calculations, allows longer networks and fixes some issues
Potential water catcher changes to improve server performance on long water catcher chains:
When a water catcher is going to generate water, check to see if we can find the eventual destination of that water and instead deposit the water there instead.
This involves skipping the in-between catchers in a chain to prevent each catcher getting turned on as it receives water and then getting turned off as it passes the water on.
This eliminates a lot of IO overhead as each activation/deactivation involves a nework update for the entity