mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-21 02:39:17 +00:00
Added ability to display referencers/dependencies of assets
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user