diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/BossFragment.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/BossFragment.kt index cb4b3a7..573c7e9 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/BossFragment.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/BossFragment.kt @@ -115,8 +115,8 @@ class BossFragment() : Fragment() { val lootName = toastView.findViewById(R.id.nameLoot) val xpReward = toastView.findViewById(R.id.xpRewarded) toastView.visibility = View.VISIBLE - lootImage.setImageResource(item.image) - lootName.text = item.name + lootImage.setImageResource(item.type.image) + lootName.text = item.type.name xpReward.text = boss.xpReward.toString() toastView.postDelayed({ toastView.visibility = View.GONE diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CollectFragment.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CollectFragment.kt index b9862e3..bbb8ab6 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CollectFragment.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CollectFragment.kt @@ -76,9 +76,9 @@ class CollectFragment() : Fragment() { val name = maVue.findViewById(R.id.nameLoot) val xp = maVue.findViewById(R.id.xpRewarded) maVue.visibility = View.VISIBLE - image.setImageResource(item.image) - name.text = item.name - xp.text = item.xpReward.toString() + image.setImageResource(item.type.image) + name.text = item.type.name + xp.text = item.type.xpReward.toString() maVue.postDelayed({ maVue.visibility = View.GONE @@ -102,7 +102,7 @@ class CollectFragment() : Fragment() { // Generate a resource item and XP reward val item = Generator.generateLootCollection() currentPlayer.addItem(item) - currentPlayer.gainXp(item.xpReward) + currentPlayer.gainXp(item.type.xpReward) //reset to 0 the progress bar progressBar.progress = 0 diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt index 4766f63..7d92d27 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt @@ -72,8 +72,8 @@ class CraftFragment : Fragment() { } image = view.findViewById(R.id.item_image) name = view.findViewById(R.id.item_name) - image.setImageResource(recipe.item.image) - name.text = recipe.item.name + image.setImageResource(recipe.item.type.image) + name.text = recipe.item.type.name buttonForge.isEnabled = RecipeManager.isCraftable(recipe,currentPlayer) numberCraftable.text = RecipeManager.HowManyCraftable(recipe,currentPlayer).toString() diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt index 892bb1e..ad25632 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt @@ -1,6 +1,6 @@ package com.example.shakecraft.data -import com.example.shakecraft.R +import com.example.shakecraft.model.itemManager.Companion.ITEMS import com.example.shakecraft.model.Item import com.example.shakecraft.model.Player @@ -8,9 +8,9 @@ import com.example.shakecraft.model.Player class Stub { fun load() : Player{ - var currentPlayer : Player = Player("Winker",0) - val items : MutableList = mutableListOf() - items.add(Item(name = "Beech Log", rarity = 1, stack = 30, R.drawable.log2, xpReward = 10 )) + val currentPlayer = Player("Winker",0) + val items : MutableList = mutableListOf() + items.add(Item(type = ITEMS.BEECH_LOG.itemtype, stack = 30)) currentPlayer.items = items return currentPlayer diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Generator.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Generator.kt index 12728b0..68ac624 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Generator.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Generator.kt @@ -1,6 +1,6 @@ package com.example.shakecraft.model - import com.example.shakecraft.R +import com.example.shakecraft.model.itemManager.Companion.ITEMS import kotlin.random.Random class Generator { @@ -8,10 +8,10 @@ class Generator { companion object { fun generateLootCollection(): Item { val possibleLoot: List> = listOf( - Pair(Item(name = "Beech Log", rarity = 1, stack = 1, R.drawable.log2, 10), 0.6), - Pair(Item(name = "Bronze Ore", rarity = 2, stack = 1, R.drawable.bronze_ore, 20), 0.25), - Pair(Item(name = "Iron Ore", rarity = 2, stack = 1, R.drawable.iron_ore, 25), 0.10), - Pair(Item(name = "Diamond", rarity = 3, stack = 1, R.drawable.diamond, 30), 0.05), + Pair(Item(type = ITEMS.BEECH_LOG.itemtype), 0.6), + Pair(Item(type = ITEMS.BRONZE_ORE.itemtype), 0.25), + Pair(Item(type = ITEMS.IRON_ORE.itemtype), 0.10), + Pair(Item(type = ITEMS.DIAMOND.itemtype), 0.05), ) val rand = Random.nextDouble() @@ -44,28 +44,28 @@ class Generator { fun generateBoss(): Boss { val possibleBoss: List> = listOf( Pair(Boss(name = "Margit the Fell Omen", life = 150, maxlife = 150, image = R.drawable.boss, xpReward = 100, possibleLoot = listOf( - Pair(Item(name = "Monster Bones", rarity = 1, stack = 1, R.drawable.monster_bones, 10), 0.7), - Pair(Item(name = "Monster Eye", rarity = 2, stack = 1, R.drawable.monster_eyes, 20), 0.3), + Pair(Item(type = ITEMS.MONSTER_BONES.itemtype), 0.7), + Pair(Item(type = ITEMS.MONSTER_EYE.itemtype), 0.3), )), 0.5), Pair(Boss(name = "Godrick the Grafted", life = 200, maxlife = 200, image = R.drawable.skeleton, xpReward = 130, possibleLoot = listOf( - Pair(Item(name = "Monster Bones", rarity = 1, stack = 1, R.drawable.monster_bones, 10), 0.6), - Pair(Item(name = "Monster Eye", rarity = 2, stack = 1, R.drawable.monster_eyes, 20), 0.3), - Pair(Item(name = "Treasure Key", rarity = 2, stack = 1, R.drawable.treasure_key, 20), 0.1), + Pair(Item(type = ITEMS.MONSTER_BONES.itemtype), 0.6), + Pair(Item(type = ITEMS.MONSTER_EYE.itemtype), 0.3), + Pair(Item(type = ITEMS.TREASURE_KEY.itemtype), 0.1), )), 0.2), Pair(Boss(name = "Red Wolf of Radagon", life = 250, maxlife = 250, image = R.drawable.halberdier, xpReward = 210, possibleLoot = listOf( - Pair(Item(name = "Monster Bones", rarity = 1, stack = 1, R.drawable.monster_bones, 10), 0.6), - Pair(Item(name = "Monster Eye", rarity = 2, stack = 1, R.drawable.monster_eyes, 20), 0.3), - Pair(Item(name = "Treasure Key", rarity = 2, stack = 1, R.drawable.treasure_key, 20), 0.1), + Pair(Item(type = ITEMS.MONSTER_BONES.itemtype), 0.6), + Pair(Item(type = ITEMS.MONSTER_EYE.itemtype), 0.3), + Pair(Item(type = ITEMS.TREASURE_KEY.itemtype), 0.1), )), 0.15), Pair(Boss(name = "Old Banshee", life = 300, maxlife = 300, image = R.drawable.banshee, xpReward = 300, possibleLoot = listOf( - Pair(Item(name = "Monster Bones", rarity = 1, stack = 1, R.drawable.monster_bones, 10), 0.4), - Pair(Item(name = "Monster Eye", rarity = 2, stack = 1, R.drawable.monster_eyes, 20), 0.4), - Pair(Item(name = "Treasure Key", rarity = 2, stack = 1, R.drawable.treasure_key, 20), 0.2), + Pair(Item(type = ITEMS.MONSTER_BONES.itemtype), 0.4), + Pair(Item(type = ITEMS.MONSTER_EYE.itemtype), 0.4), + Pair(Item(type = ITEMS.TREASURE_KEY.itemtype), 0.2), )), 0.10), Pair(Boss(name = "Margit the Fell Omen", life = 500, maxlife = 500, image = R.drawable.lich, xpReward = 500, possibleLoot = listOf( - Pair(Item(name = "Monster Bones", rarity = 1, stack = 1, R.drawable.monster_bones, 10), 0.4), - Pair(Item(name = "Monster Eye", rarity = 2, stack = 1, R.drawable.monster_eyes, 20), 0.3), - Pair(Item(name = "Treasure Key", rarity = 2, stack = 1, R.drawable.treasure_key, 20), 0.3), + Pair(Item(type = ITEMS.MONSTER_BONES.itemtype), 0.4), + Pair(Item(type = ITEMS.MONSTER_EYE.itemtype), 0.3), + Pair(Item(type = ITEMS.TREASURE_KEY.itemtype), 0.3), )), 0.05), ) val rand = Random.nextDouble() diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Item.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Item.kt index 0cdc1f9..0ffe286 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Item.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Item.kt @@ -5,11 +5,8 @@ import android.os.Parcelable class Item( - var name: String, - var rarity: Int = 1, + val type: ItemType, var stack: Int = 1, - var image: Int, - var xpReward: Int = 0, ) : Parcelable { @@ -18,20 +15,20 @@ class Item( } override fun writeToParcel(parcel: Parcel, flags: Int) { - parcel.writeString(name) - parcel.writeInt(rarity) + parcel.writeString(type.name) + parcel.writeInt(type.rarity) + parcel.writeInt(type.image) + parcel.writeInt(type.xpReward) parcel.writeInt(stack) - parcel.writeInt(image) - parcel.writeInt(xpReward) } companion object CREATOR : Parcelable.Creator { override fun createFromParcel(parcel: Parcel): Item { + return Item( - parcel.readString()!!, - parcel.readInt(), - parcel.readInt(), - parcel.readInt(), + ItemType(parcel.readString()!!,parcel.readInt(), + parcel.readInt(), + parcel.readInt(),), parcel.readInt() ) } diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/ItemType.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/ItemType.kt new file mode 100644 index 0000000..80f56bb --- /dev/null +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/ItemType.kt @@ -0,0 +1,6 @@ +package com.example.shakecraft.model + +class ItemType (val name : String,val image : Int,val rarity : Int, val xpReward : Int){ + + +} \ No newline at end of file diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt index baf4f2a..a3dac57 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt @@ -43,13 +43,13 @@ class Player(val pseudo: String, var xp: Int = 0) { } } fun addItem(item: Item) { - val findItem = items.find { it.name == item.name } + val findItem = items.find { it.type.name == item.type.name } if(findItem!= null){ println("findItem n: "+findItem.stack+" item nb:"+item.stack) findItem.stack += item.stack } - else{items.add( Item(item.name, item.rarity, item.stack, item.image, item.xpReward))} + else{items.add(Item(type = item.type, stack = item.stack))} } fun gainXp(xp: Int) { @@ -61,13 +61,10 @@ class Player(val pseudo: String, var xp: Int = 0) { } } - fun removeItem(item: Item) { - items.remove(item) - } fun hasItem(item: Item) : Boolean{ for (playeritem in items){ - if(playeritem.name == item.name && playeritem.stack >= item.stack){ + if(playeritem.type.name == item.type.name && playeritem.stack >= item.stack){ return true } } @@ -77,7 +74,7 @@ class Player(val pseudo: String, var xp: Int = 0) { fun craft(recipe: Recipe) : Boolean{ println("test") for (ingredient in recipe.ingredients) { - val searchedItem = items.find { it.name == ingredient.name } + val searchedItem = items.find { it.type.name == ingredient.type.name } if(searchedItem != null) { searchedItem.stack -= ingredient.stack if (searchedItem.stack == 0){ diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/RecipeManager.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/RecipeManager.kt index d04c343..ba8b173 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/RecipeManager.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/RecipeManager.kt @@ -1,6 +1,5 @@ package com.example.shakecraft.model - -import com.example.shakecraft.R +import com.example.shakecraft.model.itemManager.Companion.ITEMS class RecipeManager { @@ -10,51 +9,51 @@ class RecipeManager { val recipeListObjects : List = listOf( Recipe( - Item("Wooden Stick", image = R.drawable.wooden_stick, stack = 1),listOf( - Item("Wooden Plank", image = R.drawable.wooden_plank, stack = 2) + Item(type = ITEMS.WOODEN_STICK.itemtype, stack = 1),listOf( + Item(type = ITEMS.WOODEN_PLANK.itemtype, stack = 2) ), "Objects"), Recipe( - Item("Wooden Plank", image = R.drawable.wooden_plank, stack = 3),listOf( - Item("Beech Log", image = R.drawable.log2, stack = 1) + Item(type = ITEMS.WOODEN_PLANK.itemtype, stack = 3),listOf( + Item(type = ITEMS.BEECH_LOG.itemtype, stack = 1) ), "Objects"), Recipe( - Item("Wooden Ball", image = R.drawable.wooden_ball, stack = 1),listOf( - Item("Wooden Stick", image = R.drawable.wooden_stick, stack = 2), - Item("Wooden Plank", image = R.drawable.wooden_plank, stack = 2) + Item(type = ITEMS.WOODEN_BALL.itemtype, stack = 1),listOf( + Item(type = ITEMS.WOODEN_STICK.itemtype, stack = 2), + Item(type = ITEMS.WOODEN_PLANK.itemtype, stack = 2) ), "Objects"), ) val recipeListTools : List = listOf( Recipe( - Item("Bronze Sword", image = R.drawable.bronze_sword, stack = 1),listOf( - Item("Wooden Stick", image = R.drawable.wooden_stick, stack = 5), - Item("Bronze Ingot", image = R.drawable.bronze_ore, stack = 10) + Item(type = ITEMS.BRONZE_SWORD.itemtype, stack = 1),listOf( + Item(type = ITEMS.WOODEN_STICK.itemtype, stack = 5), + Item(type = ITEMS.BRONZE_INGOT.itemtype, stack = 10) ), "Tools"), Recipe( - Item("Wizard Staff", image = R.drawable.wizard_staff, stack = 1),listOf( - Item("Wooden Stick", image = R.drawable.wooden_stick, stack = 10), - Item("Monster Eye", image = R.drawable.monster_eyes, stack = 20), + Item(type = ITEMS.WIZARD_STAFF.itemtype, stack = 1),listOf( + Item(type = ITEMS.WOODEN_STICK.itemtype, stack = 10), + Item(type = ITEMS.MONSTER_EYE.itemtype, stack = 20), ), "Tools"), Recipe( - Item("Diamond Axe", image = R.drawable.diamond_axe, stack = 1),listOf( - Item("Wooden Stick", image = R.drawable.wooden_stick, stack = 5), - Item("Diamond", image = R.drawable.diamond, stack = 10), + Item(type = ITEMS.DIAMOND_AXE.itemtype, stack = 1),listOf( + Item(type = ITEMS.WOODEN_STICK.itemtype, stack = 5), + Item(type = ITEMS.DIAMOND.itemtype, stack = 10), ), "Tools"), ) val recipeListBlacksmithing : List = listOf( Recipe( - Item("Bronze Ingot", image = R.drawable.bronze_ingot, stack = 1),listOf( - Item("Bronze Ore", image = R.drawable.bronze_ore, stack = 5) + Item(type = ITEMS.BRONZE_INGOT.itemtype, stack = 1),listOf( + Item(type = ITEMS.BRONZE_ORE.itemtype, stack = 5) ), "Blacksmithing"), Recipe( - Item("Iron Ingot", image = R.drawable.iron_ingot, stack = 1),listOf( - Item("Iron Ore", image = R.drawable.iron_ore, stack = 5) + Item(type = ITEMS.IRON_INGOT.itemtype, stack = 1),listOf( + Item(type = ITEMS.IRON_ORE.itemtype, stack = 5) ), "Blacksmithing"), @@ -75,13 +74,13 @@ class RecipeManager { } fun HowManyCraftable(recipe: Recipe, player: Player): Int{ - var divisedList = mutableListOf() + val divisedList = mutableListOf() if(isCraftable(recipe,player)==false) return 0 else{ for(element in recipe.ingredients){ println("cc") - val itemSearch = player.items.find { it.name == element.name } + val itemSearch = player.items.find { it.type.name == element.type.name } if(itemSearch!= null) divisedList.add(itemSearch.stack / element.stack) } diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/itemManager.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/itemManager.kt new file mode 100644 index 0000000..3c8a17e --- /dev/null +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/itemManager.kt @@ -0,0 +1,34 @@ +package com.example.shakecraft.model +import com.example.shakecraft.R + +class itemManager { + companion object { + enum class ITEMS(val itemtype: ItemType){ + + // Craftable items and resources + BEECH_LOG(ItemType(name = "Beech Log", image = R.drawable.log2, rarity = 1, xpReward = 10)), + WOODEN_STICK(ItemType(name = "Wooden Stick", image = R.drawable.wooden_stick, rarity = 1, xpReward = 0)), + WOODEN_PLANK(ItemType(name = "Wooden Plank", image = R.drawable.wooden_plank, rarity = 1, xpReward = 0)), + WOODEN_BALL(ItemType(name = "Wooden Ball", image = R.drawable.wooden_ball, rarity = 1, xpReward = 0)), + WIZARD_STAFF(ItemType(name = "Wizard Staff", image = R.drawable.wizard_staff, rarity = 3, xpReward = 0)), + + DIAMOND(ItemType(name = "Diamond", image = R.drawable.diamond, rarity = 3, xpReward = 30)), + DIAMOND_AXE(ItemType(name = "Diamond Axe", image = R.drawable.diamond_axe, rarity = 3, xpReward = 0)), + + BRONZE_ORE(ItemType(name = "Bronze Ore", image = R.drawable.bronze_ore, rarity = 2, xpReward = 20)), + BRONZE_INGOT(ItemType(name = "Bronze Ingot", image = R.drawable.bronze_ingot, rarity = 1, xpReward = 0)), + BRONZE_SWORD(ItemType(name = "Bronze Sword", image = R.drawable.bronze_sword, rarity = 2, xpReward = 0)), + + IRON_ORE(ItemType(name = "Iron Ore", image = R.drawable.iron_ore, rarity = 2, xpReward = 25)), + IRON_INGOT(ItemType(name = "Iron Ingot", image = R.drawable.iron_ingot, rarity = 1, xpReward = 0)), + + + // Lootable items + MONSTER_BONES(ItemType(name = "Monster Bones", image = R.drawable.monster_bones, rarity = 1, xpReward = 10)), + MONSTER_EYE(ItemType(name = "Monster Eye", image = R.drawable.monster_eyes, rarity = 2, xpReward = 20)), + TREASURE_KEY(ItemType(name = "Treasure Key", image = R.drawable.treasure_key, rarity = 2, xpReward = 20)), + + + } + } +} \ No newline at end of file diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterBossLoot.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterBossLoot.kt index bfb0da3..7a58326 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterBossLoot.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterBossLoot.kt @@ -27,9 +27,9 @@ class AdapterBossLoot(private val possibleLoot: List>) : Recy imageView = view.findViewById(R.id.item_image) } fun bind(item: Pair) { - textView.text = item.first.name - textViewDropRate.text = (item.second*100).toString() + "%" - imageView.setImageResource(item.first.image) + textView.text = item.first.type.name + textViewDropRate.text = (item.second*100).toString() + imageView.setImageResource(item.first.type.image) } } diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterInventory.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterInventory.kt index 8779ea8..3795d5e 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterInventory.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterInventory.kt @@ -27,9 +27,9 @@ class AdapterInventory(private val inventory: List) : RecyclerView.Adapter imageView = view.findViewById(R.id.item_image) } fun bind(item: Item) { - textView.text = item.name + textView.text = item.type.name textViewNumber.text = item.stack.toString() - imageView.setImageResource(item.image) + imageView.setImageResource(item.type.image) } } diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterMaterials.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterMaterials.kt index b7ab509..b2a9a81 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterMaterials.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterMaterials.kt @@ -31,12 +31,12 @@ class AdapterMaterials(private val materials: List, val currentplayer: Pla imageView = view.findViewById(R.id.item_image) } fun bind(item: Item, currentplayer: Player) { - textView.text = item.name - val itemSearch = currentplayer.items.find { it.name == item.name } + textView.text = item.type.name + val itemSearch = currentplayer.items.find { it.type.name == item.type.name } textViewNumberNeeded.text = item.stack.toString() textViewNumberPlayer.text = if (itemSearch != null) itemSearch.stack.toString() else "0" - imageView.setImageResource(item.image) + imageView.setImageResource(item.type.image) } } diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterRecipe.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterRecipe.kt index 07e2d3b..8087cc6 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterRecipe.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterRecipe.kt @@ -37,8 +37,8 @@ class AdapterRecipe( } } fun bind(recipe: Recipe) { - textView.text = recipe.item.name - imageView.setImageResource(recipe.item.image) + textView.text = recipe.item.type.name + imageView.setImageResource(recipe.item.type.image) } }