Yarn: WololoGoal lilaSheepPredicate ist falsch benannt

Erstellt am 10. Mai 2020  ·  11Kommentare  ·  Quelle: FabricMC/yarn

Das purpleSheepPredicate prüft tatsächlich, ob das Schaf blau ist.

bug refactor

Hilfreichster Kommentar

Max, dies sollte in die Dokumentation aufgenommen werden, nicht der tatsächliche Name. Der Name sollte kurz und prägnant sein und widerspiegeln, was er tut.

Alle 11 Kommentare

Es wird überprüft, ob die ursprüngliche Farbe in Kombination mit der neuen Farbe lila ist.

@ MAX1234567890 das kann nicht der Fall sein. Es ist ein Prädikat für ein Schaf, nicht zweifarbig.

Die zweite Farbe ist immer rot. Daher prüft es Schaf-> Farbe + Rot == Lila (dh Schaf-> Farbe == Blau)

Obwohl das stimmt, ist es eine irreführende Art, es auszudrücken.
`` `Java
private final TargetPredicate lilaSheepPredicate = (neues TargetPredicate ()). setBaseMaxDistance (16.0D) .includeInvulnerable (). setPredicate ((livingEntity) -> {
return ((SheepEntity) livingEntity) .getColor () == DyeColor.BLUE;
});

Die zweite Farbe ist immer rot. Daher prüft es Schaf-> Farbe + Rot == Lila (dh Schaf-> Farbe == Blau)

Das ist ein völliges Missverständnis der Spiellogik.

Dieses TargetPredicate wird verwendet, um zu testen, ob der Beschwörer das Schaf wololo soll, dh das Schaf MUSS blau sein:

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;

Auch ein weiterer Blick in das Ziel zeigt, dass das Schaf niemals lila werden soll, sondern rot, wie in castSpell

Ich weiß, dass es nicht lila wird, aber das Prädikat, das bereits weiß, dass die Schafe rot werden, prüft, ob die ursprüngliche Farbe der Schafe in Kombination mit der neuen Farbe der Schafe lila ist. Grundsätzlich verwendet der Evoker ein {return lila - x; also muss er sicherstellen, dass rot = lila ist - die ursprüngliche Farbe, dh die Farbe ist blau.

http://www.clipartbest.com/cliparts/aiq/Mb5/aiqMb5AiM.jpeg

Hmm, gibt es irgendetwas, das diese spezifische Hintergrundgeschichte dokumentiert? Wiki zum Beispiel?

Ich denke in diesem Fall sollte die Logik den Namen diktieren, aber ein bisschen humorvolles Javadoc darüber könnte Spaß machen

Nicht direkt, aber angesichts der Tatsache, dass a) offiziell angegeben ist, dass Evokers Redstone gebaut haben und b) die Tatsache, dass Vexes ebenfalls rot sind, mich zu dieser Schlussfolgerung geführt hat. Es ist auch wichtig, die symbolische Natur des Purpurs im Auge zu behalten: Der Evoker ist der einzige Illager (einschließlich Vexes und Witches), auf dem kein Purpur zu sehen ist, was zu der Idee führt, dass der Illager Purpur - Schafsfarbe "berechnet" um sie rot zu machen.

Max, dies sollte in die Dokumentation aufgenommen werden, nicht der tatsächliche Name. Der Name sollte kurz und prägnant sein und widerspiegeln, was er tut.

Lol, warum zum Teufel sind Sie besorgt über Implementierungsdetails, wenn die Implementierungsdetails verwirrend und nicht hilfreich sind. Nennen Sie es einfach convertibleSheepPredicate , warum machen Sie sich Gedanken über einen Farbquatsch?

Beschuldigen Sie auch Mezz für diese Sache. Garn ist seitdem glücklicherweise viel schlauer und benennt die Dinge effizienter.
https://github.com/FabricMC/yarn/commit/5c6c0c71d1480a36e1d3c2a8f2adf859e307cbc6#diff -b6376ebd10e80e5e322fb28f766d47c4R44

Die Details sind nicht verwirrend und es ist sehr klar, was getan wird. Es prüft, ob das Schaf blau ist.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Runemoro picture Runemoro  ·  3Kommentare

copygirl picture copygirl  ·  6Kommentare

Draylar picture Draylar  ·  6Kommentare

Boundarybreaker picture Boundarybreaker  ·  3Kommentare

Runemoro picture Runemoro  ·  4Kommentare