Yarn: WololoGoal purpleSheepPredicate被错误命名

创建于 2020-05-10  ·  11评论  ·  资料来源: FabricMC/yarn

purpleSheepPredicate实际上检查绵羊是否为蓝色。

bug refactor

最有用的评论

最多,这应该放在文档中而不是实际名称。 名称应简短明了,并能反映其作用。

所有11条评论

它正在做的是检查原始颜色和新颜色是否合并为紫色。

@ MAX1234567890并非如此。 它是对绵羊的谓词,而不是两种颜色。

第二种颜色始终是红色。 因此,它会检查绵羊->颜色+红色==紫色(即绵羊->颜色==蓝色)

尽管确实如此,但这是一种误导性的表达方式。
Java
私有最终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; 因此,他必须确保红色=紫色-原始颜色,即蓝色。

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

嗯,有什么文件记录那个特定的背景故事吗? 例如Wiki?

我觉得在这种情况下,逻辑应该决定名称,但是关于此的一些幽默的Javadoc可能很有趣

不是直接的,而是鉴于a)正式声明Evokers建立了红石,并且b)Vexes也为红色这一事实使我得出这个结论。 记住紫色的象征性质也很重要:Evoker是唯一一个没有紫色的Illager(包括Vexes和Witches),这导致Illager的想法是“计算”紫色-绵羊的颜色把它们变成红色。

最多,这应该放在文档中而不是实际名称。 名称应简短明了,并能反映其作用。

大声笑,如果实施细节令人困惑且无济于事,您为什么会担心实施细节。 只需将其命名为convertibleSheepPredicate ,您为什么要对颜色胡说八道

还怪这件事。 幸运的是,Yarn变得更加聪明,以更有效的方式命名事物。
https://github.com/FabricMC/yarn/commit/5c6c0c71d1480a36e1d3c2a8f2adf859e307cbc6#diff -b6376ebd10e80e5e322fb28f766d47c4R44

这些细节并没有造成混淆,但是很清楚正在做什么。 它检查绵羊是否是蓝色的。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

copygirl picture copygirl  ·  6评论

Draylar picture Draylar  ·  6评论

liach picture liach  ·  4评论

asiekierka picture asiekierka  ·  4评论

ChloeDawn picture ChloeDawn  ·  6评论