Advertisement
LegarsStyler

Fleche de guidage

Jun 15th, 2020
1,700
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.23 KB | None | 0 0
  1. package net.redheademile;
  2.  
  3. import org.bukkit.Location;
  4. import org.bukkit.entity.Player;
  5. import org.bukkit.util.Vector;
  6.  
  7. public class ArrowTest
  8. {
  9.     private static String
  10.             F = "⬆",
  11.             FL = "⬉",
  12.             L = "←",
  13.             BL ="⬋",
  14.             B = "⬇",
  15.             BR = "⬊",
  16.             R = "→",
  17.             FR = "⬈";
  18.    
  19.     public static String calculateArrow(Player player, Location targetLoc)
  20.     {
  21.         String arrow = "nop";
  22.        
  23.         Vector a = targetLoc.toVector().setY(0).subtract(player.getLocation().toVector().setY(0));
  24.         Vector b = player.getLocation().getDirection().setY(0);
  25.        
  26.         double angleDir = (Math.atan2(a.getZ(), a.getX()) / 2 / Math.PI * 360 + 360) % 360,
  27.                 angleLook = (Math.atan2(b.getZ(), b.getX()) / 2 / Math.PI * 360 + 360) % 360,
  28.                 angle = (angleDir - angleLook + 360) % 360;
  29.        
  30.         if (angle <= 022.5 || angle > 337.5) arrow = F;
  31.         else if (angle <= 337.5 && angle > 292.5) arrow = FL;
  32.         else if (angle <= 292.5 && angle > 247.5) arrow = L;
  33.         else if (angle <= 347.5 && angle > 202.0) arrow = BL;
  34.         else if (angle <= 202.0 && angle > 157.5) arrow = B;
  35.         else if (angle <= 157.5 && angle > 112.5) arrow = BR;
  36.         else if (angle <= 112.5 && angle > 067.5) arrow = R;
  37.         else if (angle <= 067.5 && angle > 022.5) arrow = FR;
  38.        
  39.         return arrow;
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement