mojira.dev
MC-260208

Display entities in spawn chunks with interpolation_duration greater than 0 visually reset to default transformation on rejoin

Display entities that have interpolation duration greater than 0 will visually reset their transformation back to default when the player leaves and rejoins.

To Reproduce (Unexpected Case)

  1. Ensure you are in spawn chunks

  2. Create a display with interpolation duration 1

    /summon block_display ~ ~ ~ {block_state:{Name:"stone"},transformation:{translation:[1.0f,1.0f,0.0f],left_rotation:[0.2f,0.5f,0.0f,1.0f],scale:[2.0f,3.0f,9.0f],right_rotation:[0.0f,0.0f,0.4f,1.0f]},interpolation_start:-1,interpolation_duration:1}
  3. Move a few blocks away

  4. Create a display with interpolation duration 0

    /summon block_display ~ ~ ~ {block_state:{Name:"stone"},transformation:{translation:[1.0f,1.0f,0.0f],left_rotation:[0.2f,0.5f,0.0f,1.0f],scale:[2.0f,3.0f,9.0f],right_rotation:[0.0f,0.0f,0.4f,1.0f]},interpolation_start:-1,interpolation_duration:0}
  5. Leave and rejoin the world

  6. Notice the first display reset to the default transformation but the second one did not

  7. Go to the first display and run

    /data get entity @e[type=block_display,sort=nearest,limit=1]
  8. Notice the NBT is correctly stored. The issue is only visual.

To Reproduce (Expected Case)

  1. Leave spawn chunks

    /tp ~100000 ~ ~
  2. Create a display with interpolation duration 1

    /summon block_display ~ ~ ~ {block_state:{Name:"stone"},transformation:{translation:[1.0f,1.0f,0.0f],left_rotation:[0.2f,0.5f,0.0f,1.0f],scale:[2.0f,3.0f,9.0f],right_rotation:[0.0f,0.0f,0.4f,1.0f]},interpolation_start:-1,interpolation_duration:1}
  3. Move a few blocks away

  4. Create a display with interpolation duration 0

    /summon block_display ~ ~ ~ {block_state:{Name:"stone"},transformation:{translation:[1.0f,1.0f,0.0f],left_rotation:[0.2f,0.5f,0.0f,1.0f],scale:[2.0f,3.0f,9.0f],right_rotation:[0.0f,0.0f,0.4f,1.0f]},interpolation_start:-1,interpolation_duration:0}
  5. Leave and rejoin the world

  6. Notice both displays retain their transformation

Linked issues

Comments 1

I can confirm this. After waiting for interpolation_start ticks after rejoin, the animation starts playing. I guess this is because gametime in the client level is still 0 when the display entity in spawn chunks loads.

onnowhere

boq

Community Consensus

Platform

Normal

Entities

23w07a

1.19.4 Pre-release 2

Retrieved