-
-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Item movement priority is pseudorandom #4
Comments
We spent a while trying to create a simple reproduction case but from a gameplay standpoint this is a really complicated issue. However, we do understand it a bit better now. Here are some things we've learned from experimenting:
|
See the pull request but i think I've found a solution to the problem. I've tried to replicate vanilla behavior by setting the cooldown in the target duct to 8 ticks. This stabilizes the behavior by making it less dependent on the order the ducts tick. It also gives the hopper below time to acquire the item, so it appears to restore the behavior people rely on for sorters. Note that setting the target cooldown to any less than 8 ticks will probably break sorters in the event the ducts are moving items continuously because they may move items more rapidly than the hoppers below can acquire them. |
I've had some time to research and as far as I can tell this is as technically correct a solution as seems to be available in Fabric mods to date. For example, it turns out Flytre's Hopper+ mod does basically the same thing (currently line 126 of HopperPlusBlockEntity.java). I have updated the pull request to make this behavior configurable. Please let me know if there is anything else I need to do in order to get this change accepted. |
This is the best vanilla-friendly hopper mod I have ever seen. THANK YOU!
When moving items horizontally via hopper, if there is a hopper with room below the horizontal line of hoppers, it will take priority and remove items from the hopper chain (allowing things like sorters). The ducts mod often but not always moves the item on to the next duct before the hopper below is allowed to acquire it. This means sorters must still be 100% hopper-based. In our testing, ducts greatly outperform hoppers for lag so we want to avoid using hoppers wherever we can. Therefore it would be great if ducts could be made to have a stable behavior similar to that of hoppers in this situation.
The text was updated successfully, but these errors were encountered: