using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.EventSystems; public class CraftingMenuItemController : MonoBehaviour, IPointerClickHandler { [SerializeField] public TextMeshProUGUI itemNameText; [SerializeField] public TextMeshProUGUI requirementsText; [SerializeField] public InventorySlotController craftingItemSlot; private PlayerMovement playerMovement; Item item; Hashtable craftingRequirements; public void OnPointerClick(PointerEventData eventData) { if (eventData.button.Equals(PointerEventData.InputButton.Left)) { if (State.state.inventory.CraftItem(item, craftingRequirements)) { Debug.Log("Successfully crafted " + item.data.name); playerMovement.controller.PlaySound(playerMovement.controller.audioClipCraft); playerMovement.cutscene = false; Destroy(GameObject.FindGameObjectWithTag("CraftingPanel")); } else { playerMovement.controller.PlaySound(playerMovement.controller.audioClipCraftFail); Debug.LogError("Failed to craft " + item.data.name); } } } public void Setup(Item item, Hashtable craftingRequirements) { this.item = item; this.craftingRequirements = craftingRequirements; craftingItemSlot.Refresh(item); itemNameText.text = item.data.name; requirementsText.text = "A bunch of stuff"; // TODO: Populate fields } void Awake() { playerMovement = GameObject.FindGameObjectWithTag("Player").GetComponent(); } // Update is called once per frame void Update() { } }