purpleSheepPredicate
самом деле проверяет, синяя ли овца.
Он проверяет, дает ли исходный цвет в сочетании с новым цветом фиолетовый.
@ MAX1234567890 этого не может быть. Это предикат овцы, а не двух цветов.
Второй цвет всегда красный. Следовательно, он проверяет овцу-> цвет + красный == фиолетовый (т.е. овца-> цвет == синий)
Хотя это правда, это неверная формулировка.
`` java
private final TargetPredicate purpleSheepPredicate = (new TargetPredicate ()). setBaseMaxDistance (16.0D) .includeInvulnerable (). setPredicate ((livingEntity) -> {
return ((SheepEntity) livingEntity) .getColor () == DyeColor.BLUE;
});
Второй цвет всегда красный. Следовательно, он проверяет овцу-> цвет + красный == фиолетовый (т.е. овца-> цвет == синий)
Это полное непонимание логики игры.
Этот TargetPredicate используется, чтобы проверить, должен ли вызывающий вололить овцу, т.е. овца ДОЛЖНА быть синей:
List<SheepEntity> list = EvokerEntity.this.world.getTargets(SheepEntity.class, this.purpleSheepPredicate, EvokerEntity.this, EvokerEntity.this.getBoundingBox().expand(16.0D, 4.0D, 16.0D));
if (list.isEmpty()) {
return false;
Также дальнейший взгляд на цель показывает, что овца никогда не должна становиться фиолетовой, а должна быть красной, как показано в castSpell
Я знаю, что он не становится фиолетовым, но предикат, уже зная, что овца станет красной, проверяет, является ли исходный цвет овцы в сочетании с новым цветом овцы фиолетовым. В основном вызывающий использует {return purple - x; поэтому он должен убедиться, что красный = фиолетовый - исходный цвет, т.е. цвет синий.
Хм, есть ли что-нибудь, документирующее эту конкретную предысторию? вики например?
Я считаю, что в этом случае логика должна диктовать имя, но немного юмористического javadoc об этом может быть весело
Не напрямую, но с учетом того, что а) официально заявлено, что Эвокеры построили красный камень и б) тот факт, что Вексы тоже красные, - вот что привело меня к такому выводу. Также важно помнить о символической природе пурпурного цвета: Эвокер - единственный Иллагер (включая Вексов и Ведьм), на котором нет пурпурного цвета, что наводит на мысль, что Иллагер «вычисляет» фиолетовый - овечий цвет. сделать их красными.
Макс, это должно быть указано в документации, а не настоящее имя. Название должно быть коротким и лаконичным и отражать его назначение.
Лол, какого черта вы беспокоитесь о деталях реализации, если детали реализации сбивают с толку и бесполезны. Просто назовите это convertibleSheepPredicate
, зачем вы собираетесь теребить цветную чушь?
Также вините Мезза в этой штуке. К счастью, пряжа с тех пор стала намного умнее и стала называть вещи более эффективными.
https://github.com/FabricMC/yarn/commit/5c6c0c71d1480a36e1d3c2a8f2adf859e307cbc6#diff -b6376ebd10e80e5e322fb28f766d47c4R44
Детали не сбивают с толку, и все же очень ясно, что делается. Он проверяет, синяя ли овца.
Самый полезный комментарий
Макс, это должно быть указано в документации, а не настоящее имя. Название должно быть коротким и лаконичным и отражать его назначение.