X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fobjects%2FItem.kt;h=1932ff8cbb8e31c0887a92dc1fbbac32e18d0056;hb=546c7c80eb7884183a3df1db7bb5627a18396dca;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..1932ff8 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/objects/Item.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/objects/Item.kt @@ -1,11 +1,16 @@ 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 id: Int, + val key: String, val name: String, val type: String, - val sprite: Sprite? + val sprite: Sprite?, + val defaultOrigin: SpriteOrigin, ) { init { @@ -16,7 +21,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