DEADSOFTWARE

Fix launch on desktop
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / model / block / Block.kt
index 2411a6352d963823bb921f1a8a741172150fddfb..9669a5378c5f84dbafd7be4a58bc801522f2a3d7 100644 (file)
@@ -16,8 +16,8 @@ sealed class Block {
     val width: Float get() = 16f - params.collisionMargins.left - params.collisionMargins.right
     val height: Float get() = 16f - params.collisionMargins.top - params.collisionMargins.bottom
 
-    private val spriteWidth: Float get() = 16f - params.spriteMargins.left - params.spriteMargins.right
-    private val spriteHeight: Float get() = 16f - params.spriteMargins.top - params.spriteMargins.bottom
+    val spriteWidth: Float get() = 16f - params.spriteMargins.left - params.spriteMargins.right
+    val spriteHeight: Float get() = 16f - params.spriteMargins.top - params.spriteMargins.bottom
 
     private var animation: Array<Sprite>? = null
 
@@ -104,6 +104,11 @@ sealed class Block {
         return this is Slab
     }
 
+    fun isNone(): Boolean {
+        contract { returns(true) implies (this@Block is None) }
+        return this is None
+    }
+
     fun getRectangle(x: Int, y: Int): Rectangle {
         return Rectangle(
             /* x = */ x * 16f + params.collisionMargins.left,
@@ -113,7 +118,9 @@ sealed class Block {
         )
     }
 
-
+    data class None(
+        override val params: CommonBlockParams
+    ) : Block()
 
     data class Normal(
         override val params: CommonBlockParams,
@@ -122,6 +129,7 @@ sealed class Block {
     data class Slab(
         override val params: CommonBlockParams,
         val fullBlockKey: String,
+        val otherPartBlockKey: String,
     ): Block()
 
     sealed class Fluid: Block() {
@@ -158,7 +166,6 @@ sealed class Block {
     @Deprecated(LEGACY_ACCESSOR_DEPRECATION) fun isTransparent() = params.isTransparent
     @Deprecated(LEGACY_ACCESSOR_DEPRECATION) fun getTexture() = sprite
 
-
     companion object {
         private const val LEGACY_ACCESSOR_DEPRECATION = "legacy accessors will be removed"
         private const val ANIMATION_FRAME_DURATION_MS = 100L