ThirdPartyPackageCatalog
Dictionary-backed collection of third-party package metadata, keyed by Asset Store ProductID. Implements IEnumerable<ThirdPartyPackageInfo> for iteration over all registered packages.
Definition
Namespace: Paragon.Editor.ThirdPartyPackageImporter Assembly: Paragon.Editor.dll
internal class ThirdPartyPackageCatalog : IEnumerable<ThirdPartyPackageInfo>Implements: IEnumerable<ThirdPartyPackageInfo>
Remarks
ThirdPartyPackageCatalog is a simple typed wrapper around Dictionary<int, ThirdPartyPackageInfo>. It is not created directly by consumers — instead, ThirdPartyPackageUtility deserializes it from Google Sheets CSV data via DeserializeCatalog(), and ThirdPartyPackageManager holds the active instance.
The dictionary key is the Asset Store ProductID (an integer), which uniquely identifies each third-party asset.
Quick Lookup
Get a package by ID
catalog.GetPackage(productID)
Add a package entry
catalog.AddPackage(name, productID, packageName, catalogID, importFolder, hash)
Iterate all packages
foreach (var info in catalog) { ... }
Debug print all entries
catalog.ToString()
Constructors
ThirdPartyPackageCatalog()
Creates an empty catalog with no packages.
Methods
AddPackage
Adds a new package entry to the catalog. Constructs a ThirdPartyPackageInfo from the provided parameters and stores it keyed by ProductID.
productName
string
Human-readable product name from the Asset Store
productID
int
Unique Asset Store product identifier (dictionary key)
packageName
string
Package bundle name (e.g., com.vendor.asset-name)
catalogID
int
Google Sheets GID for this package's processor table sheet
importFolder
string
Target folder path for importing (relative to project)
hash
string
Content hash for cache invalidation
GetPackage
Retrieves a package by its ProductID. Throws KeyNotFoundException if the ID is not registered.
packageID
int
The Asset Store ProductID to look up
GetEnumerator
Returns an enumerator over all ThirdPartyPackageInfo values in the catalog.
ToString
Returns a newline-separated string of all packages in "ProductName - ProductID" format.
Common Pitfalls
GetPackage throws on missing key GetPackage(int) uses direct dictionary indexing (catalog[packageID]), which throws KeyNotFoundException if the ProductID is not registered. There is no TryGetPackage variant — callers must ensure the ID exists.
Duplicate ProductID will throw AddPackage calls Dictionary.Add(), which throws ArgumentException if the ProductID is already registered. The catalog does not support updating existing entries.
See Also
ThirdPartyPackageManager — owns and queries the catalog
ThirdPartyPackageUtility — deserializes catalog from CSV data
ThirdPartyPackageManager Overview — system overview
Last updated