DEADSOFTWARE

Refactor window controls
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / model / item / InventoryItem.kt
index 44d3179839d2507e2f42dbcc33d0117c645d777d..f847f7d0e3dd4d1f19ed91ee37266d3355a218c0 100644 (file)
@@ -10,6 +10,8 @@ import ru.deadsoftware.cavedroid.misc.utils.drawSprite
 import ru.deadsoftware.cavedroid.misc.utils.drawString
 import ru.deadsoftware.cavedroid.misc.utils.px
 import java.io.Serializable
+import kotlin.contracts.ExperimentalContracts
+import kotlin.contracts.contract
 
 class InventoryItem @JvmOverloads constructor(
     val itemKey: String,
@@ -123,6 +125,11 @@ class InventoryItem @JvmOverloads constructor(
     }
 
     companion object {
-        fun InventoryItem?.isNoneOrNull() = this?.item == null || this.item.isNone()
+
+        @OptIn(ExperimentalContracts::class)
+        fun InventoryItem?.isNoneOrNull(): Boolean {
+            contract { returns(false) implies(this@isNoneOrNull != null) }
+            return this?.item == null || this.item.isNone()
+        }
     }
 }