using System.Collections.Generic; using UnityEditor; using UnityEngine; [System.Serializable] public class ShopData : IModelMapper<Shop> { [SerializeField] public List<IndexValuePair<int, EquippableItemData>> content = new List<IndexValuePair<int, EquippableItemData>>(); [SerializeField] public string Map; [SerializeField] public string NpcName; public ShopData(Shop shop) { Map = shop.Map; NpcName = shop.Npc; foreach (IndexValuePair<int, EquippableItem> item in shop.Content) { content.Add( new IndexValuePair<int, EquippableItemData>(item.Key, new EquippableItemData(item.Value)) ); } } public Shop MapDataToObject() { var shop = new Shop(Map, NpcName); shop.Content.Clear(); foreach (IndexValuePair<int, EquippableItemData> item in content) { var castedObject = item.Value.MapDataToObject() as EquippableItem; if (castedObject == null) shop.Content.Add( new IndexValuePair<int, EquippableItem>(item.Key, new EquippableItem(item.Value.MapDataToObject())) ); else shop.Content.Add( new IndexValuePair<int, EquippableItem>(item.Key, castedObject) ); } return shop; } public Shop MapDataToObject(string prefarbAssetName) { throw new System.NotImplementedException(); } }