public T GetRule <T>(string ruleKey) where T : ABaseRule { ABaseRule rule = null; if (!keyRules.TryGetValue(ruleKey, out rule)) { return(null); } return((T)rule); }
public void RemoveFolderRule(string folderPath, ABaseRule rule) { List <ABaseRule> frs = null; if (!folderRules.TryGetValue(folderPath, out frs)) { return; } frs.Remove(rule); if (frs.Count <= 0) { folderRules.Remove(folderPath); } }
public void AddFolderRule(string folderPath, ABaseRule rule) { List <ABaseRule> frs = null; if (!folderRules.TryGetValue(folderPath, out frs)) { frs = new List <ABaseRule>(); folderRules[folderPath] = frs; } frs.Add(rule); if (!keyRules.ContainsKey(rule.RuleKey)) { keyRules[rule.RuleKey] = rule; } }
private void initAllRules() { texturePanel = new TextureImportPanel(); modelPanel = new ModelImportPanel(); audioPanel = new AudioImportPanel(); settingPanel = new SettingPanel(); keyRules = new Dictionary <string, ABaseRule>(); folderRules = new Dictionary <string, List <ABaseRule> >(); string ruleFolders = ImportPreferences.RuleFolderPath; string[] files = Directory.GetFiles(ruleFolders, "*.asset", SearchOption.AllDirectories); for (int i = 0; i < files.Length; i++) { string relativePath = files[i].Replace(Application.dataPath, "Assets").Replace("\\", "/"); ABaseRule rule = AssetDatabase.LoadAssetAtPath <ABaseRule>(relativePath); if (rule == null) { continue; } for (int j = 0; j < rule.Folders.Length; j++) { List <ABaseRule> frs = null; if (!folderRules.TryGetValue(rule.Folders[j], out frs)) { frs = new List <ABaseRule>(); folderRules[rule.Folders[j]] = frs; } frs.Add(rule); } keyRules[rule.RuleKey] = rule; } }