diff --git a/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt b/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt
index b9a141c33cdb0fce3734ed5a507811699f75acfa..151e48609fbc98a1c4bd95671b4530790f9abc9a 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(
x: Float,
y: Float,
- val item: Item,
+ _item: Item,
) : 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)