did i really spend less than an hour working on this game over the course of an entire week? yes!

This commit is contained in:
Sylvia 2026-08-28 23:30:08 -07:00
parent b842289076
commit 4a80a6ed0f
10 changed files with 113 additions and 1 deletions

View file

@ -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

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b5a9cd50157e32c4a92e98bd9a922076
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -15,3 +15,6 @@ MonoBehaviour:
itemName: Water
description: h2o
icon: {fileID: 0}
requiredMaterials: []
craftedAmount: 1
value: 0

View file

@ -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);
}
}
}

View file

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: b47ad7db89fd76e5fadca9361869604b

View file

@ -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;
}
}

View file

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 09e8634b1083a0ce1a9877c5e26b29bf

View file

@ -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<Item> 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<InventoryManager.ItemAmount> missingItems = new();

View file

@ -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;