summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTravis Watkins <amaranth@ubuntu.com>2012-08-15 05:15:36 -0500
committerTravis Watkins <amaranth@ubuntu.com>2012-08-19 09:51:00 -0500
commit7b20caf8fe1866fdfcc6e90e76703ed14c7da4ba (patch)
tree20e88f6cd330ac982aaffa4523a3bc10a37d0123
parent8219081385833a4f020fc5912e27a78da227e777 (diff)
downloadcraftbukkit-7b20caf8fe1866fdfcc6e90e76703ed14c7da4ba.tar
craftbukkit-7b20caf8fe1866fdfcc6e90e76703ed14c7da4ba.tar.gz
craftbukkit-7b20caf8fe1866fdfcc6e90e76703ed14c7da4ba.tar.lz
craftbukkit-7b20caf8fe1866fdfcc6e90e76703ed14c7da4ba.tar.xz
craftbukkit-7b20caf8fe1866fdfcc6e90e76703ed14c7da4ba.zip
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.
-rw-r--r--src/main/java/net/minecraft/server/ControllerLook.java8
-rw-r--r--src/main/java/net/minecraft/server/ControllerMove.java3
-rw-r--r--src/main/java/net/minecraft/server/EntitySquid.java8
3 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/net/minecraft/server/ControllerLook.java b/src/main/java/net/minecraft/server/ControllerLook.java
index 32999b96..1f323d7b 100644
--- a/src/main/java/net/minecraft/server/ControllerLook.java
+++ b/src/main/java/net/minecraft/server/ControllerLook.java
@@ -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);
diff --git a/src/main/java/net/minecraft/server/ControllerMove.java b/src/main/java/net/minecraft/server/ControllerMove.java
index 7a8ebe75..15fc0a6d 100644
--- a/src/main/java/net/minecraft/server/ControllerMove.java
+++ b/src/main/java/net/minecraft/server/ControllerMove.java
@@ -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);
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
index e0c76d8d..030263ab 100644
--- a/src/main/java/net/minecraft/server/EntitySquid.java
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
@@ -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) {