using System;
using System.Collections.Generic;
using UnityEngine;

[Serializable]
public abstract class SceneObjectBuilder<V> : MonoBehaviour, SceneObjectBuilderInterface<V>
{
    protected virtual string MODEL_SOURCE_PATH => "";

    /// <summary>
    /// List of chests deffaultly builded on scene
    /// </summary>
    [SerializeField] public List<V> ElementsToBuildOnSceneList = new List<V>();

    public virtual void BuildList()
    {
        foreach(var objectToBuild in ElementsToBuildOnSceneList)
        {
            Build(objectToBuild);
        }
    }

    public abstract void Build(V objectToBuild);

    public abstract GameObject FindModel(string modelName);
}