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);
		}
	}

}