DEADSOFTWARE

cb0f7b7269c9526ca5649033371bbf6b485914c3
[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 name: String,
10 val type: String,
11 val sprite: Sprite?,
12 val defaultOrigin: SpriteOrigin,
13 ) {
15 init {
16 sprite?.flip(false, true)
17 }
19 fun requireSprite() = sprite ?: throw IllegalStateException("Sprite is null")
21 fun isBlock() = type == "block"
23 fun isTool() = type == "tool"
25 /**
26 * Returns block associated with this item. Null if this is not a block
27 */
28 fun toBlock(): Block? {
29 if (!isBlock()) {
30 return null
31 }
33 return GameItems.getBlock(GameItems.getBlockIdByItemId(id))
34 }
36 fun getItemOrBlockSprite(): Sprite {
37 return requireNotNull(sprite ?: toBlock()?.requireSprite()) { "wtf: sprite is null" }
38 }
40 fun isNone(): Boolean {
41 return id == 0;
42 }
44 @Deprecated("Was renamed to Sprite to comply with variable type.", ReplaceWith("requireSprite()"))
45 fun getTexture() = sprite
46 }