Put the summary of the bug you're having here
upon exiting (shift click) minecart, the range and criteria is drasticallyoff, up to 8 blocks away, and will place you outside of a room which the minecart is in. Bad for Nether travel... Could be linked to another version of this where minecarts fall thru blocks, I wont use them in nether till fixed as I replicated this twice, and the new dismount is placing my charactor way out of the area it used to... This may be related to MC-36482 (minecarts falling out of world)
*What I expected to happen...
was to get off the minecart and be inside the hallway,
**Describe what you thought should happen here
What I THOUGHT should happen? I THOUGHT I would get out of my minecart as I had done hundreds of times before and be standing next to the cart, only one block adjacent, I expected to be in ANY of the adjacent blocks, ON THE SAME LEVEL AS THE MINECART.
FIX THIS.
***What actually happened was...
I was placed into a block or outside of the room below the rail, under my bridge, which caused me to fall into lava below. (I was in the Nether)
Steps to Reproduce:
1. build a standard Nether tunnel for a minecart, (3x3x long as you need) with railway. Disembark area about 6x6 square, or smaller, totally encased walls. (safe area from ghasts) Float room in mid air above lava, to further show the urgency of this problem...
2. Sit in minecart, shift click to exit, and see what it does. Depending on the direction you are facing inside the minecart, you will be "recreated" in some distant places from the minecart, up to eight blocks away, or fall thru floor, if the engine cannot reason a location for you inside the space alotted for the minecart.
3. There are some halfslabs nearby to prevent pigmen spawning, but the disembarking area is not halfslabs or obstructed. I have several stops in the Nether, one stop "threw" me outside the covered hall, placing me outside my "safe tunnel"... the other placed me about eight blocks away, and the third placed me under the hallway, or inside of the block, at which point I fell into the lava below. Did I mention the falling into lava part? I fell, into lava, below, with all my garb, and stuff... below- way below the tracks... in a "safe" place... until now.
Linked issues
is duplicated by 24
Attachments
Comments 47
Thank you for this insight, it does clarify some of the issues I have, but it only means I am going to have to make a much bigger dismount room for the mine carts, which really seems absurd. The randomness of the search pattern is something that needs to be addressed, depending on your position in the mine cart, your dismount changes. Searching diagonally to the 3rd block away places you inside 90 percent of all minecrafter's Nether tunnel's walls, (3x3 tunnel generally)and going out to 7x7 means you are first placed outside said tunnel... even when there is room for dismount in the SAME open area as the minecart.
Mojang, fix it a little bit?
I suppose we're both going to be making extensive changes to our dismount rooms to work around this one if it's not fixed soonish. Walls, rails and pressure pads all need moving. You wouldn't believe such a small change could cause such trouble!
While it's very not ideal, the search pattern looks for a space 3 blocks tall. If you create a ceiling 2 blocks up in every space you don't want to be deposited (including the ones outside your room/tunnel), you can force it to pick your target space. But it ruins aesthetics in the station.
At least it's now here in the system so someone will see it.
This bug also applies to boats, and may even apply to horses and pigs.
Also, notably, you can be dismounted inside lava - the game doesn't bother to check, and will prefer to deposit you in lava northwest of the vehicle rather than safe ground southeast of it.
Here's a video demonstrating that: http://www.youtube.com/watch?v=ymMSjO_CXKI
After watching that video, I take back what I said: It's not a small change. For anyone using transport, this is a nightmare! It clearly doesn't even check if there's a floor anymore.
Please re-open the issue, as I have confirmed that it is still misbehaving in creative and adventure mode, and 1.7.4. I am an admin of a server that relies on minecarts for player transportation, and this bug has been extremely annoying for our staff and players.
Confirmed still present in 14w03b.
Problem happen only if X and/or Z are negatives, due to lack of floor()'ing in the function in charge of Entities dismounting.
To fix in CraftBukkit
src\\main\\java\\net\\minecraft\\server\\EntityLiving.java , lines 1093/1094
int k = (int) (this.locX + (double) i); int l = (int) (this.locZ + (double) j);
becomes
int k = (int) MathHelper.floor(this.locX + (double) i); int l = (int) MathHelper.floor(this.locZ + (double) j);
To fix in mcp903
src\\minecraft\\net\\minecraft\\entity\\EntityLivingBase.java , lines 1508/1509
int var12 = (int)(this.posX + (double)var10); int var13 = (int)(this.posZ + (double)var11);
becomes
int var12 = (int)MathHelper.floor_double(this.posX + (double)var10); int var13 = (int)MathHelper.floor_double(this.posZ + (double)var11);
Of course, it's on server's side π
I've noticed on the 1.8 snapshots that minecarts will now occasionally put you 1 unit West of the block you're supposed to land on, as opposed to 1 unit North in 1.7.
EDIT: Disregard the above, it depends on where you are in the world only.
Tried ElNounch's fix for MCP903; can confirm it solves the problem.
Is there a reason why the algorithm doesn't aim to put the player in a half-integer X/Z position above the valid block, opposed to adding an integer to their current position? I wrote a Bukkit plugin using this method a few months ago; just seems like the easier way to do it.
Still in 14w08a v.2, and much worse. I got teleported over 30 blocks.
EDIT: It doesn't happen all the time
Rather than duplicating a report, I'll add a different example of the bad dismount range and criteria:
The search order for valid exit points has been changed, and now appears to start from the furthest point from the cart in the area checked (appears to be a 7x7 square centered on the cart. Instead of searching compass points in sequence, starting beside the cart, it now searches blocks building up a pattern of lines side by side, seeming to start 3 blocks diagonally away from the cart.
It ignores objects blocking the intervening space, allowing a dismount to the opposite side of a wall from the cart.
The easiest way to reproduce the basic effect is to place a minecart on a rail located in a flat, open area, enter it, and hit shift to exit. You will not be beside the minecart.
Place a single block at the point you were deposited, re-enter the cart and exit, and see where the search decided to put you. Repeat placing a block in that point and so on, and you will see the pattern the search takes.
On a personal note: When you have a SMP world which uses a network of minecart stations for transport, finding all of them suddenly broken is a little demoralizing.