mirror of
https://github.com/SteamAutoCracks/DepotDownloaderMod.git
synced 2026-02-12 04:40:56 +01:00
50 lines
1.3 KiB
C#
50 lines
1.3 KiB
C#
// This file is subject to the terms and conditions defined
|
|
// in file 'LICENSE', which is part of this source code package.
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace DepotDownloader
|
|
{
|
|
static class DepotKeyStore
|
|
{
|
|
private static Dictionary<uint, byte[]> depotKeysCache = new Dictionary<uint, byte[]>();
|
|
|
|
public static void AddAll(string[] values)
|
|
{
|
|
foreach (string value in values)
|
|
{
|
|
string[] split = value.Split(';');
|
|
|
|
if (split.Length != 2)
|
|
{
|
|
throw new FormatException($"Invalid depot key line: {value}");
|
|
}
|
|
|
|
depotKeysCache.Add(uint.Parse(split[0]), StringToByteArray(split[1]));
|
|
}
|
|
}
|
|
|
|
private static byte[] StringToByteArray(string hex)
|
|
{
|
|
return Enumerable.Range(0, hex.Length)
|
|
.Where(x => x % 2 == 0)
|
|
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
|
|
.ToArray();
|
|
}
|
|
|
|
public static bool ContainsKey(uint depotId)
|
|
{
|
|
return depotKeysCache.ContainsKey(depotId);
|
|
}
|
|
|
|
public static byte[] Get(uint depotId)
|
|
{
|
|
return depotKeysCache[depotId];
|
|
}
|
|
|
|
|
|
}
|
|
}
|