﻿using JLGames.RocketDriver.Games.RpgMaterial.Material;
using JLGames.RocketDriver.Games.RpgMaterial.Common;

namespace JLGames.RocketDriver.Games.RpgMaterial.Material
{
    public interface IMaterialSetMod : IMaterialSet
    {
        /// <summary>
        /// Update values from a new element set.
        /// 更新数据，数据来自另一个数据集合
        /// </summary>
        /// <param name="elements"></param>
        /// <returns></returns>
        void UpdateSet(IElementSet elements);
    }

    public interface IMaterialSetMod<TM, TCfg> : IMaterialSetMod, IMaterialSet<TM, TCfg>
        where TM : IMaterial<TCfg>
    {
        /// <summary>
        /// Update values from a new element set.
        /// 更新数据，数据来自另一个数据集合
        /// </summary>
        /// <param name="elements"></param>
        /// <returns></returns>
        void UpdateSet(IElementSet<TM> elements);
    }
}