DEADSOFTWARE

Store block references intead of ids
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / model / block / Block.kt
index 45363440e290fad732955cddb78424b7c2e6c01f..798e3d9b8bfe3e5506de866b4c6e06215cbfaaf5 100644 (file)
@@ -26,7 +26,7 @@ sealed class Block {
         }
 
     val sprite: Sprite
-        get() = requireNotNull(_sprite)
+        get() = requireNotNull(_sprite) { "null sprite for block '${params.key}'" }
 
     private val currentAnimationFrame: Int
         get() {
@@ -115,14 +115,18 @@ sealed class Block {
         val fullBlockKey: String,
     ): Block()
 
-    sealed class Fluid: Block()
+    sealed class Fluid: Block() {
+        abstract val state: Int
+    }
     
     data class Water(
         override val params: CommonBlockParams,
+        override val state: Int,
     ) : Fluid()
 
     data class Lava(
         override val params: CommonBlockParams,
+        override val state: Int,
     ) : Fluid()
 
     /* Legacy accessors below */