//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using System.Collections.Generic; namespace UnityGameFramework.Editor.ResourceTools { public sealed class DependencyData { private List m_DependencyResources; private List m_DependencyAssets; private List m_ScatteredDependencyAssetNames; public DependencyData() { m_DependencyResources = new List(); m_DependencyAssets = new List(); m_ScatteredDependencyAssetNames = new List(); } public int DependencyResourceCount { get { return m_DependencyResources.Count; } } public int DependencyAssetCount { get { return m_DependencyAssets.Count; } } public int ScatteredDependencyAssetCount { get { return m_ScatteredDependencyAssetNames.Count; } } public void AddDependencyAsset(Asset asset) { if (!m_DependencyResources.Contains(asset.Resource)) { m_DependencyResources.Add(asset.Resource); } m_DependencyAssets.Add(asset); } public void AddScatteredDependencyAsset(string dependencyAssetName) { m_ScatteredDependencyAssetNames.Add(dependencyAssetName); } public Resource[] GetDependencyResources() { return m_DependencyResources.ToArray(); } public Asset[] GetDependencyAssets() { return m_DependencyAssets.ToArray(); } public string[] GetScatteredDependencyAssetNames() { return m_ScatteredDependencyAssetNames.ToArray(); } public void RefreshData() { m_DependencyResources.Sort(DependencyResourcesComparer); m_DependencyAssets.Sort(DependencyAssetsComparer); m_ScatteredDependencyAssetNames.Sort(); } private int DependencyResourcesComparer(Resource a, Resource b) { return a.FullName.CompareTo(b.FullName); } private int DependencyAssetsComparer(Asset a, Asset b) { return a.Name.CompareTo(b.Name); } } }