mojira.dev

AHelper

Assigned

No issues.

Reported

No issues.

Comments

Confirmed proper behavior for all baby mobs; All babies correctly swim when standing on a block under water, unlike previous versions.

Is that a baby wolf not swimming? If so, my fix above is still valid.

Question to all, since the hit box is too low to collide with the water, if you place fences (hit box extends into the above block) on the bottom of water, can someone confirm babies swim? This might work as a temp fix for some cases.

Please note that the fix for this does not remove resizing of the babies but instead fixes collision checking for the water. You will still be able to detect babies, but this bug is a side-effect of resized mobs, same with babies growing up inside of blocks and dieing.

Do remember that babies swim so long that their BBox hits the water, which was defined expected behavior, and that this new behavior was added from a fix to a bug. For "sorting babies and adults", this bug is the byproduct of that.

Affects 13w23a. Confirmed the effect on baby ocelots and wolves as well.

Confirmed in 13w21a and 13w21b

I can attest to the stuttering as it still exists. This issue is exemplified with redstone clocks.

The reason why chickens die when they grow up is that when they grow up, their hitbox returns to the unadjusted size, causing them to suddenly be inside a solid block. Because they are being pushed, they are shot into the block and suffocate. Placing transparent blocks should help.

I was looking into this and was able to fix this bug. The problem is that Minecraft adjusts the bounding box for mobs when they are being checked if they are in water (shrinks the height). Because the babies' hitboxes are short, they are shrunk too much and fail.

Can't post the change made to the sources as it is against the ToS unless an exception can be made. However, I will describe the issue without using any code.

@Mojang: Babies have 0.5*parent height and chickens have height 0.7. MC checks for water collision using the mob's height - 0.4. Since the adjusted baby chicken height is -0.05, this will always fail when they are on the ground. Reducing 0.4 to 0.3 allows the chickens to swim.

Hopefully someone at Mojang will be able to fix this before the next update. 🙂

<edit> This bug is caused by MC-1524's solution.

I decided to have a look at this bug myself. After running 1.5, I took some measurements to try and help pin-point what is wrong. I have a redstone timer built on the corner of four chunks.

With smooth lighting off:

  • FPS 210 (agv)

  • Levels for root.gameRenderer.level

    1. terrain @ 56.78% / 47.12%

    2. updatechunks @ 19.67% / 16.33%

      1. sort 92.20% / 14.83%

      2. rebuild 6.24% / 1.00%

    3. entities 9.23% / 7.66%

With smooth lighting on:

  • FPS 20 (agv)

  • Levels for root.gameRenderer.level

    1. updatechunks @ 85.60% / 78.42%

    2. terrain @ 8.62% / 7.90%

      1. sort 76.38% / 58.70%

      2. rebuild 22.30% / 17.14%

    3. entities 1.56% / 1.43%

Game settings:

  • Graphics: Fancy

  • Advanced OpenGL: ON

  • Render Distance: Far

Running a GTX 550TI on Linux x86_64. I hope this info helps Mojang to some extent.