From 4a80a6ed0fd98b9b5a9ef588692c2c508276e36d Mon Sep 17 00:00:00 2001 From: sylvermyon Date: Fri, 28 Aug 2026 23:30:08 -0700 Subject: [PATCH] did i really spend less than an hour working on this game over the course of an entire week? yes! --- .../.idea.ReisenTasker/.idea/indexLayout.xml | 8 ++++++ Assets/Prefabs/CraftItemTest.asset | 22 +++++++++++++++ Assets/Prefabs/CraftItemTest.asset.meta | 8 ++++++ Assets/Prefabs/TestItem.asset | 3 +++ Assets/Scripts/Inventory/CraftableUIObject.cs | 26 ++++++++++++++++++ .../Inventory/CraftableUIObject.cs.meta | 2 ++ .../Inventory/CraftingRequirementUIObject.cs | 15 +++++++++++ .../CraftingRequirementUIObject.cs.meta | 2 ++ Assets/Scripts/Inventory/CraftingSystem.cs | 27 +++++++++++++++++++ Assets/Scripts/Inventory/InventoryUIObject.cs | 1 - 10 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 .idea/.idea.ReisenTasker/.idea/indexLayout.xml create mode 100644 Assets/Prefabs/CraftItemTest.asset create mode 100644 Assets/Prefabs/CraftItemTest.asset.meta create mode 100644 Assets/Scripts/Inventory/CraftableUIObject.cs create mode 100644 Assets/Scripts/Inventory/CraftableUIObject.cs.meta create mode 100644 Assets/Scripts/Inventory/CraftingRequirementUIObject.cs create mode 100644 Assets/Scripts/Inventory/CraftingRequirementUIObject.cs.meta 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;