Browse Source

Fix UUID generation using absolute path instead of relative path

Signed-off-by: amzn-mike <[email protected]>
amzn-mike 2 years ago
parent
commit
04c062efcf

+ 9 - 9
Code/Tools/AssetProcessor/native/utilities/UuidManager.cpp

@@ -29,7 +29,7 @@ namespace AssetProcessor
                 ->Field("uuid", &UuidEntry::m_uuid)
                 ->Field("legacyUuids", &UuidEntry::m_legacyUuids)
                 ->Field("originalPath", &UuidEntry::m_originalPath)
-                ->Field("millisecondsSinceUnixEpoch", &UuidEntry::m_millisecondsSinceUnixEpoch);
+                ->Field("creationUnixEpochMS", &UuidEntry::m_millisecondsSinceUnixEpoch);
         }
     }
 
@@ -136,7 +136,7 @@ namespace AssetProcessor
 
         const bool isEnabledType = m_enabledTypes.contains(sourceAsset.AbsolutePath().Extension().Native());
         // Last resort - generate a new UUID and save it to the metadata file
-        UuidEntry newUuid = CreateUuidEntry(normalizedPath, isEnabledType);
+        UuidEntry newUuid = CreateUuidEntry(sourceAsset, isEnabledType);
 
         if (!isEnabledType || GetMetadataManager()->SetValue(sourceAsset.AbsolutePath(), UuidKey, newUuid))
         {
@@ -158,13 +158,13 @@ namespace AssetProcessor
         return m_metadataManager;
     }
 
-    UuidManager::UuidEntry UuidManager::CreateUuidEntry(const AZStd::string& file, bool enabledType)
+    UuidManager::UuidEntry UuidManager::CreateUuidEntry(const SourceAssetReference& sourceAsset, bool enabledType)
     {
         UuidEntry newUuid;
 
-        newUuid.m_uuid = enabledType ? CreateUuid() : AssetUtilities::CreateSafeSourceUUIDFromName(file.c_str());
-        newUuid.m_legacyUuids = CreateLegacyUuids(file);
-        newUuid.m_originalPath = file;
+        newUuid.m_uuid = enabledType ? CreateUuid() : AssetUtilities::CreateSafeSourceUUIDFromName(sourceAsset.RelativePath().c_str());
+        newUuid.m_legacyUuids = CreateLegacyUuids(sourceAsset.RelativePath().c_str());
+        newUuid.m_originalPath = sourceAsset.RelativePath().c_str();
         newUuid.m_millisecondsSinceUnixEpoch = aznumeric_cast<AZ::u64>(QDateTime::currentMSecsSinceEpoch());
 
         return newUuid;
@@ -175,9 +175,9 @@ namespace AssetProcessor
         return AZ::Uuid::CreateRandom();
     }
 
-    AZStd::unordered_set<AZ::Uuid> UuidManager::CreateLegacyUuids(const AZStd::string& file)
+    AZStd::unordered_set<AZ::Uuid> UuidManager::CreateLegacyUuids(const AZStd::string& relativePath)
     {
-        return { AssetUtilities::CreateSafeSourceUUIDFromName(file.c_str()),
-                 AssetUtilities::CreateSafeSourceUUIDFromName(file.c_str(), false) };
+        return { AssetUtilities::CreateSafeSourceUUIDFromName(relativePath.c_str()),
+                 AssetUtilities::CreateSafeSourceUUIDFromName(relativePath.c_str(), false) };
     }
 } // namespace AssetProcessor

+ 1 - 1
Code/Tools/AssetProcessor/native/utilities/UuidManager.h

@@ -90,7 +90,7 @@ namespace AssetProcessor
         AZStd::string GetCanonicalPath(AZ::IO::PathView file);
         UuidEntry GetOrCreateUuidEntry(const SourceAssetReference& sourceAsset);
         AzToolsFramework::IMetadataRequests* GetMetadataManager();
-        UuidEntry CreateUuidEntry(const AZStd::string& file, bool enabledType);
+        UuidEntry CreateUuidEntry(const SourceAssetReference& sourceAsset, bool enabledType);
         AZ::Uuid CreateUuid();
         AZStd::unordered_set<AZ::Uuid> CreateLegacyUuids(const AZStd::string& file);