Added ability to display referencers/dependencies of assets

This commit is contained in:
Aruki
2017-07-20 20:56:29 -06:00
parent 905173a0a0
commit 89d668a810
14 changed files with 363 additions and 79 deletions

View File

@@ -25,6 +25,12 @@ bool IDependencyNode::HasDependency(const CAssetID& rkID) const
return false;
}
void IDependencyNode::GetAllResourceReferences(std::set<CAssetID>& rOutSet) const
{
for (u32 iChild = 0; iChild < mChildren.size(); iChild++)
mChildren[iChild]->GetAllResourceReferences(rOutSet);
}
// ************ CDependencyTree ************
EDependencyNodeType CDependencyTree::Type() const
{
@@ -75,6 +81,11 @@ void CResourceDependency::Serialize(IArchive& rArc)
rArc << SERIAL("ID", mID);
}
void CResourceDependency::GetAllResourceReferences(std::set<CAssetID>& rOutSet) const
{
rOutSet.insert(mID);
}
bool CResourceDependency::HasDependency(const CAssetID& rkID) const
{
return (mID == rkID);

View File

@@ -37,6 +37,7 @@ public:
virtual ~IDependencyNode();
virtual EDependencyNodeType Type() const = 0;
virtual void Serialize(IArchive& rArc) = 0;
virtual void GetAllResourceReferences(std::set<CAssetID>& rOutSet) const;
virtual bool HasDependency(const CAssetID& rkID) const;
// Accessors
@@ -71,6 +72,7 @@ public:
virtual EDependencyNodeType Type() const;
virtual void Serialize(IArchive& rArc);
virtual void GetAllResourceReferences(std::set<CAssetID>& rOutSet) const;
virtual bool HasDependency(const CAssetID& rkID) const;
// Accessors

View File

@@ -78,6 +78,17 @@ TString CWorld::AreaInGameName(u32 AreaIndex) const
return "!!" + rkArea.InternalName;
}
u32 CWorld::AreaIndex(CAssetID AreaID) const
{
for (u32 AreaIdx = 0; AreaIdx < mAreas.size(); AreaIdx++)
{
if (mAreas[AreaIdx].AreaResID == AreaID)
return AreaIdx;
}
return -1;
}
// ************ SERIALIZATION ************
void CWorld::Serialize(IArchive& rArc)
{

View File

@@ -94,6 +94,7 @@ public:
void SetAreaLayerInfo(CGameArea *pArea);
TString InGameName() const;
TString AreaInGameName(u32 AreaIndex) const;
u32 AreaIndex(CAssetID AreaID) const;
// Serialization
virtual void Serialize(IArchive& rArc);