DEADSOFTWARE

Update version script
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / model / item / Item.kt
diff --git a/core/src/ru/deadsoftware/cavedroid/game/model/item/Item.kt b/core/src/ru/deadsoftware/cavedroid/game/model/item/Item.kt
deleted file mode 100644 (file)
index 9b2c62d..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-package ru.deadsoftware.cavedroid.game.model.item
-
-import com.badlogic.gdx.graphics.g2d.Sprite
-import ru.deadsoftware.cavedroid.game.model.block.Block
-import ru.deadsoftware.cavedroid.game.model.block.Block as BlockModel
-import kotlin.contracts.ExperimentalContracts
-import kotlin.contracts.contract
-
-@OptIn(ExperimentalContracts::class)
-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 isNone(): Boolean {
-        contract { returns(true) implies (this@Item is None) }
-        return this is None
-    }
-    
-    fun isPlaceable(): Boolean {
-        contract { returns(true) implies (this@Item is Placeable) }
-        return this is Placeable
-    }
-
-    fun isSlab(): Boolean {
-        contract { returns(true) implies (this@Item is Slab) }
-        return this is Slab
-    }
-
-    fun isTool(): Boolean {
-        contract { returns(true) implies (this@Item is Tool) }
-        return this is Tool
-    }
-
-    fun isShears(): Boolean {
-        contract { returns(true) implies (this@Item is Shears) }
-        return this is Shears
-    }
-
-    fun isUsable(): Boolean {
-        contract { returns(true) implies (this@Item is Usable) }
-        return this is Usable
-    }
-
-    fun isFood(): Boolean {
-        contract { returns(true) implies (this@Item is Food) }
-        return this is Food
-    }
-
-    @JvmOverloads
-    fun toInventoryItem(amount: Int = 1): InventoryItem {
-        return InventoryItem(this, amount)
-    }
-
-    data class Normal(
-        override val params: CommonItemParams,
-        override val sprite: Sprite
-    ) : Item()
-
-    sealed class Tool : Item() {
-        abstract val mobDamageMultiplier: Float
-        abstract val blockDamageMultiplier: Float
-        abstract val level: Int
-    }
-
-    sealed class Placeable : Item() {
-        abstract val block: BlockModel
-        override val sprite: Sprite get() = block.sprite
-    }
-
-    data class None(
-        override val params: CommonItemParams,
-    ): Item() {
-        override val sprite: Sprite
-            get() = throw IllegalAccessException("Trying to get sprite of None")
-    }
-
-    data class Usable(
-        override val params: CommonItemParams,
-        override val sprite: Sprite,
-        val useActionKey: String
-    ) : Item()
-
-    data class Block(
-        override val params: CommonItemParams,
-        override val block: BlockModel
-    ) : Placeable()
-
-    data class Slab(
-        override val params: CommonItemParams,
-        val topPartBlock: BlockModel.Slab,
-        val bottomPartBlock: BlockModel.Slab
-    ) : Placeable() {
-        override val block get() = bottomPartBlock
-    }
-    
-    data class Sword(
-        override val params: CommonItemParams,
-        override val sprite: Sprite,
-        override val mobDamageMultiplier: Float,
-        override val blockDamageMultiplier: Float,
-        override val level: Int,
-    ) : Tool()
-
-    data class Shovel(
-        override val params: CommonItemParams,
-        override val sprite: Sprite,
-        override val mobDamageMultiplier: Float,
-        override val blockDamageMultiplier: Float,
-        override val level: Int,
-    ) : Tool()
-
-    data class Axe(
-        override val params: CommonItemParams,
-        override val sprite: Sprite,
-        override val mobDamageMultiplier: Float,
-        override val blockDamageMultiplier: Float,
-        override val level: Int,
-    ) : Tool()
-
-    data class Pickaxe(
-        override val params: CommonItemParams,
-        override val sprite: Sprite,
-        override val mobDamageMultiplier: Float,
-        override val blockDamageMultiplier: Float,
-        override val level: Int,
-    ) : Tool()
-
-    data class Shears(
-        override val params: CommonItemParams,
-        override val sprite: Sprite,
-        override val mobDamageMultiplier: Float,
-        override val blockDamageMultiplier: Float,
-        override val level: Int,
-    ) : Tool()
-
-    data class Food(
-        override val params: CommonItemParams,
-        override val sprite: Sprite,
-        val heal: Int,
-    ) : Item()
-
-}
\ No newline at end of file