vampire-like/Assets/GameFramework/Scripts/Editor/ResourceAnalyzer/DependencyData.cs

97 lines
2.6 KiB
C#

//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/
// Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------
using System.Collections.Generic;
namespace UnityGameFramework.Editor.ResourceTools
{
public sealed class DependencyData
{
private List<Resource> m_DependencyResources;
private List<Asset> m_DependencyAssets;
private List<string> m_ScatteredDependencyAssetNames;
public DependencyData()
{
m_DependencyResources = new List<Resource>();
m_DependencyAssets = new List<Asset>();
m_ScatteredDependencyAssetNames = new List<string>();
}
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);
}
}
}