A game about forced loneliness, made by TACStudios
at master 56 lines 2.0 kB view raw
1using System; 2using System.IO; 3using UnityEngine; 4 5namespace UnityEditor.U2D.Animation.SpriteLibraryEditor 6{ 7 internal class SpriteLibraryAssetPostprocessor : AssetPostprocessor 8 { 9 public static event Action<string> OnImported; 10 public static event Action<string> OnDeleted; 11 public static event Action<string, string> OnMovedAssetFromTo; 12 13 const string k_SpriteLibExtension = ".spriteLib"; 14 15 static bool IsPathSpriteLibrary(string assetPath) => string.Equals(Path.GetExtension(assetPath), k_SpriteLibExtension); 16 17 static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) 18 { 19 if (movedAssets.Length == movedFromAssetPaths.Length) 20 { 21 if (OnMovedAssetFromTo != null) 22 { 23 for (var i = 0; i < movedAssets.Length; i++) 24 { 25 var fromPath = movedFromAssetPaths[i]; 26 if (IsPathSpriteLibrary(fromPath)) 27 { 28 var toPath = IsPathSpriteLibrary(movedAssets[i]) ? movedAssets[i] : null; 29 OnMovedAssetFromTo.Invoke(fromPath, toPath); 30 } 31 } 32 } 33 } 34 35 if (OnImported != null) 36 { 37 for (var i = 0; i < importedAssets.Length; i++) 38 { 39 var assetPath = importedAssets[i]; 40 if (IsPathSpriteLibrary(assetPath)) 41 OnImported.Invoke(assetPath); 42 } 43 } 44 45 if (OnDeleted != null) 46 { 47 for (var i = 0; i < deletedAssets.Length; i++) 48 { 49 var assetPath = deletedAssets[i]; 50 if (IsPathSpriteLibrary(assetPath)) 51 OnDeleted.Invoke(assetPath); 52 } 53 } 54 } 55 } 56}