From 8bcbec966d91e94cf62df12cfd6c1e13f2841a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20L=2E=20Osella=20Massa?= Date: Sat, 13 May 2017 17:41:10 -0300 Subject: [PATCH] Yaw is between [-360, 360], fix cruise direction. --- .../movecraft/listener/CommandListener.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/countercraft/movecraft/listener/CommandListener.java b/src/main/java/net/countercraft/movecraft/listener/CommandListener.java index e658212c..629a883f 100644 --- a/src/main/java/net/countercraft/movecraft/listener/CommandListener.java +++ b/src/main/java/net/countercraft/movecraft/listener/CommandListener.java @@ -289,23 +289,25 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String if ( player.hasPermission( "movecraft." + craft.getType().getCraftName() + ".move" ) ) { if(craft.getType().getCanCruise()) { if(args.length == 0) { - float yaw = player.getLocation().getYaw(); - if(yaw >= 135 || yaw < -135) { - // north - craft.setCruiseDirection((byte)0x3); - craft.setCruising(true); - } else if(yaw >= 45) { + // Normalize yaw from [-360, 360] to [0, 360] + float yaw = (player.getLocation().getYaw() + 360.0f); + if (yaw >= 360.0f) yaw -= 360.0f; + if (yaw >= 45 && yaw < 135) { // west craft.setCruiseDirection((byte)0x5); craft.setCruising(true); - } else if(yaw < -45) { - // south - craft.setCruiseDirection((byte)0x2); + } else if (yaw >= 135 && yaw < 225) { + // north + craft.setCruiseDirection((byte)0x3); craft.setCruising(true); - } else { + } else if (yaw >= 225 && yaw <= 315){ // east craft.setCruiseDirection((byte)0x4); craft.setCruising(true); + } else { + // south + craft.setCruiseDirection((byte)0x2); + craft.setCruising(true); } return true; }