Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
bca3998
ModManagerUI rewrite
TobbyTheBobby Jan 31, 2024
24e67fa
FullModInfo reactive DownloadButton
TobbyTheBobby Feb 3, 2024
c5beb72
Another small bugfix related to the DownloadButton
TobbyTheBobby Feb 5, 2024
bcc4d36
CrashGuard ignores ModManager
TobbyTheBobby Feb 11, 2024
e9d96fa
Added Lock for getting ModFiles
TobbyTheBobby Feb 11, 2024
54b0be4
Download button is disabled on click
TobbyTheBobby Feb 11, 2024
acdb9dd
Skip dependencies that are already installed
TobbyTheBobby Feb 11, 2024
86e38c1
Small code improvement
TobbyTheBobby Feb 11, 2024
a51ef3d
Fixed minor mistake
TobbyTheBobby Feb 11, 2024
aba6028
ModManagerUI rewrite
TobbyTheBobby Jan 31, 2024
be7d4cb
FullModInfo reactive DownloadButton
TobbyTheBobby Feb 3, 2024
a431ad4
Another small bugfix related to the DownloadButton
TobbyTheBobby Feb 5, 2024
900a724
CrashGuard ignores ModManager
TobbyTheBobby Feb 11, 2024
5ea72dd
Added Lock for getting ModFiles
TobbyTheBobby Feb 11, 2024
874b9bf
Download button is disabled on click
TobbyTheBobby Feb 11, 2024
42e687c
Now immediately disabled DownloadButton
TobbyTheBobby Feb 11, 2024
798f67c
Skip dependencies that are already installed
TobbyTheBobby Feb 11, 2024
992fc12
Small code improvement
TobbyTheBobby Feb 11, 2024
b104105
Fixed minor mistake
TobbyTheBobby Feb 11, 2024
407e4ba
Immediately disable DownloadButton for full mod page
TobbyTheBobby Feb 11, 2024
82e72e7
Fixed capitalizing issue of CustomRadioButtonGroups
TobbyTheBobby Feb 11, 2024
66d0e9b
Fixed crash from quickly clicking download on ModCard and then ModFul…
TobbyTheBobby Feb 11, 2024
7f903c7
Added possibility of CompatibleGameVersions in File Metadata blob
TobbyTheBobby Feb 11, 2024
315af23
Fixed #57
TobbyTheBobby Feb 17, 2024
d078d68
Added config to disable CrashGuardSystem
TobbyTheBobby Feb 17, 2024
08d8bad
Small code improvement
TobbyTheBobby Feb 17, 2024
c45a5ae
Added ModManager registerer
TobbyTheBobby Feb 17, 2024
a1db8ef
Fixed an issue where DownloadButton is sometimes disabled when it sho…
TobbyTheBobby Feb 17, 2024
d57f4e8
Fixed #21
TobbyTheBobby Feb 17, 2024
b5ee3bb
Improvement to VersioningSystem
TobbyTheBobby Feb 18, 2024
8f75ee4
Improved disabling of CrashGuardSystem
TobbyTheBobby Feb 20, 2024
0bf354d
Improved regexes
TobbyTheBobby Feb 25, 2024
07b8d6b
Added on crash mod disabler
TobbyTheBobby Feb 25, 2024
b43857d
Added Enable and Disable all mods buttons
TobbyTheBobby Feb 25, 2024
4c2f5f5
Fix for #59
TobbyTheBobby Feb 27, 2024
5ca64e0
Enable and Disable all now updates ModCards
TobbyTheBobby Mar 12, 2024
9c6b2a7
Removed red text that sometimes happens
TobbyTheBobby Mar 12, 2024
8f96ede
Fixed CrashPanel not showing when CrashGuard is disabled
TobbyTheBobby Mar 12, 2024
c001075
Added changelogs
KYPremco Mar 12, 2024
6dc62d1
Compatibility update 6
TobbyTheBobby Jul 10, 2024
134a235
Fixed issue in Main Menu
TobbyTheBobby Jul 10, 2024
6767a08
Fixed some UI
TobbyTheBobby Jul 10, 2024
f74a54f
Fixed localization files
TobbyTheBobby Jul 10, 2024
865e6de
Added workshop_data.json
TobbyTheBobby Jul 10, 2024
6cad968
Fixed an issue related to extracting
TobbyTheBobby Jul 10, 2024
4914900
Fixed mods being enabled when they cannot
TobbyTheBobby Jul 10, 2024
22d5662
Version go up
TobbyTheBobby Jul 10, 2024
fd5fb09
Added Thumbnail
TobbyTheBobby Jul 10, 2024
16b1086
Fixed several issues
TobbyTheBobby Jul 12, 2024
2034102
Update 6 compatible version
TobbyTheBobby Nov 19, 2024
a1a36fc
Update 7
TobbyTheBobby Feb 9, 2025
27e606d
Version go up
TobbyTheBobby Feb 9, 2025
9911430
Updated to work on 1.0.6
normanr Dec 23, 2025
3ca4c64
Add updated project files
normanr Dec 30, 2025
33abee3
Fix enable state by using version specific mod directory to get the m…
normanr Dec 30, 2025
4ed2fa1
Preserve the enabled state when changing version
normanr Dec 30, 2025
3dee3cd
Fix clearing radio button groups by clicking on the active choice
normanr Dec 30, 2025
bd6f62b
Fix crash when parent process has already exited
normanr Dec 31, 2025
0a38596
Move player preference interfaces out of the UI layer
normanr Jan 1, 2026
b090857
Preserve a mod's priority when changing version
normanr Jan 1, 2026
bcc84bc
Make version comparison more permissive when punctuation is present
normanr Jan 1, 2026
e38014f
Version go up
normanr Jan 1, 2026
a90fff3
Don't try and fetch mod preferences for maps
normanr Jan 1, 2026
f1e110e
Refresh UI when mod version is changed
normanr Jan 1, 2026
7a848ed
Stop passing file separately and then mutating the mod object inside …
normanr Jan 1, 2026
1286859
Don't show maps when filtering by enabled state
normanr Jan 1, 2026
feea534
Remove unused files
normanr Jan 1, 2026
843e147
Fix compiler warnings from null analysis and unused variables
normanr Jan 1, 2026
e19af80
Fix filtering by multiple tags to be intersection to match how the mo…
normanr Jan 1, 2026
3fbfa6d
Version go up
normanr Jan 18, 2026
af5f471
Check hash of downloaded files
normanr Jan 18, 2026
dadb255
Improve exception handling of network errors
normanr Jan 20, 2026
e0e6dd1
Add support for network proxies
normanr Jan 25, 2026
af822d1
Use network proxy for images and downloads, switch to per-game host f…
normanr Jan 26, 2026
41111b7
Show download progress
normanr Jan 26, 2026
5f2ac84
Stop mutating the mod object during install, make a deep copy before …
normanr Jan 26, 2026
ca0309d
Fix NullReferenceException when searching while updatable mods are be…
normanr Jan 27, 2026
4fd80ec
Use stored radio button values so that when the dialog is reopened th…
normanr Jan 27, 2026
0bbe77f
Add license for ProgressStream
normanr Jan 28, 2026
c0b7dd7
Remove unused third party libraries
normanr Jan 28, 2026
f95380a
Update to latest upstream Modio
normanr Jan 28, 2026
a4e6b95
Embed debugging information into the files loaded by the game
normanr Jan 28, 2026
596c9e3
Include target resource in network error messages
normanr Feb 4, 2026
887dfd4
Add wildcard search on mod and submitter name
normanr Feb 4, 2026
8d9ac82
Use file id when determining version status
normanr Feb 5, 2026
7498d01
Refactor ModIo object registries to actually be async
normanr Feb 5, 2026
65eb572
Only run the game after a successful build
normanr Feb 5, 2026
45a09e9
Optionally refresh the mod list after fetching which mods can be updated
normanr Feb 5, 2026
9da36d0
Only look for manifests in the directory immediately within the Mods …
normanr Feb 5, 2026
481f937
Don't cache exceptions raised during network requests
normanr Feb 5, 2026
1883241
Fix typo in method name add logging of network errors
normanr Feb 5, 2026
351ef47
Add some context to mod error messages
normanr Feb 6, 2026
1cd6b71
Allow downloads to be canceled
normanr Feb 6, 2026
5808e74
Version go up
normanr Feb 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions ModManager/AddonEnableSystem/AddonEnablerException.cs

This file was deleted.

30 changes: 0 additions & 30 deletions ModManager/AddonEnableSystem/AddonEnablerRegistry.cs

This file was deleted.

42 changes: 0 additions & 42 deletions ModManager/AddonEnableSystem/AddonEnablerService.cs

This file was deleted.

11 changes: 0 additions & 11 deletions ModManager/AddonEnableSystem/IAddonEnabler.cs

This file was deleted.

30 changes: 0 additions & 30 deletions ModManager/AddonInstallerSystem/AddonInstallerRegistry.cs

This file was deleted.

38 changes: 27 additions & 11 deletions ModManager/AddonInstallerSystem/AddonInstallerService.cs
Original file line number Diff line number Diff line change
@@ -1,44 +1,60 @@
using Modio.Models;
using System.Collections.Generic;
using ModManager.AddonSystem;
using Timberborn.Modding;
using Mod = Modio.Models.Mod;

namespace ModManager.AddonInstallerSystem
{
public class AddonInstallerService : Singleton<AddonInstallerService>
public class AddonInstallerService
{
private readonly AddonInstallerRegistry _addonInstallerRegistry = AddonInstallerRegistry.Instance;
private readonly ModRepository _modRepository;

private readonly IEnumerable<IAddonInstaller> _addonInstallers;

public AddonInstallerService(ModRepository modRepository, IEnumerable<IAddonInstaller> addonInstallers)
{
_modRepository = modRepository;
_addonInstallers = addonInstallers;
}

public void Install(Mod mod, string zipLocation)
{
foreach (var installer in _addonInstallerRegistry.GetAddonInstallers())
foreach (var installer in _addonInstallers)
{
if (installer.Install(mod, zipLocation))
{
_modRepository.Load();

return;
}
}

throw new AddonInstallerException($"{mod.Name} could not be installed by any installer");
}

public void Uninstall(Manifest manifest)
public void Uninstall(ModManagerManifest modManagerManifest)
{
foreach (var installer in _addonInstallerRegistry.GetAddonInstallers())
foreach (var installer in _addonInstallers)
{
if (installer.Uninstall(manifest))
if (installer.Uninstall(modManagerManifest))
{
_modRepository.Load();

return;
}
}

throw new AddonInstallerException($"{manifest.ModName} could not be uninstalled by any installer");
throw new AddonInstallerException($"{modManagerManifest.ModName} could not be uninstalled by any installer");
}

public void ChangeVersion(Mod mod, File file, string zipLocation)
public void ChangeVersion(Mod mod, string zipLocation)
{
foreach (var installer in _addonInstallerRegistry.GetAddonInstallers())
foreach (var installer in _addonInstallers)
{
if (installer.ChangeVersion(mod, file, zipLocation))
if (installer.ChangeVersion(mod, zipLocation))
{
_modRepository.Load();

return;
}
}
Expand Down
17 changes: 0 additions & 17 deletions ModManager/AddonInstallerSystem/AddonRemovalService.cs

This file was deleted.

4 changes: 2 additions & 2 deletions ModManager/AddonInstallerSystem/IAddonInstaller.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ public interface IAddonInstaller
{
public bool Install(Mod mod, string zipLocation);

public bool Uninstall(Manifest manifest);
public bool Uninstall(ModManagerManifest modManagerManifest);

public bool ChangeVersion(Mod mod, File file, string zipLocation);
public bool ChangeVersion(Mod mod, string zipLocation);
}
}
Loading