Skip to content

Fix review findings in player animations - #5

Merged
SnailPerson merged 1 commit into
SnailPerson:patch-57from
tornqvistaa:review/player-animations-fixes
Nov 4, 2026
Merged

SnailPerson merged 1 commit into
SnailPerson:patch-57from
tornqvistaa:review/player-animations-fixes

Conversation

@tornqvistaa

Copy link
Copy Markdown
Collaborator
  • Apply limb poses to players only, so humanoid mobs and armor stands near a vehicle no longer reach for its targets.
  • Evaluate entries and one-shot/linger triggers once per client vehicle tick instead of per render call; render only interpolates. Exterior lookups use a registry of vehicles with exterior entries instead of scanning every entity, skip vehicles out of reach by distance, and the hot render paths no longer allocate. Turning playerTweaks off drops trigger state, so turning it back on fires no stale one-shots.
  • Add getActiveLimbs: the vanilla first-person hand is hidden only for animated arms, so other hands keep their held items, and the first-person body pass draws only animated limbs, and is skipped while the camera is on another entity.
  • Replace the RenderLayer @reDIrect with an accessor that swaps the renderer's layer list during the first-person body pass.
  • 1.12.2: show exterior poses while standing, cache the layer field, remove the dead first-person limb pass, and install the shared custom player model once while any player needs it instead of nesting it.
  • Validate playerAnimations at load: vehicles only, exactly one of seatSlot or range, applyAfter must name an animated object. Invalid entries are logged and dropped. Seat entries match only seats mounted directly on the vehicle.
  • Revert the global parser changes (case-insensitive enums, bare numbers for integer lists) and the never-released root playerAnimations migration.
  • Drop vehicle state on removal; sync descriptions and PLAYER_ANIMATIONS.md.

- Apply limb poses to players only, so humanoid mobs and armor stands
  near a vehicle no longer reach for its targets.
- Evaluate entries and one-shot/linger triggers once per client vehicle
  tick instead of per render call; render only interpolates. Exterior
  lookups use a registry of vehicles with exterior entries instead of
  scanning every entity, skip vehicles out of reach by distance, and
  the hot render paths no longer allocate. Turning playerTweaks off
  drops trigger state, so turning it back on fires no stale one-shots.
- Add getActiveLimbs: the vanilla first-person hand is hidden only for
  animated arms, so other hands keep their held items, and the
  first-person body pass draws only animated limbs, and is skipped while
  the camera is on another entity.
- Replace the RenderLayer @reDIrect with an accessor that swaps the
  renderer's layer list during the first-person body pass.
- 1.12.2: show exterior poses while standing, cache the layer field,
  remove the dead first-person limb pass, and install the shared custom
  player model once while any player needs it instead of nesting it.
- Validate playerAnimations at load: vehicles only, exactly one of
  seatSlot or range, applyAfter must name an animated object. Invalid
  entries are logged and dropped. Seat entries match only seats mounted
  directly on the vehicle.
- Revert the global parser changes (case-insensitive enums, bare numbers
  for integer lists) and the never-released root playerAnimations
  migration.
- Drop vehicle state on removal; sync descriptions and
  PLAYER_ANIMATIONS.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SnailPerson
SnailPerson merged commit ec44fb8 into SnailPerson:patch-57 Nov 4, 2026
3 checks passed
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.

2 participants