From 91ec3c8341a4eb8f186b4390e6b36fc2b9f070e2 Mon Sep 17 00:00:00 2001 From: blowfish Date: Fri, 1 Mar 2019 01:00:49 -0800 Subject: [PATCH] Extract common code between blacklist and whitelist --- .../GameData/ReStock/Plugins/Restock.dll | Bin 17408 -> 18432 bytes Source/Restock/ResourceBlacklist.cs | 38 +++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Distribution/Restock/GameData/ReStock/Plugins/Restock.dll b/Distribution/Restock/GameData/ReStock/Plugins/Restock.dll index e986c80d1055475a7180184f28713cab3f08de79..2446d22ef41088ec7329c4e13b75a920f456db96 100644 GIT binary patch delta 7098 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 HIo$Q%vgbNW diff --git a/Source/Restock/ResourceBlacklist.cs b/Source/Restock/ResourceBlacklist.cs index 410faa3f..ce2ce09e 100644 --- a/Source/Restock/ResourceBlacklist.cs +++ b/Source/Restock/ResourceBlacklist.cs @@ -22,29 +22,17 @@ namespace Restock if (file.fileExtension == "restockblacklist") { Debug.Log($"[Restock] Reading blacklist {file.url}.{file.fileExtension}"); - foreach (string line in File.ReadAllLines(file.fullPath)) + foreach (UrlDir.UrlFile blacklistFile in FindFilesInAssetListFile(file.fullPath, gameData)) { - string lineBeforeComment = line.Split(COMMENT_SEPARATOR, 2, StringSplitOptions.None)[0].Trim(); - if (lineBeforeComment == string.Empty) continue; - - foreach (UrlDir.UrlFile blacklistFile in FindFiles(lineBeforeComment, gameData)) - { - blacklist.Add(blacklistFile); - } + blacklist.Add(blacklistFile); } } else if (file.fileExtension == "restockwhitelist") { Debug.Log($"[Restock] Reading whitelist {file.url}.{file.fileExtension}"); - foreach (string line in File.ReadAllLines(file.fullPath)) + foreach (UrlDir.UrlFile whitelistFile in FindFilesInAssetListFile(file.fullPath, gameData)) { - string lineBeforeComment = line.Split(COMMENT_SEPARATOR, 2, StringSplitOptions.None)[0].Trim(); - if (lineBeforeComment == string.Empty) continue; - - foreach (UrlDir.UrlFile whitelistFile in FindFiles(lineBeforeComment, gameData)) - { - whitelist.Add(whitelistFile); - } + whitelist.Add(whitelistFile); } } } @@ -62,8 +50,22 @@ namespace Restock Destroy(gameObject); } + private IEnumerable FindFilesInAssetListFile(string filePath, UrlDir dir) + { + foreach (string line in File.ReadAllLines(filePath)) + { + string lineBeforeComment = line.Split(COMMENT_SEPARATOR, 2, StringSplitOptions.None)[0].Trim(); + if (lineBeforeComment == string.Empty) continue; + + foreach (UrlDir.UrlFile urlFile in FindFilesForUrl(lineBeforeComment, dir)) + { + yield return urlFile; + } + } + } + private readonly char[] PATH_SEPARATOR = new[] { '/' }; - private IEnumerable FindFiles(string url, UrlDir dir) + private IEnumerable FindFilesForUrl(string url, UrlDir dir) { string[] splits = url.Split(PATH_SEPARATOR, 2); @@ -121,7 +123,7 @@ namespace Restock { if (regex.IsMatch(subDir.name)) { - foreach (UrlDir.UrlFile file in FindFiles(splits[1], subDir)) + foreach (UrlDir.UrlFile file in FindFilesForUrl(splits[1], subDir)) { yield return file; }