using UnityEngine;

public class JsonController : MonoBehaviour
{
    public GameObject shelf;

    private void Start()
    {
        LoadShelf();
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Mouse0)) SaveShelf();
        if (Input.GetKeyDown(KeyCode.Mouse1)) LoadShelf();
    }

    private void SaveShelf()
    {
        ShelfWillSave data = new ShelfWillSave();
        
        // localPosition yerine dünya pozisyonunu (position) alıyoruz
        data.x = shelf.transform.position.x;
        data.y = shelf.transform.position.y;
        data.z = shelf.transform.position.z;

        string json = JsonUtility.ToJson(data);
        PlayerPrefs.SetString("ShelfSave", json);
        PlayerPrefs.Save();
        
        Debug.Log("Kaydedilen Veri: " + json);
    }

    private void LoadShelf()
    {
        if (PlayerPrefs.HasKey("ShelfSave"))
        {
            string json = PlayerPrefs.GetString("ShelfSave");
            ShelfWillSave data = JsonUtility.FromJson<ShelfWillSave>(json);

            // Veriyi geri yüklerken dünya pozisyonuna eşitliyoruz
            shelf.transform.position = new Vector3(data.x, data.y, data.z);
            
            Debug.Log("Yüklendi: " + shelf.transform.position);
        }
    }
}

[System.Serializable]
public class ShelfWillSave
{
    // Vector2 yerine tekil floatlar kullanmak en garantisidir
    public float x;
    public float y;
    public float z;
}