X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmodel%2Fblock%2FBlock.kt;h=fa99bfd91ed2afa2ed63221b23374ba221ad1baa;hb=3a443514027417133d7a7e18766720dfea028a87;hp=2e268d046261913cefb1737b0d37bf51703ab198;hpb=c447b95aeb883113ff1d53a3178828929c1eb92f;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/model/block/Block.kt b/core/src/ru/deadsoftware/cavedroid/game/model/block/Block.kt index 2e268d0..fa99bfd 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/model/block/Block.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/model/block/Block.kt @@ -111,11 +111,21 @@ sealed class Block { return this is Slab } + fun isContainer(): Boolean { + contract { returns(true) implies (this@Block is Container) } + return this is Container + } + fun isFurnace(): Boolean { contract { returns(true) implies (this@Block is Furnace) } return this is Furnace } + fun isChest(): Boolean { + contract { returns(true) implies (this@Block is Chest) } + return this is Chest + } + fun isNone(): Boolean { contract { returns(true) implies (this@Block is None) } return this is None @@ -130,6 +140,8 @@ sealed class Block { ) } + sealed class Container() : Block() + data class None( override val params: CommonBlockParams ) : Block() @@ -140,7 +152,7 @@ sealed class Block { data class Furnace( override val params: CommonBlockParams, - ): Block() { + ): Container() { override val sprite: Sprite get() = getSprite(false) @@ -169,6 +181,10 @@ sealed class Block { } + data class Chest( + override val params: CommonBlockParams + ): Container() + data class Slab( override val params: CommonBlockParams, val fullBlockKey: String,