In normal boats and minecarts, shulkers use a custom height offset so that they do not intersect their vehicle. This override is defined within Yarn mappings' ShulkerEntity#getHeightOffset
:
@Override
public double getHeightOffset() {
EntityType<?> entityType = this.getVehicle().getType();
if (entityType == EntityType.BOAT || entityType == EntityType.MINECART) {
return 0.1875 - this.getVehicle().getMountedHeightOffset();
}
return super.getHeightOffset();
}
In case it isn't obvious, boats aren't boats with chests. That's actually not that obvious, but boats are the entity type minecraft:boat
, while boats with chests are the entity type minecraft:chest_boat
. As such, for boats with chests, entityType == EntityType.BOAT
is false
(and of course, in case it isn't obvious, boats aren't minecarts).
This problem is easily fixed by expanding the vehicle check. For example:
Checking for the entity type
minecraft:chest_boat
as wellAn entity type tag!
Checking
entityType instanceof BoatEntity
, which both boats and boats with chests satisfy
The last proposed solution is ideal since modded boats otherwise need to solve this same issue.
I can also confirm this behavior.
[media][media]You can execute the following commands to observe this issue.