Методы isInWater
и isInsideWater
в настоящее время очень сбивают с толку: методы имеют очень похожие имена, но вообще не возвращают одинаковый результат.
isInWater
возвращает истину только тогда, когда полный хитбокс находится в воде, и его следует переименовать в isSubmergedInWater
. А isInWater
возвращает значение поля inWater
которое установлено isSubmergedIn(FluidTags.WATER, true)
.
Затем следует также переименовать поле inWater
.
isInsideWater
возвращает true, когда хитбокс попадает в воду, метод следует переименовать в isTouchingWater
. Связанное поле insideWater
также следует переименовать.
Поскольку isTouchingWater
уже существует, метод также следует переименовать.
Имя isWet
пришло в голову некоторым, но оно может конфликтовать с WolfEntity#isWet
которое используется только на стороне клиента.
Может быть, мы могли бы переименовать WolfEntity # isWet в isWolfWet
?
Моя проблема с переименованием isTouchingWater
в isWet
заключается в том, что это не совсем правильно с языковой точки зрения. После прикосновения к воде можно некоторое время промокнуть. Я подумал о isMakingContactWithWater
но это слишком долго.
Всегда может быть isTouchingWaterBlock
и isTouchingWater
. Это не идеально, но должно быть достаточно ясно.
Поскольку метод isWet
- это отдельный метод в WolfEntity
(а не просто использование Entity.isWet
или его переопределение), я предполагаю, что имя Mojang, вероятно, похоже на shouldDoXyz
, где "xyz" - это то, что волки делают только во влажном состоянии.
Зависит от. Волки трясутся своим телом, когда они мокрые, и если они мокрые, на них также появляются частицы воды. shouldDoXyz
может не подходить для случая рендеринга частиц.
@Runemoro Я согласен с этим. Может быть isFurWet
или isASoggyBoi
.
Ситуация может заключаться в том, что метод на волках предшествует методам на Entity.
+1 за Wolf#isFurWet
Теперь эта проблема исправлена с помощью # 1058.
Самый полезный комментарий
Теперь эта проблема исправлена с помощью # 1058.