X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fobjects%2FDrop.kt;h=151e48609fbc98a1c4bd95671b4530790f9abc9a;hb=387ad284ceb79b07cba3726fa7350b7e83916815;hp=accd9722c943f63a2bfe27c55154a2682bcee55b;hpb=3fdc2291218f6d3903ce923563d1e12051690c37;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 accd972..151e486 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/objects/Drop.kt @@ -3,16 +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 id: Int, + _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)