98 lines
2.9 KiB
C#
98 lines
2.9 KiB
C#
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<PickUp> pickUpsInRange = new List<PickUp>();
|
|
[HideInInspector] public Inventory inventory;
|
|
public TargetAttachment[] targetAttachments;
|
|
[HideInInspector] public PickUp SPU;
|
|
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
inventory = GetComponent<Inventory>();
|
|
}
|
|
|
|
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<PickUpRange>();
|
|
if (pickUpRange != null && !pickUpsInRange.Contains(pickUpRange.pickUp))
|
|
{
|
|
//Debug.Log("Collided");
|
|
pickUpsInRange.Add(pickUpRange.pickUp);
|
|
}
|
|
}
|
|
|
|
private void OnTriggerStay(Collider other)
|
|
{
|
|
PickUpRange pickUpRange = other.GetComponent<PickUpRange>();
|
|
if (pickUpRange != null)
|
|
{
|
|
//CanPickupItem = true;
|
|
}
|
|
}
|
|
|
|
|
|
private void OnTriggerExit(Collider other)
|
|
{
|
|
PickUpRange pickUpRange = other.GetComponent<PickUpRange>();
|
|
if (pickUpRange != null && pickUpsInRange.Contains(pickUpRange.pickUp))
|
|
{
|
|
//CanPickupItem = false;
|
|
|
|
pickUpsInRange.Remove(pickUpRange.pickUp);
|
|
}
|
|
}
|
|
}
|
|
} |