From f85779c41d0639d6a13ecbbd835ab66973c3ec83 Mon Sep 17 00:00:00 2001 From: bluefireoly Date: Tue, 15 Sep 2020 17:06:51 +0200 Subject: [PATCH] Fixed rotation of structures --- .../axay/kspigot/structures/StructureBuilder.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/net/axay/kspigot/structures/StructureBuilder.kt b/src/main/kotlin/net/axay/kspigot/structures/StructureBuilder.kt index 7703b324..3024faee 100644 --- a/src/main/kotlin/net/axay/kspigot/structures/StructureBuilder.kt +++ b/src/main/kotlin/net/axay/kspigot/structures/StructureBuilder.kt @@ -14,21 +14,25 @@ fun Structure.buildAt(loc: Location) { structureData.forEach { it.structureData.createAt(buildLoc + it.location) } } +/** @see Structure.rotate */ fun Structure.rotateAroundX(angle: Number) - = rotate { it.rotateAroundX(angle.toDouble()) } + = rotate(angle) { it, rad -> it.rotateAroundZ(rad) } +/** @see Structure.rotate */ fun Structure.rotateAroundY(angle: Number) - = rotate { it.rotateAroundY(angle.toDouble()) } + = rotate(angle) { it, rad -> it.rotateAroundY(rad) } +/** @see Structure.rotate */ fun Structure.rotateAroundZ(angle: Number) - = rotate { it.rotateAroundZ(angle.toDouble()) } + = rotate(angle) { it, rad -> it.rotateAroundZ(rad) } -inline fun Structure.rotate(vectorRotation: (Vector) -> Vector) +/** @param angle The angle of rotation in degrees.*/ +inline fun Structure.rotate(angle: Number, vectorRotation: (Vector, Double) -> Vector) = Structure( HashSet().apply { structureData.forEach { this += SingleStructureData( - vectorRotation.invoke(it.location.toVector()).toSimpleLoc(), + vectorRotation.invoke(it.location.toVector(), Math.toRadians(angle.toDouble())).toSimpleLoc(), it.structureData ) }