using System.Data; using Milimoe.FunGame.Core.Api.Factory; using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; namespace Milimoe.FunGame.Core.Api.Utility { public class Factory { /// /// 获取一个不为NULL的实例 /// Item默认返回PassiveItem /// Skill默认返回PassiveSkill /// 若无法找到T,返回唯一的空对象 /// /// Entity类 /// 使用DataSet构造对象(真香) /// public static T GetInstance(params DataSet?[] DataSets) { if (DataSets is null || DataSets.Length == 0) throw new GetInstanceException(); object instance = General.EntityInstance; if (typeof(T) == typeof(User)) { instance = UserFactory.GetInstance(DataSets[0]); } else if (typeof(T) == typeof(Skill) || typeof(T) == typeof(PassiveSkill)) { instance = SkillFactory.GetInstance(DataSets[0]); } else if (typeof(T) == typeof(ActiveSkill)) { instance = SkillFactory.GetInstance(DataSets[0], SkillType.Active); } else if (typeof(T) == typeof(Room)) { instance = RoomFactory.GetInstance(DataSets[0], DataSets[1]); } return (T)instance; } } }