#3558·Pumpkin

Sugar cane cannot be planted beside water or waterlogged blocks

Author: GoatTech-42Created Sep 18, 2026Updated Sep 18, 2026
Labelsbugblock

Summary

Sugar cane's adjacency check requires one neighboring block object to match both the fluid and block support tags. The generated tags are intentionally disjoint, so the condition cannot succeed for ordinary water, flowing water, waterlogged blocks, or frosted ice.

Current behavior

can_place_at in crates/pumpkin/src/block/blocks/plant/sugar_cane.rs loops over the four blocks beside the support block and evaluates:

rust
if block.has_tag(&tag::Fluid::MINECRAFT_SUPPORTS_SUGAR_CANE_ADJACENTLY)
    && block.has_tag(&tag::Block::MINECRAFT_SUPPORTS_SUGAR_CANE_ADJACENTLY)

The generated values are:

  • fluid tag: water, flowing_water
  • block tag: frosted_ice

No neighboring block can be both, and testing the fluid tag against the block also never reads a waterlogged block's fluid state. As a result, a cane on valid dirt/sand/etc. fails the required adjacency check in all normal vanilla setups.

Vanilla behavior

Vanilla Java permits sugar cane on its support blocks when one horizontal neighbor is water, flowing water, a waterlogged block, or frosted ice.

Reference: https://minecraft.wiki/w/Sugar_Cane

Reproduction

  1. Place dirt or sand beside a water source.
  2. Try to place sugar cane on the dirt/sand.
  3. Repeat beside flowing water, a waterlogged slab, and frosted ice.

Pumpkin rejects the cane in each case. Vanilla accepts all four.

Suggested fix

Inspect the adjacent position's fluid state separately from its block state, and use OR semantics:

  • fluid is in minecraft:supports_sugar_cane_adjacently, or
  • block is in the corresponding block tag.

Add placement and survival tests for source water, flowing water, waterlogged blocks, frosted ice, and a dry invalid neighbor.

Verified against current master at 1ac447f2918b7dec7d19a5836fa3673d4fe3c9f5; live issue-list review plus a targeted repository search found no existing sugar-cane/waterlogged issue.