DEADSOFTWARE

Refactor input handrling
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / GameItemsHolder.kt
index 075af6f4f39cf707ad9bd48f78c6f21f8fc66b06..1fbcd3dbfe8313c8beaccd390b10b89041c01518 100644 (file)
@@ -49,7 +49,18 @@ class GameItemsHolder @Inject constructor(
         }
 
         dtoMap.forEach { (key, dto) ->
-            itemsMap[key] = itemMapper.map(key, dto, blocksMap[key])
+            try {
+                itemsMap[key] = itemMapper.map(
+                    key = key,
+                    dto = dto,
+                    block = blocksMap[key],
+                    slabTopBlock = blocksMap[dto.topSlabBlock] as? Block.Slab,
+                    slabBottomBlock = blocksMap[dto.bottomSlabBlock] as? Block.Slab
+                )
+            } catch (e: Exception) {
+                Gdx.app.error(TAG, "Failed to map item $key. Reason: ${e.message}")
+                e.printStackTrace()
+            }
         }
 
         fallbackItem = itemsMap[FALLBACK_ITEM_KEY]
@@ -107,7 +118,7 @@ class GameItemsHolder @Inject constructor(
         }
     }
 
-    fun getCreativeScrollAmount(): Int = itemsMap.size / 8
+    fun getMaxCreativeScrollAmount(): Int = itemsMap.size / 8
 
     fun <T : Block> getBlocksByType(type: Class<T>): List<T> {
         return blocksMap.values.filterIsInstance(type)