DEADSOFTWARE

Fix saves
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / objects / Drop.kt
index b9a141c33cdb0fce3734ed5a507811699f75acfa..151e48609fbc98a1c4bd95671b4530790f9abc9a 100644 (file)
@@ -3,17 +3,35 @@ package ru.deadsoftware.cavedroid.game.objects
 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)