public static SimFilter Cache(string filter, ulong cacheSim, List <ulong> sims) { Common.DebugNotify("Cache: " + filter + " Count: " + sims.Count + " cacheSim: " + cacheSim); SimFilter cFilter = new SimFilter(filter, cacheSim); cFilter.Sims = sims; Dictionary <ulong, SimFilter> mCache; filters.TryGetValue(filter, out mCache); if (mCache != null) { mCache.Remove(cacheSim); mCache.Add(cacheSim, cFilter); filters[filter] = mCache; } else { mCache = new Dictionary <ulong, SimFilter>(); mCache.Add(cacheSim, cFilter); filters.Add(filter, mCache); } return(cFilter); }
public static bool DoesAnySimMatchFilter(ulong cacheSim, List <SimDescription> descs, string filter) { SimFilter cFilter = GetFilter(filter, cacheSim); foreach (SimDescription desc in descs) { if (cFilter.SimMatches(desc.SimDescriptionId)) { return(true); } } return(false); }
// this one assumes the filter has already been initalized public static SimFilter UpdateFilter(string filter, ulong cacheSim) { Common.DebugNotify("UpdateFilterInternal: " + filter + " cacheSim: " + cacheSim); // updated live if (filter.Contains("Attraction")) { return(new SimFilter(filter, 0)); } Dictionary <ulong, SimFilter> mCache = null; filters.TryGetValue(filter, out mCache); if (mCache != null) { if (mCache.ContainsKey(0)) { Common.DebugNotify("mCache.ContainsKey 0"); return(UpdateFilter(filter, cacheSim, false)); } else { Common.DebugNotify("mCache doesnt ContainsKey 0"); return(UpdateFilter(filter, cacheSim, true)); } } else { if (filter != string.Empty && sGetSingleFilter.Valid) { Dictionary <string, bool> result = new Dictionary <string, bool>(); result = sGetSingleFilter.Invoke <Dictionary <string, bool> >(new object[] { filter }); if (result.Count > 0 && result.ContainsKey(filter)) { Common.DebugNotify("GrabFilterHot: " + result[filter]); return(UpdateFilter(filter, cacheSim, result[filter])); } } // return blank as fail safe SimFilter mFilter = new SimFilter(filter, 0); return(mFilter); } }
public static SimFilter Cache(string filter, ulong cacheSim, List<ulong> sims) { Common.DebugNotify("Cache: " + filter + " Count: " + sims.Count + " cacheSim: " + cacheSim); SimFilter cFilter = new SimFilter(filter, cacheSim); cFilter.Sims = sims; Dictionary<ulong, SimFilter> mCache; filters.TryGetValue(filter, out mCache); if (mCache != null) { mCache.Remove(cacheSim); mCache.Add(cacheSim, cFilter); filters[filter] = mCache; } else { mCache = new Dictionary<ulong, SimFilter>(); mCache.Add(cacheSim, cFilter); filters.Add(filter, mCache); } return cFilter; }
// this one assumes the filter has already been initalized public static SimFilter UpdateFilter(string filter, ulong cacheSim) { Common.DebugNotify("UpdateFilterInternal: " + filter + " cacheSim: " + cacheSim); Dictionary<ulong, SimFilter> mCache = null; filters.TryGetValue(filter, out mCache); if (mCache != null) { if (mCache.ContainsKey(0)) { Common.DebugNotify("mCache.ContainsKey 0"); return UpdateFilter(filter, cacheSim, false); } else { Common.DebugNotify("mCache doesnt ContainsKey 0"); return UpdateFilter(filter, cacheSim, true); } } else { if (filter != string.Empty && sGetSingleFilter.Valid) { Dictionary<string, bool> result = new Dictionary<string, bool>(); result = sGetSingleFilter.Invoke<Dictionary<string, bool>>(new object[] { filter }); if (result.Count > 0 && result.ContainsKey(filter)) { Common.DebugNotify("GrabFilterHot: " + result[filter]); return UpdateFilter(filter, cacheSim, result[filter]); } } // return blank as fail safe SimFilter mFilter = new SimFilter(filter, 0); return mFilter; } }