I think we’re all familiar with hopper-minecarts pulling from other minecarts with inventory diagonally on X+1, Y+2, Z+1 going back years now MCPE-57637 and recently hopper-carts began going even more crazy with the fix for
MCPE-54244 where new items in “infected” hopper-mc MUST be drained first.
I had done some reading and I believe the main reason behind this bug existing for so long is the lack of details on previous tickets to explain how serious this issue is and its connection and history of fixes I believe are related all together:
Lets start building:
1. Place chest and attach hopper to top side and then add 1 upside down slab to side of hopper and 4 more slabs to the other side to make flat surface for 3 activator rails.
2. Then place full block on top of slab furthest way from hopper and add redstone torch and repeater towards activator rails and place activator rails on 3 remaining blocks, on the full block, place lever on top and then place observer facing out and place lever on its face as well.
3. Add 2x2 inverted slabs on top of activator rail and place 4 detector rails on top of slabs, parallel to rails bellow.
4. Block each of detector rail exits with full blocks.
5. Add frames with items for orientation for example:
White – X=X, Y=Y+2, Z=Z; - Correct pull
Red – X=X+1, Y=Y+2, Z=Z; - 1 off to Right
Green – X=X+1, Y=Y+2, Z=Z+1; 1 off to Right and Bottom
Blue – X=X, Y=Y, Z=Z+1; 1 off to Bottom
6. Place hopper-cart on activator rail and use lever on observer to send a test pulse.
7. Place 4 remaining hopper-carts on top for each colour code in order: Blue, Green, Red, White.
8. Fill containers with matching colours
9. Use either of levers.
- On Pulse - Chest contain white wool
- On Switch – Hopper-mc pulls white wool from hopper-mc directly above it.
- On Pulse – Chest contain blue wool
- On Switch – Hopper-mc pulled from each container above in the same order I placed them it. Blue, Green, Red, White
- For hopper-mc to pull white wool, red wool container must be empty; to pull red wool, green container must be empty; to pull green wool, blue container must be empty.
- This order is fixed. While white wool is pulled, if any other containers receive more wool, it will force pulling from that container instead. I assume
MCPE-54244is related to this.
- Pull order is based on order in which hopper-minecarts were placed.
- If 2x2 square of hopper-minecarts cross chunk border the pulling hopper-mc would only remember order of those within its own chunk.
- Hopper-mc pushed towards brick wall pole is still able to pull diagonally. Tile-able designs require each hopper-mc to be placed individually and be equally pushed to the brick wall to prevent cross-contamination (very time consuming).
- Most effective way to keep hopper-carts pulling from Y+2 only was by having content in that container only when bottom hopper-cart is placed.
Hopper-carts pull diagonally if given a chance to
Hopper-cart bellow can pull from chest-minecarts
Must pull in the same order minecart-containers above were placed – has the ability to prioritize pulling
Pushing towards brick wall did not affect pulling range
Also suggest that the source of the bug is a result of upper minecarts having their “collision box?” overlaying each other at the edge of scan from minecart bellow
Diagonal pulling only pulls from minecarts towards positive X Y Z and since I could not find any information as to how does hopper-minecart actually scans for target (mathematical formula), I can only assume this is caused by the lack of off-set for the calculation resulting in either bottom hopper-cart scanning extra area towards positive or hopper-cart invading scanned area of a hopper bellow with extra size towards negative. It could be both actually although I guess it is the second one.
I am aware that this could be considered a “duplicate” ticket and I really hope Moderators won’t close it so that players can find it and learn how to manage this diagonal pulling effect until developers can deal with it. I should probably point out that his is a new behaviour that I assume is the result of fix to
MCPE-54244 and unresolved issue MCPE-57637 which exists for about 2 years now with label “won’t fix” or “work-as-intended” and now not only “can” pull diagonally but now hopper “must” stop pulling from hopper-cart directly above to pull from “infected” hopper-carts first if they have items inside.
This bug affects builds such as: Storage/item-transportation systems, Super-smelters which are the most complicated and time-consuming builds with practical application in survival worlds. It took me two days of experimenting in creative world with different combinations until I found a behaviour pattern that I want to share with you…
2 Clips attached and world in creative mode with example ready, one shows the “new” bug, the other solution – Make sure to focus on the order of hopper-carts being placed. (I am facing East on clips (X=X++))
That’s all I can do for now, I gathered the all information I could, so don’t hesitate to ask me any questions, I will answer as soon as I can.
Thank you very much for reading,
P.S. Ticket MCPE-46706 describes a behaviours which have very similar "angle" of operation - perhaps it is worth reading through as well.