Implement the three Phase 0 prerequisites for the pathfinding rewrite:
- Pose system (vanilla Player.updatePlayerPose): dynamic AABB height based
on current pose -- Standing (1.8), Sneaking (1.5), Swimming/Crawling (0.6).
Automatically downgrades pose when headroom is insufficient (Standing ->
Sneaking -> Swimming), matching vanilla 1.14+ forced-crawl behavior.
- Slime block bounce (vanilla SlimeBlock.bounceUp / stepOn): reverses
downward velocity on landing, with sneaking suppression via
isSuppressingBounce(). Also applies the horizontal slowdown effect
from SlimeBlock.stepOn when walking on slime with low vertical velocity.
- Per-pose dimension constants in PhysicsConsts with eye heights for each
pose, sourced from vanilla Avatar.POSES (26.1 decompiled).
- Debug logging for pose transitions, slime bounces, and periodic physics
state dumps routed through McClient's ILogger.
Tested on a real 1.21.11 server: crawling triggers correctly under 1-block
ceilings, sneaking under 1.5-block ceilings, slime bounce produces correct
decaying oscillation, and pose recovery works when obstacles are removed.
Made-with: Cursor
- Introduced a comprehensive physics engine that replicates Minecraft's movement mechanics, including player input handling, gravity, and collision detection.
- Added classes for player physics, movement input, and collision detection, ensuring accurate simulation of player interactions with the game world.
- Integrated AABB (Axis-Aligned Bounding Box) structures for precise collision detection against blocks.
- Enhanced movement capabilities with support for jumping, sneaking, and sprinting, along with step-up mechanics for navigating terrain.
These changes significantly improve the realism and responsiveness of player movement within the game environment.