public SmartAction ActionFactory(int id, SmartSource source, SmartTarget target) { if (!SmartDataManager.GetInstance().Contains(SmartType.SmartAction, id)) { throw new NullReferenceException("No data for action id " + id); } SmartAction action = new SmartAction(id, source, target); SetParameterObjects(action, SmartDataManager.GetInstance().GetRawData(SmartType.SmartAction, id)); return(action); }
public SmartSource SourceFactory(int id) { if (!SmartDataManager.GetInstance().Contains(SmartType.SmartSource, id)) { throw new NullReferenceException("No data for source id " + id); } SmartSource source = new SmartSource(id); SetParameterObjects(source, SmartDataManager.GetInstance().GetRawData(SmartType.SmartSource, id)); return(source); }
public SmartTarget TargetFactory(int id) { if (!SmartDataManager.GetInstance().Contains(SmartType.SmartTarget, id)) { throw new NullReferenceException("No data for target id " + id); } SmartTarget target = new SmartTarget(id); SetParameterObjects(target, SmartDataManager.GetInstance().GetRawData(SmartType.SmartTarget, id)); if (SmartDataManager.GetInstance().GetRawData(SmartType.SmartTarget, id).Types.Contains("Position")) { target.IsPosition = true; } return(target); }
public SmartEvent EventFactory(int id) { if (!SmartDataManager.GetInstance().Contains(SmartType.SmartEvent, id)) { throw new NullReferenceException("No data for event id " + id); } SmartEvent ev = new SmartEvent(id); var raw = SmartDataManager.GetInstance().GetRawData(SmartType.SmartEvent, id); ev.Chance.SetValue(100); SetParameterObjects(ev, raw); if (raw.DescriptionRules != null) { ev.DescriptionRules = new List <DescriptionRule>(); foreach (var rule in raw.DescriptionRules) { ev.DescriptionRules.Add(new DescriptionRule(rule)); } } return(ev); }
private static void Load(SmartType type, string data, SmartDataManager manager) { var smartGenerics = JsonConvert.DeserializeObject <List <SmartGenericJsonData> >(data); smartGenerics.ForEach(e => manager.Add(type, e)); }
public static void Load(SmartDataManager manager, ISmartDataProvider provider) { Load(SmartType.SmartEvent, provider.GetEventsJson(), manager); Load(SmartType.SmartAction, provider.GetActionsJson(), manager); Load(SmartType.SmartTarget, provider.GetTargetsJson(), manager); }
public static SmartDataManager GetInstance() { return(_instance ?? (_instance = new SmartDataManager())); }