diff options
author | Dico <dico.karssiens@gmail.com> | 2018-09-25 08:40:02 +0100 |
---|---|---|
committer | Dico <dico.karssiens@gmail.com> | 2018-09-25 08:40:02 +0100 |
commit | dcd90c09add292300b163edf44c26ddf99f1199b (patch) | |
tree | 7f4dac848950910dd4535cb1a946b84f6aa5aa0a /src/main/kotlin/io/dico/parcels2/util/Vec3i.kt | |
parent | 98395542a507e40a9058d2ed6332853ec20b23fc (diff) |
Work on RegionTraverser (wasted a lotta time but we'll get there)
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/util/Vec3i.kt')
-rw-r--r-- | src/main/kotlin/io/dico/parcels2/util/Vec3i.kt | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/util/Vec3i.kt b/src/main/kotlin/io/dico/parcels2/util/Vec3i.kt index ded1e0c..36a51c1 100644 --- a/src/main/kotlin/io/dico/parcels2/util/Vec3i.kt +++ b/src/main/kotlin/io/dico/parcels2/util/Vec3i.kt @@ -2,6 +2,7 @@ package io.dico.parcels2.util import org.bukkit.World import org.bukkit.block.Block +import org.bukkit.block.BlockFace data class Vec3d( val x: Double, @@ -32,6 +33,27 @@ data class Vec3i( infix fun withY(o: Int) = Vec3i(x, o, z) infix fun withZ(o: Int) = Vec3i(x, y, o) fun add(ox: Int, oy: Int, oz: Int) = Vec3i(x + ox, y + oy, z + oz) + fun neg() = Vec3i(-x, -y, -z) + + companion object { + private operator fun invoke(face: BlockFace) = Vec3i(face.modX, face.modY, face.modZ) + val down = Vec3i(BlockFace.DOWN) + val up = Vec3i(BlockFace.UP) + val north = Vec3i(BlockFace.NORTH) + val east = Vec3i(BlockFace.EAST) + val south = Vec3i(BlockFace.SOUTH) + val west = Vec3i(BlockFace.WEST) + + fun convert(face: BlockFace) = when (face) { + BlockFace.DOWN -> down + BlockFace.UP -> up + BlockFace.NORTH -> north + BlockFace.EAST -> east + BlockFace.SOUTH -> south + BlockFace.WEST -> west + else -> Vec3i(face) + } + } } @Suppress("NOTHING_TO_INLINE") |