Affects Version/s: Minecraft 18w19b, Minecraft 1.13-pre5
Fix Version/s: None
I know what you think, "We told you it's WAI" (but I hope you will read what I wrote, because if you care for the game, there clearly is room to improve the swimming mechanics). And yeah, the fact that you start to swim when having the head in water is WAI. But you cannot seriously say that having our character switching between swim and run 5-10 times per second is a "normal feature" ! It doesn't make sense, it's disagreable both for the eye and for the ear (which includes that it's potentially for epileptic people...), not counting the exact reason why it's made that way is the following :
At first, we could start to swim when our FEET were in water. The feet, because that's the more logical. The only problem was that it meant that when willing to stay at the surface of the water, it wouldn't work well for several reasons, and it was annoying. So it has been changed so that we now start to swim when the HEAD is in water.
→ In other words, we must now have the head in water only to fix the issue there was when that was the feet that were needed to be in water ! Except that there still is a problem. And although harder to encounter, it's worse.
You may think "but it's too hard to encounter this, there's no reason to setup something in a way that would induce this bug". But "not seeing how / why" does not mean "there is no reason to" ! And it just so happens that I did find an example where we could want to do that (and after not that much thinking, by the way) :
I added some hazard with lava, which will of course make the player unable to get the disagreeable part. But that lava isn't necessary, especially if you put a timer. For example, there could be a button at the start, that would temporarily open something in what I called the "treasure room", that would then instead be a room from where you can temporarily open the exit.
In any case, what you would have to do here would be to swim in the water, so that you can go through a 1×1 hole.
And this is a pretty simple case, but something more complex could be done, and for that, it would be worse. Let's imagine for example that there's something hidden under lava (something that must be done again if you fail afterwards). Whether you have a hint or not of where it is, every time you start the timer, you would be provided with a consumable allowing you to go only once and for a limited time under lava. So even if I make sure there's at the start a way for the player to be able to swim, well... You WILL have to go out of water to find that hidden thing. And then ? I can't put water on lava, and that would just suck if the player had to go back to the beginning ONLY to be able to start swimming again.
And there are other problems too, that I already talked about the last time within what would be a solution that would fix every single of all those issues :
Allowing again to swim when only the feet are in water, but only when looking down above a set angle. Starting to swim between 70° / 75° and 90° seems perfect to me. This would also provide a solution to those two issues :
• It was no longer possible to swim in a 1×1 hole if the depth was never more than 1 block. Being able to swim in a depth of 1 block without being able to start swimming in a depth of 1 block doesn't make sense (see screenshot named "one depth").
• It allows to move and stay on the surface without being in the swimming state (as it did before, which was annoying and is why it changed).
– If only the feet are in water, the hitbox shrinks to the feet height (but again, to start swimming, we would have to look down enough).
– If only the head is in water, the hitbox shrinks to the head height. But to start swimming, we would have to look high enough (between 0° and -90° would be the more logical, under that we could get back to the issue we already have).
– If both the head and the feet are in water, the hitbox shrinks to the feet height (and you could start swimming whatever direction you're looking at).
There is also
MC-132595, related to this bug or that is, at least, much easier because of it.
Also, note that due to
MC-132252, this bug can't be reproduced in 1.13-pre5 (you get stuck in swimming mode although no longer in water. Not for the same reasons than for MC-132595). So you will need to go in 1.13-pre4 instead.
(hoped I could reopen the bug report. Actually no, but I know you guys are having notifications anyway so it doesn't change much)