DEADSOFTWARE

Fix saves
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / model / item / Item.kt
index 42dae7ea68eee2c0b47098c3805ae68416d28dae..fe2bc46bad46030cd43eb0a74f284fa4bd8f4629 100644 (file)
@@ -11,6 +11,14 @@ sealed class Item {
     abstract val params: CommonItemParams
     abstract val sprite: Sprite
 
+    override fun hashCode(): Int {
+        return params.key.hashCode()
+    }
+
+    override fun equals(other: Any?): Boolean {
+        return params.key == (other as Item).params.key
+    }
+
     fun isPlaceable(): Boolean {
         contract { returns(true) implies (this@Item is Placeable) }
         return this is Placeable
@@ -25,6 +33,11 @@ sealed class Item {
         contract { returns(true) implies (this@Item is Placeable) }
         return this is Placeable
     }
+
+    @JvmOverloads
+    fun toInventoryItem(amount: Int = 1): InventoryItem {
+        return InventoryItem(this, amount)
+    }
     
     sealed class Tool : Item() {
         abstract val mobDamageMultiplier: Float