No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SpriteLibrarySourceAsset.cs 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System.Collections.Generic;
  2. namespace UnityEngine.U2D.Animation
  3. {
  4. internal class SpriteLibrarySourceAsset : ScriptableObject
  5. {
  6. public const string defaultName = "New Sprite Library Asset";
  7. public const string extension = ".spriteLib";
  8. [SerializeField]
  9. List<SpriteLibCategoryOverride> m_Library = new();
  10. [SerializeField]
  11. string m_PrimaryLibraryGUID;
  12. [SerializeField]
  13. long m_ModificationHash;
  14. [SerializeField]
  15. int m_Version = 1;
  16. public IReadOnlyList<SpriteLibCategoryOverride> library => m_Library;
  17. public string primaryLibraryGUID => m_PrimaryLibraryGUID;
  18. public long modificationHash => m_ModificationHash;
  19. public int version => m_Version;
  20. public void InitializeWithAsset(SpriteLibrarySourceAsset source)
  21. {
  22. m_Library = new List<SpriteLibCategoryOverride>(source.m_Library);
  23. m_PrimaryLibraryGUID = source.m_PrimaryLibraryGUID;
  24. m_ModificationHash = source.m_ModificationHash;
  25. }
  26. public void SetLibrary(IList<SpriteLibCategoryOverride> newLibrary)
  27. {
  28. if (!m_Library.Equals(newLibrary))
  29. {
  30. m_Library = new List<SpriteLibCategoryOverride>(newLibrary);
  31. UpdateModificationHash();
  32. }
  33. }
  34. public void SetPrimaryLibraryGUID(string newPrimaryLibraryGUID)
  35. {
  36. if (m_PrimaryLibraryGUID != newPrimaryLibraryGUID)
  37. {
  38. m_PrimaryLibraryGUID = newPrimaryLibraryGUID;
  39. UpdateModificationHash();
  40. }
  41. }
  42. public void AddCategory(SpriteLibCategoryOverride newCategory)
  43. {
  44. if (!m_Library.Contains(newCategory))
  45. {
  46. m_Library.Add(newCategory);
  47. UpdateModificationHash();
  48. }
  49. }
  50. public void RemoveCategory(SpriteLibCategoryOverride categoryToRemove)
  51. {
  52. if (m_Library.Contains(categoryToRemove))
  53. {
  54. m_Library.Remove(categoryToRemove);
  55. UpdateModificationHash();
  56. }
  57. }
  58. public void ClearCategories()
  59. {
  60. m_Library.Clear();
  61. }
  62. public void RemoveCategory(int indexToRemove)
  63. {
  64. if (indexToRemove >= 0 && indexToRemove < m_Library.Count)
  65. {
  66. m_Library.RemoveAt(indexToRemove);
  67. UpdateModificationHash();
  68. }
  69. }
  70. void UpdateModificationHash()
  71. {
  72. m_ModificationHash = SpriteLibraryUtility.GenerateHash();
  73. }
  74. }
  75. }