public AnimationFlags Load(string path, string name) { var cacheKey = $"{path}/{name}"; if (_cache.ContainsKey(cacheKey)) { return(_cache[cacheKey]); } foreach (var config in _settings) { var flags = config.Load(path, name); if (flags != null) { _cache[cacheKey] = flags; return(flags); } } lock (locker) { var flags = new AnimationFlags(); _cache[cacheKey] = flags; _dumpSetting.Save(path, name, flags); return(flags); } }
public void Save(string path, string name, AnimationFlags flags) { lock (locker) { foreach (var config in _settings) { var existing = config.Load(path, name); if (existing != null) { config.Save(path, name, flags); return; } } _cache.Clear(); _defaultSetting.Save(path, name, flags); _dumpSetting.Delete(path, name); } }