DEADSOFTWARE

a2dbfc55bece093129d9a8d5103606705b95d54c
[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.game.model.block.Block
6 import ru.deadsoftware.cavedroid.misc.utils.SpriteOrigin
8 data class Item(
9 val id: Int,
10 val key: String,
11 val name: String,
12 val type: String,
13 val sprite: Sprite?,
14 val defaultOrigin: SpriteOrigin,
15 val actionKey: String?,
16 ) {
18 init {
19 sprite?.flip(false, true)
20 }
22 fun requireSprite() = sprite ?: throw IllegalStateException("Sprite is null")
24 fun isBlock() = type == "block"
26 fun isTool() = type == "tool"
28 /**
29 * Returns block associated with this item. Null if this is not a block
30 */
31 fun toBlock(): Block? {
32 if (!isBlock()) {
33 return null
34 }
36 return GameItems.getBlock(GameItems.getBlockIdByItemId(id))
37 }
39 fun getItemOrBlockSprite(): Sprite {
40 return requireNotNull(sprite ?: toBlock()?.requireSprite()) { "wtf: sprite is null" }
41 }
43 fun isNone(): Boolean {
44 return id == 0;
45 }
47 @Deprecated("Was renamed to Sprite to comply with variable type.", ReplaceWith("requireSprite()"))
48 fun getTexture() = sprite
49 }