X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fobjects%2FDrop.kt;h=151e48609fbc98a1c4bd95671b4530790f9abc9a;hb=a21a93fd9fa33adebe52d1f4478866dcc3b66d96;hp=b9a141c33cdb0fce3734ed5a507811699f75acfa;hpb=121928e90bdfa3a9d9c8bd708b9f8da28d3807c0;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt b/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt index b9a141c..151e486 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt @@ -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)