It seems like trains that are using anything but a simple time based wait condition (empty/full cargo, circuits, fluid, item count, compound time based conditions) generate an absolutely huge penalty for the pathfinder.
In the attached example a station with a penalty that should be about 200k (200 circuit closed signals) more than for the occupied staton is still the preferred destination.
Wild speculation: Does remainingTicksInStation() really return a good value for non time based conditions?
[0.15.34] Excessive penalty for some wait conditions
[0.15.34] Excessive penalty for some wait conditions
- Attachments
-
- Excessive path penalty.zip
- (2.82 MiB) Downloaded 110 times
Re: [0.15.34] Excessive penalty for some wait conditions
Thanks for the report. That's currently working as intended; there's no good measure for how long a train will wait at a station if it's not using a time based condition. For instance: inventory full - how long that actually takes is unknown.
So, the game guesses and just says "it will be there for quite some time".
That may change in the future but as of now there's no good measure to use.
So, the game guesses and just says "it will be there for quite some time".
That may change in the future but as of now there's no good measure to use.
If you want to get ahold of me I'm almost always on Discord.
Re: [0.15.34] Excessive penalty for some wait conditions
That sounds perfectly reasonable. I have to ask though, am I reading this wrong or shouldn't that penalty just be about 1k tiles?
I may well be missing something but I can't really see anything that should result in a penalty of over 200k.
Thank you for the quick reply, I hope I'm not making you regret sharing the pathfinder
Have a great day!
Code: Select all
if (neighbourTrain->getTicksInStation() == uint32_t(-1))
{
costFromStart += 1000;
break;
}
Thank you for the quick reply, I hope I'm not making you regret sharing the pathfinder
Have a great day!