diff --git a/.idea/.idea.ReisenTasker/.idea/indexLayout.xml b/.idea/.idea.ReisenTasker/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.ReisenTasker/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/Prefabs/CraftItemTest.asset b/Assets/Prefabs/CraftItemTest.asset
new file mode 100644
index 0000000..c942df8
--- /dev/null
+++ b/Assets/Prefabs/CraftItemTest.asset
@@ -0,0 +1,22 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a100b9e8279440fd88e58bae66ffb885, type: 3}
+ m_Name: CraftItemTest
+ m_EditorClassIdentifier: Assembly-CSharp::Item
+ itemName: Brick
+ description:
+ icon: {fileID: 0}
+ requiredMaterials:
+ - item: {fileID: 11400000, guid: eaef781da6195e1a491978951b17d3b8, type: 2}
+ amount: 1
+ craftedAmount: 1
+ value: 0
diff --git a/Assets/Prefabs/CraftItemTest.asset.meta b/Assets/Prefabs/CraftItemTest.asset.meta
new file mode 100644
index 0000000..62727c1
--- /dev/null
+++ b/Assets/Prefabs/CraftItemTest.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b5a9cd50157e32c4a92e98bd9a922076
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/TestItem.asset b/Assets/Prefabs/TestItem.asset
index 809d4a6..22a71e6 100644
--- a/Assets/Prefabs/TestItem.asset
+++ b/Assets/Prefabs/TestItem.asset
@@ -15,3 +15,6 @@ MonoBehaviour:
itemName: Water
description: h2o
icon: {fileID: 0}
+ requiredMaterials: []
+ craftedAmount: 1
+ value: 0
diff --git a/Assets/Scripts/Inventory/CraftableUIObject.cs b/Assets/Scripts/Inventory/CraftableUIObject.cs
new file mode 100644
index 0000000..37aaec1
--- /dev/null
+++ b/Assets/Scripts/Inventory/CraftableUIObject.cs
@@ -0,0 +1,26 @@
+using TMPro;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class CraftableUIObject : MonoBehaviour
+{
+ public CraftingRequirementUIObject templateRequirementUI;
+ public Transform requirementGrid;
+ public TextMeshProUGUI itemNameText;
+ public TextMeshProUGUI amountText;
+ public Image itemIcon;
+ public Button thisButton;
+
+ public void SetObject(Item itemToSet)
+ {
+ itemNameText.text = itemToSet.itemName; //it would be reset every time you open the inventory instead of updating only the amount but whatever it doesn't matter
+ amountText.text = $"x{itemToSet.craftedAmount}";
+ itemIcon.sprite = itemToSet.icon;
+ thisButton.onClick.AddListener(() => CraftingSystem.instance.TryCraftingItem(itemToSet));
+ foreach (InventoryManager.ItemAmount craftingRequirement in itemToSet.requiredMaterials)
+ {
+ CraftingRequirementUIObject newRequirementUI = Instantiate(templateRequirementUI, requirementGrid);
+ newRequirementUI.SetObject(craftingRequirement.item, craftingRequirement.amount);
+ }
+ }
+}
diff --git a/Assets/Scripts/Inventory/CraftableUIObject.cs.meta b/Assets/Scripts/Inventory/CraftableUIObject.cs.meta
new file mode 100644
index 0000000..e768708
--- /dev/null
+++ b/Assets/Scripts/Inventory/CraftableUIObject.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: b47ad7db89fd76e5fadca9361869604b
\ No newline at end of file
diff --git a/Assets/Scripts/Inventory/CraftingRequirementUIObject.cs b/Assets/Scripts/Inventory/CraftingRequirementUIObject.cs
new file mode 100644
index 0000000..d5c6a44
--- /dev/null
+++ b/Assets/Scripts/Inventory/CraftingRequirementUIObject.cs
@@ -0,0 +1,15 @@
+using TMPro;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class CraftingRequirementUIObject : MonoBehaviour
+{
+ public TextMeshProUGUI amountText;
+ public Image itemIcon;
+
+ public void SetObject(Item itemToSet, int amount)
+ {
+ amountText.text = amount.ToString();
+ itemIcon.sprite = itemToSet.icon;
+ }
+}
diff --git a/Assets/Scripts/Inventory/CraftingRequirementUIObject.cs.meta b/Assets/Scripts/Inventory/CraftingRequirementUIObject.cs.meta
new file mode 100644
index 0000000..b6fe676
--- /dev/null
+++ b/Assets/Scripts/Inventory/CraftingRequirementUIObject.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 09e8634b1083a0ce1a9877c5e26b29bf
\ No newline at end of file
diff --git a/Assets/Scripts/Inventory/CraftingSystem.cs b/Assets/Scripts/Inventory/CraftingSystem.cs
index c1e1aa1..3064a4a 100644
--- a/Assets/Scripts/Inventory/CraftingSystem.cs
+++ b/Assets/Scripts/Inventory/CraftingSystem.cs
@@ -1,8 +1,35 @@
using System.Collections.Generic;
using UnityEngine;
+using UnityEngine.UI;
public class CraftingSystem : MonoBehaviour
{
+ #region Statication
+
+ public static CraftingSystem instance;
+
+ private void Awake()
+ {
+ if (instance != null && instance != this)
+ {
+ Destroy(gameObject);
+ return;
+ }
+ DontDestroyOnLoad(this);
+ instance = this;
+ }
+
+ #endregion
+ public List- knownCraftables = new();
+ [Header("UI")]
+ public Transform craftableUIGrid;
+ public CraftableUIObject templateCraftButton;
+ public void UpdateKnownCraftables(Item newCraftable)
+ {
+ knownCraftables.Add(newCraftable);
+ CraftableUIObject newButton = Instantiate(templateCraftButton, craftableUIGrid);
+ newButton.SetObject(newCraftable);
+ }
public bool TryCraftingItem(Item requestedItem)
{
List missingItems = new();
diff --git a/Assets/Scripts/Inventory/InventoryUIObject.cs b/Assets/Scripts/Inventory/InventoryUIObject.cs
index 162f4dc..2f6db20 100644
--- a/Assets/Scripts/Inventory/InventoryUIObject.cs
+++ b/Assets/Scripts/Inventory/InventoryUIObject.cs
@@ -10,7 +10,6 @@ public class InventoryUIObject : MonoBehaviour
public void SetObject(Item itemToSet)
{
- Debug.Log("here");
itemNameText.text = itemToSet.itemName; //it would be reset every time you open the inventory instead of updating only the amount but whatever it doesn't matter
amountText.text = $"x{InventoryManager.instance.CheckItemAmount(itemToSet)}";
itemIcon.sprite = itemToSet.icon;