Skip to content

Commit

Permalink
[Fix] Dependencies not adding if none exist yet.
Browse files Browse the repository at this point in the history
  • Loading branch information
Gwindalmir committed Feb 1, 2022
1 parent 9b5d5c6 commit 7f6f8e6
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions WorkshopToolCommon/Uploader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,7 @@ void ProcessDependencies(IEnumerable<string> deps, IEnumerable<string> add, IEnu
{
// Remove ALL dependencies
depsToRemove.AddRange(existingDeps);
explicitDeps.Clear();
}
else if (existingDeps?.Count > 0)
{
Expand All @@ -451,15 +452,19 @@ void ProcessDependencies(IEnumerable<string> deps, IEnumerable<string> add, IEnu
}
}

// Remove from add/remove list any dependencies that don't exist, or aren't configured to set
depsToAdd.RemoveAll(d => existingDeps.Contains(d) || explicitDeps?.Contains(d) == true);
// Remove from add list any that already exist
depsToAdd.RemoveAll(d => existingDeps.Contains(d));
// Remove from remove list any dependencies that don't exist, or aren't configured to set
depsToRemove.RemoveAll(d => !existingDeps.Contains(d) && !(explicitDeps?.Contains(d) == true));

// Filter out items that aren't actually mods, these can crash the game if set
// Don't check depsToRemove though, so users can remove invalid ones that already exist
WorkshopHelper.GetItemsBlocking(explicitDeps).ForEach(i => { if (!CheckDependency(i)) explicitDeps.Remove(i.Id); });
WorkshopHelper.GetItemsBlocking(depsToAdd).ForEach(i => { if (!CheckDependency(i)) depsToAdd.Remove(i.Id); });

// Add all explicit deps to the add list that don't already exist
depsToAdd.AddRange(explicitDeps.Except(existingDeps));

m_deps = existingDeps.Union(explicitDeps ?? new List<ulong>()).Union(depsToAdd).Except(depsToRemove).Where(i => i != 0).Distinct().ToArray();
m_depsToAdd = depsToAdd.Distinct().ToArray();
m_depsToRemove = depsToRemove.Distinct().ToArray();
Expand Down

0 comments on commit 7f6f8e6

Please sign in to comment.