X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fobjects%2FItem.kt;h=a4c41b0424d62342a42ff00838f2bada8e594623;hb=076b501cc25dc05c9fd26e3f71d850c7277120cb;hp=59d231d5b6205e3c1ad7a35280121ea4848f819b;hpb=7bf180238135ffc4924d511b7d196d0b5538e96f;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/objects/Item.kt b/core/src/ru/deadsoftware/cavedroid/game/objects/Item.kt index 59d231d..a4c41b0 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/objects/Item.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/objects/Item.kt @@ -1,11 +1,17 @@ package ru.deadsoftware.cavedroid.game.objects import com.badlogic.gdx.graphics.g2d.Sprite +import ru.deadsoftware.cavedroid.game.GameItems +import ru.deadsoftware.cavedroid.misc.utils.SpriteOrigin data class Item( - val name: String, - val type: String, - val sprite: Sprite? + val id: Int, + val key: String, + val name: String, + val type: String, + val sprite: Sprite?, + val defaultOrigin: SpriteOrigin, + val actionKey: String?, ) { init { @@ -16,7 +22,27 @@ data class Item( fun isBlock() = type == "block" + fun isTool() = type == "tool" + + /** + * Returns block associated with this item. Null if this is not a block + */ + fun toBlock(): Block? { + if (!isBlock()) { + return null + } + + return GameItems.getBlock(GameItems.getBlockIdByItemId(id)) + } + + fun getItemOrBlockSprite(): Sprite { + return requireNotNull(sprite ?: toBlock()?.requireSprite()) { "wtf: sprite is null" } + } + + fun isNone(): Boolean { + return id == 0; + } + @Deprecated("Was renamed to Sprite to comply with variable type.", ReplaceWith("requireSprite()")) fun getTexture() = sprite - } \ No newline at end of file