diff --git a/Facepunch.Steamworks/Structs/UgcItem.cs b/Facepunch.Steamworks/Structs/UgcItem.cs index fb63898..66a1f6e 100644 --- a/Facepunch.Steamworks/Structs/UgcItem.cs +++ b/Facepunch.Steamworks/Structs/UgcItem.cs @@ -42,7 +42,7 @@ namespace Steamworks.Ugc /// /// A dictionary of key value tags for this item, only available from queries WithKeyValueTags(true) /// - public Dictionary KeyValueTags { get; internal set; } + public Dictionary> KeyValueTags { get; internal set; } /// /// App Id of the app that created this item diff --git a/Facepunch.Steamworks/Structs/UgcResultPage.cs b/Facepunch.Steamworks/Structs/UgcResultPage.cs index 03399b5..c3a7636 100644 --- a/Facepunch.Steamworks/Structs/UgcResultPage.cs +++ b/Facepunch.Steamworks/Structs/UgcResultPage.cs @@ -57,12 +57,20 @@ namespace Steamworks.Ugc { var keyValueTagsCount = SteamUGC.Internal.GetQueryUGCNumKeyValueTags( Handle, i ); - item.KeyValueTags = new Dictionary( (int)keyValueTagsCount ); + item.KeyValueTags = new Dictionary>( (int)keyValueTagsCount ); for ( uint j = 0; j < keyValueTagsCount; j++ ) { string key, value; if ( SteamUGC.Internal.GetQueryUGCKeyValueTag( Handle, i, j, out key, out value ) ) - item.KeyValueTags[key] = value; + { + if ( !item.KeyValueTags.TryGetValue( key, out List list ) ) + { + list = new List(); + item.KeyValueTags[key] = list; + } + + list.Add(value); + } } } @@ -131,4 +139,4 @@ namespace Steamworks.Ugc } } } -} \ No newline at end of file +}