A game about forced loneliness, made by TACStudios
at master 67 lines 2.0 kB view raw
1using System.Collections.Generic; 2using System.IO; 3 4using Codice.CM.Common; 5using PlasticGui; 6using Unity.PlasticSCM.Editor.AssetMenu; 7using Unity.PlasticSCM.Editor.AssetsOverlays.Cache; 8using UnityEditor.VersionControl; 9 10namespace Unity.PlasticSCM.Editor.AssetUtils 11{ 12 internal static class GetSelectedPaths 13 { 14 internal static List<string> ForOperation( 15 WorkspaceInfo wkInfo, 16 IEnumerable<Asset> assetList, 17 IPlasticAPI plasticApi, 18 IAssetStatusCache assetStatusCache, 19 AssetMenuOperations operation, 20 bool includeMetaFiles = true) 21 { 22 List<string> selectedPaths = AssetsSelection. 23 GetSelectedPaths(wkInfo.ClientPath, assetList); 24 25 List<string> result = new List<string>(selectedPaths); 26 27 if (!includeMetaFiles) 28 return result; 29 30 foreach (string path in selectedPaths) 31 { 32 if (MetaPath.IsMetaPath(path)) 33 continue; 34 35 string metaPath = MetaPath.GetMetaPath(path); 36 37 if (!File.Exists(metaPath)) 38 continue; 39 40 if (result.Contains(metaPath)) 41 continue; 42 43 if (!IsApplicableForOperation( 44 metaPath, false, wkInfo, plasticApi, assetStatusCache, operation)) 45 continue; 46 47 result.Add(metaPath); 48 } 49 50 return result; 51 } 52 53 static bool IsApplicableForOperation( 54 string path, 55 bool isDirectory, 56 WorkspaceInfo wkInfo, 57 IPlasticAPI plasticApi, 58 IAssetStatusCache assetStatusCache, 59 AssetMenuOperations operation) 60 { 61 SelectedAssetGroupInfo info = SelectedAssetGroupInfo.BuildFromSingleFile( 62 path, isDirectory, wkInfo, plasticApi, assetStatusCache); 63 64 return AssetMenuUpdater.GetAvailableMenuOperations(info).HasFlag(operation); 65 } 66 } 67}