Yarn: WololoGoal purpleSheepPredicate foi nomeado incorretamente

Criado em 10 mai. 2020  ·  11Comentários  ·  Fonte: FabricMC/yarn

O purpleSheepPredicate realmente verifica se a ovelha é azul.

bug refactor

Comentários muito úteis

Max, isso deve ser colocado na documentação, não o nome real. O nome deve ser curto e conciso e refletir o que faz.

Todos 11 comentários

O que ele está fazendo é verificar se a cor original combinada com a nova cor torna o roxo.

@ MAX1234567890 esse não pode ser o caso. É um predicado sobre uma ovelha, não duas cores.

A segunda cor é sempre vermelha. Portanto, ele verifica ovelha-> cor + vermelho == roxo (ou seja, ovelha-> cor == azul)

Embora isso seja verdade, é uma maneira enganosa de colocá-lo.
`` `java
private final TargetPredicate purpleSheepPredicate = (new TargetPredicate ()). setBaseMaxDistance (16.0D) .includeInvulnerable (). setPredicate ((livingEntity) -> {
return ((SheepEntity) livingEntity) .getColor () == DyeColor.BLUE;
});

A segunda cor é sempre vermelha. Portanto, ele verifica ovelha-> cor + vermelho == roxo (ou seja, ovelha-> cor == azul)

Isso é um completo mal-entendido da lógica do jogo.

Esse TargetPredicate é usado para testar se o evocador deve wololo a ovelha, ou seja, a ovelha DEVE 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;

Além disso, uma análise mais aprofundada da meta mostra que a ovelha nunca deve ficar roxa, mas vermelha, como mostrado em castSpell

Eu sei que não fica roxo, mas o predicado, já sabendo que a ovelha ficará vermelha, verifica se a cor original da ovelha combinada com a nova cor da ovelha é roxa. Basicamente, o evocador está usando um {return roxo - x; então ele tem que se certificar de que vermelho = roxo - a cor original, ou seja, a cor é azul.

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

Hmm, há algo documentando essa história de fundo específica? wiki por exemplo?

Acho que, neste caso, a lógica deveria ditar o nome, mas um bom javadoc humorístico sobre isso pode ser divertido

Não diretamente, mas dado que a) é oficialmente declarado que os Evokers construíram redstone eb) o fato de que os Vexes também são vermelhos é o que me levou a essa conclusão. Também é importante ter em mente a natureza simbólica do roxo: o Evocador é o único Illager (incluindo Vexes e Bruxas) a não ter nenhum roxo nele, o que leva à ideia de que o Illager está "computando" roxo - cor de ovelha para torná-los vermelhos.

Max, isso deve ser colocado na documentação, não o nome real. O nome deve ser curto e conciso e refletir o que faz.

Lol porque diabos você está preocupado com os detalhes de implementação se os detalhes de implementação são confusos e inúteis. Basta chamá-lo de convertibleSheepPredicate , por que você está pensando em uma bobagem de cor

Também culpe o mezz por isso. Felizmente, o Yarn ficou muito mais inteligente desde então, nomeando as coisas de maneiras mais eficientes.
https://github.com/FabricMC/yarn/commit/5c6c0c71d1480a36e1d3c2a8f2adf859e307cbc6#diff -b6376ebd10e80e5e322fb28f766d47c4R44

Os detalhes não são confusos e é muito claro o que está sendo feito. Ele verifica se a ovelha é azul.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Awakened-Redstone picture Awakened-Redstone  ·  4Comentários

Runemoro picture Runemoro  ·  4Comentários

quat1024 picture quat1024  ·  6Comentários

ChloeDawn picture ChloeDawn  ·  6Comentários

Sollace picture Sollace  ·  5Comentários