12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using System.Collections.Generic;
-
- namespace UnityEngine.U2D.Animation
- {
- internal class SpriteLibrarySourceAsset : ScriptableObject
- {
- public const string defaultName = "New Sprite Library Asset";
- public const string extension = ".spriteLib";
-
- [SerializeField]
- List<SpriteLibCategoryOverride> m_Library = new();
-
- [SerializeField]
- string m_PrimaryLibraryGUID;
-
- [SerializeField]
- long m_ModificationHash;
-
- [SerializeField]
- int m_Version = 1;
-
- public IReadOnlyList<SpriteLibCategoryOverride> library => m_Library;
-
- public string primaryLibraryGUID => m_PrimaryLibraryGUID;
-
- public long modificationHash => m_ModificationHash;
- public int version => m_Version;
-
- public void InitializeWithAsset(SpriteLibrarySourceAsset source)
- {
- m_Library = new List<SpriteLibCategoryOverride>(source.m_Library);
- m_PrimaryLibraryGUID = source.m_PrimaryLibraryGUID;
- m_ModificationHash = source.m_ModificationHash;
- }
-
- public void SetLibrary(IList<SpriteLibCategoryOverride> newLibrary)
- {
- if (!m_Library.Equals(newLibrary))
- {
- m_Library = new List<SpriteLibCategoryOverride>(newLibrary);
- UpdateModificationHash();
- }
- }
-
- public void SetPrimaryLibraryGUID(string newPrimaryLibraryGUID)
- {
- if (m_PrimaryLibraryGUID != newPrimaryLibraryGUID)
- {
- m_PrimaryLibraryGUID = newPrimaryLibraryGUID;
- UpdateModificationHash();
- }
- }
-
- public void AddCategory(SpriteLibCategoryOverride newCategory)
- {
- if (!m_Library.Contains(newCategory))
- {
- m_Library.Add(newCategory);
- UpdateModificationHash();
- }
- }
-
- public void RemoveCategory(SpriteLibCategoryOverride categoryToRemove)
- {
- if (m_Library.Contains(categoryToRemove))
- {
- m_Library.Remove(categoryToRemove);
- UpdateModificationHash();
- }
- }
-
- public void ClearCategories()
- {
- m_Library.Clear();
- }
-
- public void RemoveCategory(int indexToRemove)
- {
- if (indexToRemove >= 0 && indexToRemove < m_Library.Count)
- {
- m_Library.RemoveAt(indexToRemove);
- UpdateModificationHash();
- }
- }
-
- void UpdateModificationHash()
- {
- m_ModificationHash = SpriteLibraryUtility.GenerateHash();
- }
- }
- }
|