DEADSOFTWARE

New blocks structure
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / objects / Item.kt
index 9eea9767e3967ed2e9783e65d20c84207bcecd24..a2dbfc55bece093129d9a8d5103606705b95d54c 100644 (file)
@@ -2,14 +2,17 @@ package ru.deadsoftware.cavedroid.game.objects
 
 import com.badlogic.gdx.graphics.g2d.Sprite
 import ru.deadsoftware.cavedroid.game.GameItems
+import ru.deadsoftware.cavedroid.game.model.block.Block
 import ru.deadsoftware.cavedroid.misc.utils.SpriteOrigin
 
 data class Item(
-        val id: Int,
-        val name: String,
-        val type: String,
-        val sprite: Sprite?,
-        val defaultOrigin: SpriteOrigin,
+    val id: Int,
+    val key: String,
+    val name: String,
+    val type: String,
+    val sprite: Sprite?,
+    val defaultOrigin: SpriteOrigin,
+    val actionKey: String?,
 ) {
 
     init {
@@ -33,6 +36,14 @@ data class Item(
         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