using UnityEngine;
using UnityEngine.VFX;
public class ItemPickUp : Interactable, IDataPersistence
{
public Item item;
[SerializeField] private string id;
[SerializeField] private bool wasPickedUp;
[ContextMenu("Generate GUID for object")]
private void GenerateGUID(){
id = System.Guid.NewGuid().ToString();
}
//Override Inherited Interact from Interactable
public override void Interact()
{
base.Interact();
PickUp();
}
public void LoadData(GameData data)
{
data.inventorySave.TryGetValue(id, out wasPickedUp);
if(wasPickedUp){
Inventory.instance.SimpleAdd(item);
gameObject.SetActive(false);
}
//Failed Tries to fix the duplication
/*if (wasPickedUp == true){
//PickUp();
thisObj.SetActive(false);
}
/*if(Inventory.instance.Contains(item)){
gameObject.SetActive(false);
}else{
gameObject.SetActive(true);
}*/
}
public void SaveData(GameData data)
{
//Save state to Serializable Dictionary
if (data.inventorySave.ContainsKey(id)){
data.inventorySave.Remove(id);
}
data.inventorySave.Add(id, wasPickedUp);
}
// Pick up the item
void PickUp()
{
Debug.Log("Picking up " + item.name);
wasPickedUp = Inventory.instance.Add(item);
if (wasPickedUp == true){
gameObject.SetActive(false);
}
}
}