Skip to content

Parity: Climbable trapdoors if connected to a ladder.#1329

Closed
hexagonny31 wants to merge 10 commits intosmartcmd:mainfrom
hexagonny31:main
Closed

Parity: Climbable trapdoors if connected to a ladder.#1329
hexagonny31 wants to merge 10 commits intosmartcmd:mainfrom
hexagonny31:main

Conversation

@hexagonny31
Copy link
Copy Markdown
Contributor

@hexagonny31 hexagonny31 commented Mar 18, 2026

Description

A feature parity, when open trapdoors act as climbable ladders if they are placed directly above a ladder and against the wall.

Changes

Previous Behavior

Trapdoors has a thickness of 3 pixels while ladders have only 2. I hate this so much and in dire need to make my attic trapdoor to seamlessly be climbable.

2026-03-18.09-49-37.mp4

New Behavior

  • Added a new condition in LivingEntity::onLadder() in case it's a trapdoor, then return as true (as if its a ladder).
  • Ladders are now 1 pixel thicker.
2026-03-23.15-23-03.mp4

Files:

  • LivingEntity.cpp
  • LadderTile.cpp

Methods:

  • LivingEntity::onLadder()
  • LadderTile::setShape(int data)

AI Use Disclosure

No AI

### Previous Behavior
Trapdoors still has collision even if opened, making it difficult to climb with.

### New Behavior
- Added a new condition in `LivingEntity::onLadder()` in case it's a trapdoor, then return as true (as if its a ladder).
- If there's a ladder under the (opened) trapdoor, then its collision box returns as a nullptr.

**Files:**
- `LivingEntity.cpp`
- `TrapDoorTile.cpp`
**Methods:**
- `LivingEntity::onLadder()`
- `TrapDoorTile::getAABB(Level *level, int x, int y, int z)`
Made so that it avoids alternating use of ladders (or vines) and trapdoors.
Just incase if neighborChanged is modified.
The same result but neglecting the update tick could make weird effects.
Going full Java parity. Ngl, having a different collision box was a cool idea but probably best for implementing new tiles.
@hexagonny31 hexagonny31 changed the title Climbable trapdoors if connected to a ladder. Parity: Climbable trapdoors if connected to a ladder. Mar 24, 2026
Commented attachedTo checks, made so mayPlace always return true, and implemented setPlacedBy for directional placing when the player placed the trapdoor on the floor or ceiling.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant