summaryrefslogtreecommitdiffstats
path: root/src
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 /src
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.
Diffstat (limited to 'src')
-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) {