Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-136758

End gateway beam stutters during its animation because it only uses integer heights

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • None
    • Minecraft 1.13.1, Minecraft 1.13.2, Minecraft 18w44a, Minecraft 18w45a, 1.14.4, 19w39a, 1.15 Pre-release 6, 1.15.2, 20w51a, 1.17
    • Confirmed
    • Rendering

      The end gateway beam stutters during its animation because it only uses integer heights.

      To reproduce

      With a command block:

      1. Place an end gateway block. The elevation does not matter.
      2. Place a command block next to that end gateway.
      3. Enter the command /data merge block ~1 ~ ~ {Age:1}.
      4. Change the command block to a repeating, always-active command block.
      5. The beam should now be visible, repeatedly oscillating at a height of about 20 blocks. Each tick, it will interpolate between the heights at age 1 and 2, and then will be reset to age 1 the next tick.
      6. Observe that the interpolation is not smooth, but instead is always aligned with a block in height.

      Previously, MC-136757 worked well for reproducing this since you have a beam that varies in height at a rate you can control. (However, it was fixed).

      Without any command blocks:

      1. Place an end gateway block
      2. Fly up around 45 blocks
      3. Toss an item down at the end gateway
      4. Move back so that you have an angle to see both the gateway and the beam.
      5. When the beam appears, it will not smoothly move between positions.

      If no beam appears, make sure that the item went in and that the gateway block was within your field of view (MC-136756).

      Fix

      The code to render the beam in TileEntityEndGatewayRenderer uses TileEntityBeaconRenderer.renderBeamSegment, which takes an integer height. Changing that to a double would solve the problem entirely. Note that the rest of the code does correctly interpolate (including using partialTicks); it's only this last step that's incorrect.

            Unassigned Unassigned
            pokechu22 [Mod] Pokechu22
            Votes:
            6 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              CHK: