purpleSheepPredicate
は、羊が青いかどうかを実際にチェックします。
元の色と新しい色を組み合わせて紫色になるかどうかを確認しています。
@ MAX1234567890そうではありません。 2色ではなく羊の述語です。
2番目の色は常に赤です。 したがって、羊->色+赤==紫(つまり羊->色==青)をチェックします
それは本当ですが、それはそれを置くための誤解を招く方法です。
`` `java
プライベートファイナルTargetPredicatepurpleSheepPredicate =(new TargetPredicate())。setBaseMaxDistance(16.0D).includeInvulnerable()。setPredicate((livingEntity)-> {
return((SheepEntity)livingEntity).getColor()== DyeColor.BLUE;
});
2番目の色は常に赤です。 したがって、羊->色+赤==紫(つまり羊->色==青)をチェックします
それはゲームの論理の完全な誤解です。
その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
示すように赤色になることがわかります。
うーん、その特定の裏話を文書化するものはありますか? たとえばウィキ?
この場合、ロジックで名前を指定する必要があると思いますが、それについてのユーモラスなjavadocが少し楽しいかもしれません。
直接ではありませんが、a)Evokersがレッドストーンを作成したと公式に述べられており、b)Vexesも赤いという事実が、私をその結論に導いた理由です。 紫の象徴的な性質を覚えておくことも重要です。Evokerは紫を持たない唯一のIllager(VexesとWitchesを含む)であり、Illagerが紫(羊の色)を「計算」しているという考えにつながります。それらを赤くします。
マックス、これは実際の名前ではなくドキュメントに入れる必要があります。 名前は短く簡潔で、その機能を反映している必要があります。
実装の詳細がわかりにくく、役に立たないのに、なぜ実装の詳細について心配しているのですか。 ただそれをconvertibleSheepPredicate
と呼んでください、なぜあなたは色のナンセンスについて頭を悩ますつもりですか
また、このことについてメズを非難します。 幸運なことに、Yarnはずっと賢く、より効率的な方法で名前を付けています。
https://github.com/FabricMC/yarn/commit/5c6c0c71d1480a36e1d3c2a8f2adf859e307cbc6#diff -b6376ebd10e80e5e322fb28f766d47c4R44
詳細は混乱することはなく、何が行われているのかは非常に明確です。 羊が青いかどうかをチェックします。
最も参考になるコメント
マックス、これは実際の名前ではなくドキュメントに入れる必要があります。 名前は短く簡潔で、その機能を反映している必要があります。