mojira.dev
MC-313091

Non-experimental minecarts no longer take fall damage

As of 26.4 Snapshot 6, minecarts no longer take fall damage.

Steps to reproduce: Place TNT minecart on rail more than 3 blocks above the ground then break the rail supporting block (and rail).

Expected result: TNT minecart explodes after hitting the ground.

Actual result: It does not.

Code Analysis: In 26.4 Snapshot 6, fall damage is now a part of the applyEffectsFromBlocks logic. Non-experimental behavior carts are an exception to most entities in that they only run this check around their post Entity::move and ending position(s) and appear to intentionally not use any of it’s actual movements.

This causes the fall damage check which now relies on applyEffectsFromBlocks to calculate a momentY (and subsequently fallDistance) of 0.

WARNING: When fixing this, please ensure that carts preserve their pre-26.4 snapshot 6 applyEffectsFromBlocks behavior - i.e. not callstate.entityInside, advance effectCollector or trigger fluidInteraction’s if the block would not be checked from just the cart’s ending position.

Note: onInsideBlock will need to be called throughout the movement path in order for the new fall distance resetting check to work as intended / roughly akin to the old behavior.

Comments 0

No comments.

stacked_dynamite

(Unassigned)

Unconfirmed

26.4 Snapshot 7

Retrieved