using System.Collections; using System.Collections.Generic; using UnityEngine; namespace SimpleInventorySystem { [RequireComponent(typeof(Collider), typeof(Inventory))] public class Player_IS : MonoBehaviour { //public bool CanPickupItem { get; private set; } //public PickUp storedPickUp; public List pickUpsInRange = new List(); [HideInInspector] public Inventory inventory; public TargetAttachment[] targetAttachments; [HideInInspector] public PickUp SPU; // Start is called before the first frame update void Start() { inventory = GetComponent(); } public bool AttachItemGameObject(GameObject go, ItemTags itemTag, ItemUI itemUI) { foreach (TargetAttachment ta in targetAttachments) { if(ta != null && ta.AttachItemGameObject(go, itemTag, itemUI.pickUp)) { itemUI.targetAttachment = ta; return true; } } Debug.Log("FAIL"); return false; } public void DetachItemGameObject(GameObject go, ItemUI itemUI) { if(itemUI.targetAttachment != null) { itemUI.targetAttachment.DetachItemGameObject(go); } itemUI.pickUp.DropDownHandler(); itemUI.targetAttachment = null; itemUI.gameObject.transform.SetParent(go.transform); } // Update is called once per frame void Update() { } public void HandlePickup(PickUp storedPickUp) { SPU = storedPickUp; //Debug.Log("Handling Pickup"); if (storedPickUp != null && pickUpsInRange.Contains(storedPickUp)) { //Debug.Log("Picking up" + storedPickUp.name); storedPickUp.PickUpHandler(); } } private void OnTriggerEnter(Collider other) { PickUpRange pickUpRange = other.GetComponent(); if (pickUpRange != null && !pickUpsInRange.Contains(pickUpRange.pickUp)) { Debug.Log("Collided"); pickUpsInRange.Add(pickUpRange.pickUp); } } private void OnTriggerStay(Collider other) { PickUpRange pickUpRange = other.GetComponent(); if (pickUpRange != null) { //CanPickupItem = true; } } private void OnTriggerExit(Collider other) { PickUpRange pickUpRange = other.GetComponent(); if (pickUpRange != null && pickUpsInRange.Contains(pickUpRange.pickUp)) { //CanPickupItem = false; pickUpsInRange.Remove(pickUpRange.pickUp); } } } }