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(DataSet? DataSet) { object instance = General.EntityInstance; if (typeof(T) == typeof(User)) { instance = UserFactory.GetInstance(DataSet); } else if (typeof(T) == typeof(Skill) || typeof(T) == typeof(PassiveSkill)) { instance = SkillFactory.GetInstance(DataSet); } else if (typeof(T) == typeof(ActiveSkill)) { instance = SkillFactory.GetInstance(DataSet, SkillType.Active); } else if (typeof(T) == typeof(Room)) { instance = RoomFactory.GetInstance(DataSet); } return (T)instance; } } }