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

namespace JLGames.RocketDriver.Games.RpgMaterial.User
{
    public interface IUserMaterial : IElement
    {
        /// <summary>
        /// Material type
        /// 材料类型
        /// </summary>
        int Type { get; }
        
        /// <summary>
        /// Material id
        /// 材料Id
        /// </summary>
        int MId { get; }

        /// <summary>
        /// Material Unique Id
        /// 材料唯一Id
        /// </summary>
        int UId { get; }
        
        /// <summary>
        /// Material quantity
        /// 材料数量
        /// </summary>
        int Num { get; }

        /// <summary>
        /// Material name
        /// 材料名称
        /// </summary>
        string Name { get; }
    }

    public interface IUserMaterial<TM, TCfg> : IUserMaterial where TM : IMaterial<TCfg>
    {
        /// <summary>
        /// Material Definition
        /// 材料定义
        /// </summary>
        TM Material { get; }
    }
}