El purpleSheepPredicate
realmente comprueba si la oveja es azul.
Lo que está haciendo es comprobar si el color original combinado con el nuevo color se vuelve violeta.
@ MAX1234567890 ese no puede ser el caso. Es un predicado de una oveja, no de dos colores.
El segundo color es siempre rojo. Por lo tanto, verifica oveja-> color + rojo == púrpura (es decir, oveja-> color == azul)
Aunque eso es cierto, es una forma engañosa de decirlo.
`` java
TargetPredicate final privado purpleSheepPredicate = (new TargetPredicate ()). setBaseMaxDistance (16.0D) .includeInvulnerable (). setPredicate ((livingEntity) -> {
return ((SheepEntity) livingEntity) .getColor () == DyeColor.BLUE;
});
El segundo color es siempre rojo. Por lo tanto, verifica oveja-> color + rojo == púrpura (es decir, oveja-> color == azul)
Eso es un completo malentendido de la lógica del juego.
Ese TargetPredicate se usa para probar si el evocador debe wololo la oveja, es decir, la oveja DEBE ser azul:
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;
Además, una mirada más detallada al objetivo muestra que la oveja nunca debe volverse morada, sino roja, como se muestra en castSpell
Sé que no se vuelve púrpura, pero el predicado, sabiendo ya que la oveja se volverá roja, comprueba si el color original de la oveja combinado con el nuevo color de la oveja es púrpura. Básicamente, el evocador usa {return purple - x; por lo que tiene que asegurarse de que rojo = púrpura - el color original, es decir, el color es azul.
Hmm, ¿hay algo que documente esa historia de fondo específica? wiki por ejemplo?
Creo que en este caso, la lógica debería dictar el nombre, pero un poco de javadoc humorístico sobre eso podría ser divertido.
No directamente, pero dado que a) se declara oficialmente que los Evokers construyeron redstone yb) el hecho de que los Vexes también son rojos es lo que me lleva a esa conclusión. También es importante tener en cuenta la naturaleza simbólica del morado: el Evoker es el único Illager (incluidos Vexes y Witches) que no tiene ningún morado, lo que lleva a la idea de que el Illager está "calculando" el morado: el color de la oveja. para ponerlos rojos.
Max, esto debe incluirse en la documentación, no en el nombre real. El nombre debe ser breve y conciso y reflejar lo que hace.
Lol ¿por qué diablos le preocupan los detalles de implementación si los detalles de implementación son confusos y no útiles? Solo llámalo convertibleSheepPredicate
, ¿por qué te vas a pegar el cerebro por una tontería de color
También culpe a Mezz por esto. Yarn ha sido mucho más inteligente desde que, afortunadamente, nombra las cosas de manera más eficiente.
https://github.com/FabricMC/yarn/commit/5c6c0c71d1480a36e1d3c2a8f2adf859e307cbc6#diff -b6376ebd10e80e5e322fb28f766d47c4R44
Sin embargo, los detalles no son confusos y está muy claro lo que se está haciendo. Comprueba si la oveja es azul.
Comentario más útil
Max, esto debe incluirse en la documentación, no en el nombre real. El nombre debe ser breve y conciso y reflejar lo que hace.