Files
TabooLib/src/main/java/me/skymc/taboolib/other/MathUtils.java
2018-05-07 14:44:10 +08:00

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;
}
}