版本更新至:3.76
调整:开发框架改为 Gradle 新增:Language2 工具新增 [book] 类型
This commit is contained in:
64
src/main/java/me/skymc/taboolib/other/MathUtils.java
Normal file
64
src/main/java/me/skymc/taboolib/other/MathUtils.java
Normal file
@@ -0,0 +1,64 @@
|
||||
package me.skymc.taboolib.other;
|
||||
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import me.skymc.taboolib.particle.EffLib;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user