diff --git a/src/main/kotlin/net/axay/kspigot/structures/StructureBuilder.kt b/src/main/kotlin/net/axay/kspigot/structures/StructureBuilder.kt index ec6b7a4e..821239ae 100644 --- a/src/main/kotlin/net/axay/kspigot/structures/StructureBuilder.kt +++ b/src/main/kotlin/net/axay/kspigot/structures/StructureBuilder.kt @@ -1,8 +1,32 @@ package net.axay.kspigot.structures import net.axay.kspigot.extensions.geometry.plus +import net.axay.kspigot.extensions.geometry.toSimpleLoc +import net.axay.kspigot.extensions.geometry.toVector import org.bukkit.Location +import org.bukkit.util.Vector fun Structure.buildAt(loc: Location) { structureData.forEach { it.structureData.createAt(loc + it.location) } -} \ No newline at end of file +} + +fun Structure.rotateAroundX(angle: Number) + = rotate { it.rotateAroundX(angle.toDouble()) } + +fun Structure.rotateAroundY(angle: Number) + = rotate { it.rotateAroundY(angle.toDouble()) } + +fun Structure.rotateAroundZ(angle: Number) + = rotate { it.rotateAroundZ(angle.toDouble()) } + +inline fun Structure.rotate(vectorRotation: (Vector) -> Vector) + = Structure( + HashSet().apply { + structureData.forEach { + this += SingleStructureData( + vectorRotation.invoke(it.location.toVector()).toSimpleLoc(), + it.structureData + ) + } + } + ) \ No newline at end of file