Methods isInWater
and isInsideWater
are currently very confusing: the methods have very similar names but doesn't return the same result at all.
isInWater
returns true only when the full hitbox is in water, and should be renamed to isSubmergedInWater
. And isInWater
returns the value of the field inWater
which is set by isSubmergedIn(FluidTags.WATER, true)
.
Renaming the inWater
field should also be done then.
isInsideWater
returns true when the hitbox hits water, the method should be renamed to isTouchingWater
. The associated field insideWater
should also be renamed.
As isTouchingWater
already exists, the method should also be renamed.
The name isWet
came in some minds but it might conflict with WolfEntity#isWet
which is client-side only.
Maybe we could rename WolfEntity#isWet to isWolfWet
?
My problem by renaming isTouchingWater
to isWet
is it's not entirely correct on a language point of view. You can be wet for a certain time after touching water. I thought of isMakingContactWithWater
but it's way too long.
Could always be isTouchingWaterBlock
and isTouchingWater
. It's not ideal but it should be clear enough.
Since the isWet
method is a separate method in WolfEntity
(rather than just using Entity.isWet
, or overriding it), I'm guessing that the Mojang name is probably something like shouldDoXyz
, where "xyz" is something that wolves do only when wet.
Depends. Wolfs shake their body when they are wet, and if they are wet water particles are rendered on them as well. shouldDoXyz
may not fit as well for the particle render case.
@Runemoro I agree with that. Might be isFurWet
or isASoggyBoi
.
Situation might be that the method on wolves predates the methods on Entity.
+1 for Wolf#isFurWet
This issue is fixed with #1058 now.
Most helpful comment
This issue is fixed with #1058 now.