3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-18 12:30:06 +01:00

Use TrigMath in hotspots

Use our implementation of atan2 in AI routines as profiling shows these are
hotspots and (for these cases) our implementation is much faster.
Dieser Commit ist enthalten in:
Travis Watkins 2012-08-15 05:15:36 -05:00
Ursprung 8219081385
Commit 7b20caf8fe
3 geänderte Dateien mit 14 neuen und 5 gelöschten Zeilen

Datei anzeigen

@ -1,5 +1,7 @@
package net.minecraft.server;
import org.bukkit.craftbukkit.TrigMath; // CraftBukkit
public class ControllerLook {
private EntityLiving a;
@ -45,8 +47,10 @@ public class ControllerLook {
double d1 = this.f - (this.a.locY + (double) this.a.getHeadHeight());
double d2 = this.g - this.a.locZ;
double d3 = (double) MathHelper.sqrt(d0 * d0 + d2 * d2);
float f = (float) (Math.atan2(d2, d0) * 180.0D / 3.1415927410125732D) - 90.0F;
float f1 = (float) (-(Math.atan2(d1, d3) * 180.0D / 3.1415927410125732D));
// CraftBukkit start - Math -> TrigMath
float f = (float) (TrigMath.atan2(d2, d0) * 180.0D / 3.1415927410125732D) - 90.0F;
float f1 = (float) (-(TrigMath.atan2(d1, d3) * 180.0D / 3.1415927410125732D));
// CraftBukkit end
this.a.pitch = this.a(this.a.pitch, f1, this.c);
this.a.as = this.a(this.a.as, f, this.b);

Datei anzeigen

@ -43,7 +43,8 @@ public class ControllerMove {
double d3 = d0 * d0 + d2 * d2 + d1 * d1;
if (d3 >= 2.500000277905201E-7D) {
float f = (float) (Math.atan2(d1, d0) * 180.0D / 3.1415927410125732D) - 90.0F;
// CraftBukkit - Math -> TrigMath
float f = (float) (org.bukkit.craftbukkit.TrigMath.atan2(d1, d0) * 180.0D / 3.1415927410125732D) - 90.0F;
this.a.yaw = this.a(this.a.yaw, f, 30.0F);
this.a.e(this.e);

Datei anzeigen

@ -1,5 +1,7 @@
package net.minecraft.server;
import org.bukkit.craftbukkit.TrigMath; // CraftBukkit
public class EntitySquid extends EntityWaterAnimal {
public float d = 0.0F;
@ -104,10 +106,12 @@ public class EntitySquid extends EntityWaterAnimal {
}
f = MathHelper.sqrt(this.motX * this.motX + this.motZ * this.motZ);
this.aq += (-((float) Math.atan2(this.motX, this.motZ)) * 180.0F / 3.1415927F - this.aq) * 0.1F;
// CraftBukkit - Math -> TrigMath
this.aq += (-((float) TrigMath.atan2(this.motX, this.motZ)) * 180.0F / 3.1415927F - this.aq) * 0.1F;
this.yaw = this.aq;
this.f += 3.1415927F * this.bB * 1.5F;
this.d += (-((float) Math.atan2((double) f, this.motY)) * 180.0F / 3.1415927F - this.d) * 0.1F;
// CraftBukkit - Math -> TrigMath
this.d += (-((float) TrigMath.atan2((double) f, this.motY)) * 180.0F / 3.1415927F - this.d) * 0.1F;
} else {
this.j = MathHelper.abs(MathHelper.sin(this.h)) * 3.1415927F * 0.25F;
if (!this.world.isStatic) {