Projectiles do not collapse big dripleaf leaves
Summary
Hitting a big dripleaf with a projectile does nothing. Vanilla immediately tilts the leaf fully down for 100 ticks, even when the leaf is powered by redstone.
Current behavior
BigDripleafBlock in crates/pumpkin/src/block/blocks/plant/big_dripleaf.rs implements delayed tilting from entity steps and reset behavior from redstone, but has no projectile handler. The implementation contains an explicit:
//TODO: onProjectileHitThe default BlockBehaviour::on_projectile_hit is a no-op, so arrows, snowballs, wind charges, and other projectiles never change the leaf's tilt.
Pumpkin already has the needed set_tilt_and_schedule_tick helper: Tilt::Full schedules the reset after 100 ticks.
Vanilla behavior
In vanilla Java, any projectile hit immediately makes a big dripleaf fully tilted and temporarily non-solid. Redstone power prevents normal entity-triggered tilting, but intentionally does not prevent projectile-triggered collapse.
References:
- https://minecraft.wiki/w/Big_Dripleaf
- https://maven.fabricmc.net/docs/yarn-23w33a+build.7/net/minecraft/block/BigDripleafBlock.html
Reproduction
- Place a big dripleaf.
- Shoot its leaf with an arrow or throw a snowball at it.
- Repeat while powering the leaf with redstone.
Pumpkin leaves the leaf upright in both cases. Vanilla immediately sets tilt=full in both cases, then resets it after 100 ticks.
Suggested fix
Implement BigDripleafBlock::on_projectile_hit and call the existing tilt helper with Tilt::Full, without applying the redstone-power guard used by entity stepping. Preserve facing and waterlogged state, play the vanilla tilt-down sound, and test powered and unpowered leaves with multiple projectile types.
Verified against current master at 1ac447f2918b7dec7d19a5836fa3673d4fe3c9f5; targeted GitHub searches for big dripleaf projectiles, arrow tilting, and onProjectileHit found no existing issue.
Source: Pumpkin-MC/Pumpkin