diff --git a/README.md b/README.md index 9773a268..de22f0a9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ EffectLib - Manage your effects the nice way. ========= + You have no idea what a vector or matrix is, but you want to give your users some nice effects with particles? No problem. this library comes with a load of effects for you. It handles rotation, text-parsing, and creation of 3D objects with particles in Minecraft. - Text-Parsing diff --git a/src/main/java/de/slikey/effectlib/util/ParticleEffect.java b/src/main/java/de/slikey/effectlib/util/ParticleEffect.java index 66c86309..d3328e57 100755 --- a/src/main/java/de/slikey/effectlib/util/ParticleEffect.java +++ b/src/main/java/de/slikey/effectlib/util/ParticleEffect.java @@ -476,7 +476,10 @@ public enum ParticleEffect { BUBBLE_COLUMN_UP("bubble_column_up"), /** - * TODO: Document me! + * A particle effect which is generated by conduits + * */ NAUTILUS("nautilus"), diff --git a/src/main/java/de/slikey/effectlib/util/VectorUtils.java b/src/main/java/de/slikey/effectlib/util/VectorUtils.java index 91eb0cb6..4c3dc36b 100644 --- a/src/main/java/de/slikey/effectlib/util/VectorUtils.java +++ b/src/main/java/de/slikey/effectlib/util/VectorUtils.java @@ -36,20 +36,20 @@ public static final Vector rotateAroundAxisZ(Vector v, double angle) { } public static final Vector rotateVector(Vector v, double angleX, double angleY, double angleZ) { - // double x = v.getX(), y = v.getY(), z = v.getZ(); - // double cosX = Math.cos(angleX), sinX = Math.sin(angleX), cosY = - // Math.cos(angleY), sinY = Math.sin(angleY), cosZ = Math.cos(angleZ), - // sinZ = Math.sin(angleZ); - // double nx, ny, nz; - // nx = (x * cosY + z * sinY) * (x * cosZ - y * sinZ); - // ny = (y * cosX - z * sinX) * (x * sinZ + y * cosZ); - // nz = (y * sinX + z * cosX) * (-x * sinY + z * cosY); - // return v.setX(nx).setY(ny).setZ(nz); - // Having some strange behavior up there.. Have to look in it later. TODO - rotateAroundAxisX(v, angleX); - rotateAroundAxisY(v, angleY); - rotateAroundAxisZ(v, angleZ); - return v; + double x = v.getX(), y = v.getY(), z = v.getZ(); + double cosX = Math.cos(angleX), sinX = Math.sin(angleX), + cosY = Math.cos(angleY), sinY = Math.sin(angleY), + cosZ = Math.cos(angleZ), sinZ = Math.sin(angleZ); + double nx, ny, nz; + ny = y * cosX - z * sinX; + nz = y * sinX + z * cosX; + y = ny; z = nz; + nx = x * cosY + z * sinY; + nz = x * -sinY + z* cosY; + x = nx; + nx = x * cosZ - y * sinZ; + ny = x * sinZ + y * cosZ; + return v.setX(nx).setY(ny).setZ(nz); } /**