Waxing copper trapdoors resets their orientation and open state
Summary
Using honeycomb on any copper trapdoor replaces it with the waxed block's default state instead of preserving the existing trapdoor properties. The trapdoor can rotate, move to the bottom half, close, lose its powered state, and lose waterlogging when waxed.
Current behavior
try_wax_block preserves properties only when the source block is in the doors tag. Every other waxable block uses the replacement's default state:
if block.has_tag(&tag::Block::MINECRAFT_DOORS) {
// copy door properties
} else {
// TODO: Also carry over the properties of trapdoors.
new_block.default_state.id
}All four unwaxed copper trapdoor variants map to waxed equivalents in get_waxed_equivalent, so they take this default-state branch.
Vanilla behavior
Waxing changes only the copper block variant. A copper trapdoor keeps its block-state properties: facing, half, open, powered, and waterlogged.
Reference: https://minecraft.wiki/w/Copper_Trapdoor
Reproduction
- Place a copper trapdoor facing a direction other than north and in the top half.
- Open it, optionally power or waterlog it.
- Use honeycomb on it.
Pumpkin replaces it with the default closed, north-facing, bottom, unpowered, non-waterlogged waxed trapdoor state. Vanilla preserves the existing state while changing the block to its waxed equivalent.
Suggested fix
Handle the trapdoors tag alongside doors. Read OakTrapdoorLikeProperties from the old state, carry all five properties into the waxed trapdoor's default property set, and convert that set to the replacement state ID. Add a test that waxes a top-half, open, powered, waterlogged trapdoor with a non-default facing.
Verified against current master at 1ac447f2918b7dec7d19a5836fa3673d4fe3c9f5; the connected issue list and targeted search found no existing honeycomb/copper-trapdoor state-preservation issue.
Source: Pumpkin-MC/Pumpkin