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)