From 5d1d6ffaf0df9a14045eea125be23d506c464347 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Fri, 3 Dec 2021 23:23:19 +0100 Subject: [PATCH] Removes some unnecessary calculation when converting relative vectors to real vectors --- .../stargate/utility/DirectionHelper.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/knarcraft/stargate/utility/DirectionHelper.java b/src/main/java/net/knarcraft/stargate/utility/DirectionHelper.java index 3229c6d..c42fe6d 100644 --- a/src/main/java/net/knarcraft/stargate/utility/DirectionHelper.java +++ b/src/main/java/net/knarcraft/stargate/utility/DirectionHelper.java @@ -113,16 +113,21 @@ public final class DirectionHelper { * @return

A normal vector

*/ public static Vector getCoordinateVectorFromRelativeVector(double right, double down, double out, double yaw) { - Vector distanceVector = DirectionHelper.getDirectionVectorFromYaw(yaw); - distanceVector.multiply(out); - - Vector rightVector = DirectionHelper.getDirectionVectorFromYaw(yaw - 90); - rightVector.multiply(right); - - Vector depthVector = new Vector(0, -1, 0); - depthVector.multiply(down); - - return distanceVector.add(rightVector).add(depthVector); + if (yaw == 0) { + //South + return new Vector(right, -down, out); + } else if (yaw == 90) { + //West + return new Vector(-out, -down, right); + } else if (yaw == 180) { + //North + return new Vector(-right, -down, -out); + } else if (yaw == 270) { + //East + return new Vector(out, -down, -right); + } else { + throw new IllegalArgumentException(String.format("Invalid yaw %f given", yaw)); + } } /**