DEADSOFTWARE

b9a141c33cdb0fce3734ed5a507811699f75acfa
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / objects / Drop.kt
1 package ru.deadsoftware.cavedroid.game.objects
3 import com.badlogic.gdx.math.Intersector
4 import com.badlogic.gdx.math.Rectangle
5 import com.badlogic.gdx.math.Vector2
6 import ru.deadsoftware.cavedroid.game.model.item.Item
8 class Drop(
9 x: Float,
10 y: Float,
11 val item: Item,
12 ) : Rectangle(x, y, DROP_SIZE, DROP_SIZE) {
14 val velocity = getInitialVelocity()
15 var pickedUp = false
17 fun canMagnetTo(rectangle: Rectangle): Boolean {
18 val magnetArea = getMagnetArea()
19 return Intersector.overlaps(magnetArea, rectangle)
20 }
22 private fun getMagnetArea(): Rectangle {
23 return Rectangle(
24 /* x = */ x - MAGNET_DISTANCE,
25 /* y = */ y - MAGNET_DISTANCE,
26 /* width = */ width + MAGNET_DISTANCE * 2,
27 /* height = */ height + MAGNET_DISTANCE * 2,
28 )
29 }
31 companion object {
32 private const val MAGNET_DISTANCE = 16f
34 const val MAGNET_VELOCITY = 128f
35 const val DROP_SIZE = 8f
37 private fun getInitialVelocity(): Vector2 = Vector2(0f, -1f)
38 }
39 }