4 using System.Threading.Tasks;
13 public bool Ready {
get;
private set; } =
false;
22 ContentPackageManager.EnabledPackages.All
23 .Where(p => p != ContentPackageManager.VanillaCorePackage && p.HasMultiplayerSyncedContent)
27 var innermostException = t.Exception?.GetInnermost();
28 if (innermostException != null)
30 DebugConsole.ThrowError($
"An error occurred when compressing mods", innermostException);
42 : $
"Workshop_{mod.Name}_{(mod.UgcId.TryUnwrap(out var ugcId) ? ugcId.ToString() : "NULL
")}";
43 resultFileName = ToolBox.RemoveInvalidFileNameChars(resultFileName.Replace(
'\\',
'_').Replace(
'/',
'_'));
44 resultFileName = $
"{resultFileName}{Extension}";
45 return Path.Combine(UploadFolder, resultFileName);
52 SaveUtil.CompressDirectory(dir, GetCompressedModPath(mod));
55 private void DeleteDir()
57 if (Directory.Exists(UploadFolder)) { Directory.Delete(UploadFolder, recursive:
true); }
60 public bool IsDisposed {
get;
private set; } =
false;
const string LocalModsDir
const string UploadFolder
static string GetCompressedModPath(ContentPackage mod)
async Task CompressMod(ContentPackage mod)