Files
apollo/game/plugin/areas/src/Area.kt
T
2018-09-04 04:43:34 +01:00

26 lines
727 B
Kotlin

package org.apollo.game.plugins.area
import org.apollo.game.model.Position
import org.apollo.game.plugin.api.Position.component1
import org.apollo.game.plugin.api.Position.component2
import org.apollo.game.plugin.api.Position.component3
/**
* An area in the game world.
*/
interface Area {
/**
* Returns whether or not the specified [Position] is inside this [Area].
*/
operator fun contains(position: Position): Boolean
}
internal class RectangularArea(private val x: IntRange, private val y: IntRange, private val height: Int) : Area {
override operator fun contains(position: Position): Boolean {
val (x, y, z) = position
return x in this.x && y in this.y && z == height
}
}