X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fobjects%2FItem.kt;h=cb0f7b7269c9526ca5649033371bbf6b485914c3;hb=e5d141fd4e7426c0e3e8fed59a2b0e153dcd8939;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..cb0f7b7 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/objects/Item.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/objects/Item.kt @@ -1,11 +1,15 @@ 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 name: String, val type: String, - val sprite: Sprite? + val sprite: Sprite?, + val defaultOrigin: SpriteOrigin, ) { init { @@ -16,7 +20,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