diff --git a/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt b/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt
index accd9722c943f63a2bfe27c55154a2682bcee55b..b6f21bb1d8e6c4509c43d82955a73768a1bb57d6 100644 (file)
import com.badlogic.gdx.math.Intersector
import com.badlogic.gdx.math.Rectangle
import com.badlogic.gdx.math.Vector2
+import ru.deadsoftware.cavedroid.game.GameItemsHolder
+import ru.deadsoftware.cavedroid.game.model.item.Item
-class Drop(
+class Drop @JvmOverloads constructor(
x: Float,
y: Float,
- val id: Int,
+ _item: Item,
+ val amount: Int = 1,
) : Rectangle(x, y, DROP_SIZE, DROP_SIZE) {
+ val itemKey = _item.params.key
val velocity = getInitialVelocity()
var pickedUp = false
+ @Transient
+ lateinit var item: Item
+ private set
+
+ init {
+ item = _item
+ }
+
+ fun initItem(gameItemsHolder: GameItemsHolder) {
+ if (this::item.isInitialized) {
+ return
+ }
+
+ item = gameItemsHolder.getItem(itemKey)
+ }
+
fun canMagnetTo(rectangle: Rectangle): Boolean {
val magnetArea = getMagnetArea()
return Intersector.overlaps(magnetArea, rectangle)
}
companion object {
- private const val MAGNET_DISTANCE = 16f
+ private const val MAGNET_DISTANCE = 8f
- const val MAGNET_VELOCITY = 128f
+ const val MAGNET_VELOCITY = 256f
const val DROP_SIZE = 8f
private fun getInitialVelocity(): Vector2 = Vector2(0f, -1f)