using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // Обязательно добавляем для работы с интерфейсом

// Этот класс - наша "карточка товара". Он хранит иконку и 3D-модель.
[System.Serializable] // Позволяет отображать этот класс в инспекторе Unity
public class FurnitureItem
{
    public string itemName;      // Название (просто для вашего удобства в инспекторе)
    public Sprite icon;          // Иконка для магазина
    public GameObject prefab;    // 3D-модель для установки
}

public class ShopManager : MonoBehaviour
{
    [Header("Связи")]
    public FurnitureController builder;     // Ссылка на ваш скрипт строительства
    public GameObject buttonTemplate;    // Наш префаб кнопки магазина
    public Transform contentPanel;       // Тот самый объект Content с Grid Layout Group

    [Header("Каталог мебели")]
    public List<FurnitureItem> items;    // Список всей мебели в игре

    void Start()
    {
        // Как только игра запускается, генерируем магазин
        GenerateShop();
    }

    void GenerateShop()
    {
        // Проходимся по каждому предмету в нашем каталоге
        foreach (FurnitureItem item in items)
        {
            // 1. Создаем копию шаблона кнопки внутри панели Content
            GameObject newButton = Instantiate(buttonTemplate, contentPanel);

            // 2. Находим компонент Image на этой кнопке и меняем картинку на нашу иконку
            newButton.GetComponent<Image>().sprite = item.icon;

            // 3. Находим компонент Button, чтобы настроить клик
            Button btn = newButton.GetComponent<Button>();

            // Сохраняем префаб в локальную переменную (это важно для правильной работы кода)
            GameObject prefabToSelect = item.prefab;

            // 4. Программно добавляем действие при клике (то же самое, что плюсик в инспекторе)
            // Мы вызываем метод из вашего прошлого скрипта!
            btn.onClick.AddListener(() => builder.SelectFurnitureAndCloseShop(prefabToSelect));
        }
    }
}