Create Fabric

Create Fabric

10M Downloads

Fluid transfer on “Cargo Idle” condition causes linked display board issues

dhouck opened this issue · 4 comments

commented

Describe the Bug

When a train is in a station waiting on a Cargo Idle condition and fluid is transferring, if there is a display board linked to the station, it will usually not successfully display the Train Schedule Status (and sometimes not the Train Station Summary, though that usually works fine as long as thereʼs only one train and you arenʼt doing anything weird).

This can be considered either a Display Board issue, a Display Link issue, or both. The root cause is that the Display Link keeps sending updates as long as any cargo moved, and this does not give the Display Board enough time to settle on the “Cargo Idle for X Seconds” message. If any of the letters ever do settle theyʼll stay that way, because the message is the same so they donʼt start rotating again, but the board seems to not notice the message is the same if itʼs searching for the right letter and it restarts the search time.

Sometimes the message settles anyway; I think this happens at high RPM and/or low frame rate (it seems to happen more as I alt-tab away, especially when I have a mod which reduces frame rate of the game when not focused), but Iʼm not sure, and sometimes Iʼve seen it spin indefinitely.

This does not affect signs. It affects books in that it makes it impossible to turn to pages other than 1 because it keeps resetting the book, but the displayed information is always correct if itʼs on page 1. In both cases, this seems to be because books update instantly, unlike display boards. I have not tried Nixie tubes.

Reloading the world, or modifying the display board, seems to reset both the schedule status and station summary to a spinning state and they need to re-settle.

Reproduction Steps

  1. Create a train with a conductor and a fluid tank and a portable fluid interface
  2. Create a station that pumps fluid in or out of the train, and another station for schedules to work
  3. Create a schedule that waits for cargo idle, and give it to the conductor
  4. Hook up a display link to show the Train Schedule Status of the station on a Display Board
  5. The line on the display board will take a long time to settle, if it ever does before fluid transfer is complete

Expected Result

The line on the display board should settle quickly, as though it were given just one update (since the future updates use the same message)

Screenshots and Videos

image
Here four letters have settled, but the rest have not.

Crash Report or Log

No response

Operating System

Linux (Arch)

Mod Version

0.5.0i

Minecraft Version

1.19.2

Other Mods

Noticed with several mods but confirmed with only Create and fabric API. The message seems to settle faster when not focussed when I include the other mods; my guess is this is because Dynamic FPS is somehow changing things, which is why I suggested low FPS might help, but thatʼs conjecture.

Additional Context

When I first saw this bug, with the display link flashing rapidly and the sign not updating, I thought I had somehow gotten the train network into an inconsistent state and the display board was spinning because of some invalid input issue. Now that I know better whatʼs going on it isnʼt as bad, but it looked like it could be a much worse bug.

commented

And hereʼs a world download demonstrating the issue; I meant to upload that in the initial report.
2023-04-16_15-32-46_Train Bug Recreation.zip

commented

behaves the same on Forge

commented

I think there was a communication failure there; I expected when you identified it as upstream you would forward the report there, but it seems like you expected me to. I can verify it on the latest version of both Fabric and Forge and if appropriate re-create the issue there, probably later this week.

commented

Issues that occur on Forge as well are no longer being tracked on this repo. Please follow the respective issue on the Forge repo instead: Creators-of-Create#5670