| | using System; |
| | using System.Collections; |
| | using System.Collections.Generic; |
| | using UnityEngine; |
| | using UnityEngine.EventSystems; |
| | using UnityEngine.UI; |
| | |
| | |
| | public class TrashSlot : MonoBehaviour, IDropHandler, IPointerEnterHandler, IPointerExitHandler |
| | { |
| | |
| | public GameObject trashAlertUI; |
| | |
| | private Text textToModify; |
| | |
| | public Sprite trash_closed; |
| | public Sprite trash_opened; |
| | |
| | private Image imageComponent; |
| | |
| | Button YesBTN, NoBTN; |
| | |
| | GameObject draggedItem |
| | { |
| | get |
| | { |
| | return DragDrop.itemBeingDragged; |
| | } |
| | } |
| | |
| | GameObject itemToBeDeleted; |
| | |
| | |
| | |
| | public string itemName |
| | { |
| | get |
| | { |
| | string name = itemToBeDeleted.name; |
| | string toRemove = "(Clone)"; |
| | string result = name.Replace(toRemove, ""); |
| | return result; |
| | } |
| | } |
| | |
| | |
| | |
| | void Start() |
| | { |
| | imageComponent = transform.Find("background").GetComponent<Image>(); |
| | |
| | textToModify = trashAlertUI.transform.Find("Text").GetComponent<Text>(); |
| | |
| | YesBTN = trashAlertUI.transform.Find("yes").GetComponent<Button>(); |
| | YesBTN.onClick.AddListener(delegate { DeleteItem(); }); |
| | |
| | NoBTN = trashAlertUI.transform.Find("no").GetComponent<Button>(); |
| | NoBTN.onClick.AddListener(delegate { CancelDeletion(); }); |
| | |
| | } |
| | |
| | |
| | public void OnDrop(PointerEventData eventData) |
| | { |
| | |
| | if (draggedItem && draggedItem.GetComponent<InventoryItem>().isTrashable == true) |
| | { |
| | itemToBeDeleted = draggedItem.gameObject; |
| | |
| | StartCoroutine(notifyBeforeDeletion()); |
| | } |
| | |
| | } |
| | |
| | IEnumerator notifyBeforeDeletion() |
| | { |
| | trashAlertUI.SetActive(true); |
| | textToModify.text = "Throw away this " + itemName + "?"; |
| | yield return new WaitForSeconds(1f); |
| | } |
| | |
| | private void CancelDeletion() |
| | { |
| | imageComponent.sprite = trash_closed; |
| | trashAlertUI.SetActive(false); |
| | } |
| | |
| | private void DeleteItem() |
| | { |
| | imageComponent.sprite = trash_closed; |
| | DestroyImmediate(itemToBeDeleted.gameObject); |
| | InventorySystem.Instance.ReCalculateList(); |
| | CraftingSystem.Instance.RefreshNeededItems(); |
| | trashAlertUI.SetActive(false); |
| | } |
| | |
| | public void OnPointerEnter(PointerEventData eventData) |
| | { |
| | |
| | if (draggedItem != null && draggedItem.GetComponent<InventoryItem>().isTrashable == true) |
| | { |
| | imageComponent.sprite = trash_opened; |
| | } |
| | |
| | } |
| | |
| | public void OnPointerExit(PointerEventData eventData) |
| | { |
| | if (draggedItem != null && draggedItem.GetComponent<InventoryItem>().isTrashable == true) |
| | { |
| | imageComponent.sprite = trash_closed; |
| | } |
| | } |
| | |
| | } |
| | |