DEADSOFTWARE

a4c41b0424d62342a42ff00838f2bada8e594623
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / objects / Item.kt
1 package ru.deadsoftware.cavedroid.game.objects
3 import com.badlogic.gdx.graphics.g2d.Sprite
4 import ru.deadsoftware.cavedroid.game.GameItems
5 import ru.deadsoftware.cavedroid.misc.utils.SpriteOrigin
7 data class Item(
8 val id: Int,
9 val key: String,
10 val name: String,
11 val type: String,
12 val sprite: Sprite?,
13 val defaultOrigin: SpriteOrigin,
14 val actionKey: String?,
15 ) {
17 init {
18 sprite?.flip(false, true)
19 }
21 fun requireSprite() = sprite ?: throw IllegalStateException("Sprite is null")
23 fun isBlock() = type == "block"
25 fun isTool() = type == "tool"
27 /**
28 * Returns block associated with this item. Null if this is not a block
29 */
30 fun toBlock(): Block? {
31 if (!isBlock()) {
32 return null
33 }
35 return GameItems.getBlock(GameItems.getBlockIdByItemId(id))
36 }
38 fun getItemOrBlockSprite(): Sprite {
39 return requireNotNull(sprite ?: toBlock()?.requireSprite()) { "wtf: sprite is null" }
40 }
42 fun isNone(): Boolean {
43 return id == 0;
44 }
46 @Deprecated("Was renamed to Sprite to comply with variable type.", ReplaceWith("requireSprite()"))
47 fun getTexture() = sprite
48 }