56 lines
2.6 KiB
Java
56 lines
2.6 KiB
Java
package me.skymc.taboolib.other;
|
|
|
|
import me.skymc.taboolib.particle.EffLib;
|
|
import org.bukkit.Color;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.util.Vector;
|
|
|
|
public class MathUtils {
|
|
|
|
public static double tronc(double paramDouble, int paramInt) {
|
|
double d = Math.pow(10.0D, paramInt);
|
|
return Math.floor(paramDouble * d) / d;
|
|
}
|
|
|
|
public static void drawVec(Vector paramVector, Location paramLocation, Color paramColor) {
|
|
for (double d = 0.0D; d < 1.0D; d += 0.1D) {
|
|
EffLib.REDSTONE.display(new EffLib.OrdinaryColor(paramColor), paramLocation.clone().add(paramVector.clone().multiply(d)), 100.0D);
|
|
}
|
|
}
|
|
|
|
public static void sendCoords(Player paramPlayer, Vector paramVector, String paramString) {
|
|
paramPlayer.sendMessage(paramString + tronc(paramVector.getX(), 2) + " " + tronc(paramVector.getY(), 2) + " " + tronc(paramVector.getZ(), 2));
|
|
}
|
|
|
|
public static void sendCoords(Player paramPlayer, Location paramLocation, String paramString) {
|
|
paramPlayer.sendMessage(paramString + tronc(paramLocation.getX(), 2) + " " + tronc(paramLocation.getY(), 2) + " " + tronc(paramLocation.getZ(), 2));
|
|
}
|
|
|
|
public static Vector rotAxisX(Vector paramVector, double paramDouble) {
|
|
double d1 = paramVector.getY() * Math.cos(paramDouble) - paramVector.getZ() * Math.sin(paramDouble);
|
|
double d2 = paramVector.getY() * Math.sin(paramDouble) + paramVector.getZ() * Math.cos(paramDouble);
|
|
return paramVector.setY(d1).setZ(d2);
|
|
}
|
|
|
|
public static Vector rotAxisY(Vector paramVector, double paramDouble) {
|
|
double d1 = paramVector.getX() * Math.cos(paramDouble) + paramVector.getZ() * Math.sin(paramDouble);
|
|
double d2 = paramVector.getX() * -Math.sin(paramDouble) + paramVector.getZ() * Math.cos(paramDouble);
|
|
return paramVector.setX(d1).setZ(d2);
|
|
}
|
|
|
|
public static Vector rotAxisZ(Vector paramVector, double paramDouble) {
|
|
double d1 = paramVector.getX() * Math.cos(paramDouble) - paramVector.getY() * Math.sin(paramDouble);
|
|
double d2 = paramVector.getX() * Math.sin(paramDouble) + paramVector.getY() * Math.cos(paramDouble);
|
|
return paramVector.setX(d1).setY(d2);
|
|
}
|
|
|
|
public static Vector rotateFunc(Vector paramVector, Location paramLocation) {
|
|
double d1 = paramLocation.getYaw() / 180.0F * 3.141592653589793D;
|
|
double d2 = paramLocation.getPitch() / 180.0F * 3.141592653589793D;
|
|
paramVector = rotAxisX(paramVector, d2);
|
|
paramVector = rotAxisY(paramVector, -d1);
|
|
return paramVector;
|
|
}
|
|
}
|