Commit Graph

361 Commits

Author SHA1 Message Date
Justin Swanson
5bd856a7c6 Utils async -> sync methods removed 2019-12-07 00:40:29 -06:00
Justin Swanson
e9deda9f44 Large swap to make WorkQueue able to take Task work items 2019-12-06 22:47:49 -06:00
Justin Swanson
f2014a1da3 WorkQueue.Threads now static 2019-12-06 20:05:50 -06:00
Justin Swanson
03c88b0f38 Removed some Shutdown/Terminate functions in favor of Dispose 2019-12-06 20:04:42 -06:00
Justin Swanson
caadbb0aee Removed abort call from WorkQueue 2019-12-06 19:04:39 -06:00
Timothy Baldridge
a8a344d4be Added libCef, hooked it into a WPF window. Made NexusAPI raise a message. Implemented encrypted caching routines. 2019-12-06 17:13:16 -07:00
Timothy Baldridge
822236de8c
Merge pull request #238 from wabbajack-tools/exceptions-as-data
Exceptions as data
2019-12-05 22:27:59 -07:00
Timothy Baldridge
56371b47ce
Merge pull request #235 from erri120/more-vortex-fixes
More Vortex Fixes
2019-12-05 21:06:02 -07:00
Justin Swanson
a0214d4cbe WorkQueue.Messages removed (for now) 2019-12-04 23:26:15 -06:00
Justin Swanson
b1ebd3c362 Removed IUserIntervention.Resume 2019-12-04 23:14:40 -06:00
Justin Swanson
760461ab3e Made lots of error classes members public gets 2019-12-04 23:11:15 -06:00
Justin Swanson
e946fc7ea4 Made Utils.LogToFile private. Removed ExceptionToString 2019-12-04 23:07:44 -06:00
Justin Swanson
bf87746e69 Utils.ErrorThrow added for when wanting to throw the exception 2019-12-04 22:58:02 -06:00
Justin Swanson
2c47f54752 IException, GenericException
Adds ability to wrap an existing exception and push it through the pipe
2019-12-04 22:57:05 -06:00
Timothy Baldridge
f67a235274 Logs and exceptions as classes 2019-12-04 16:17:02 -07:00
erri120
bc8dc65f29
Archives tagged with WABBAJACK_VORTEX_MANUAL will now be correctly detected and added to the modlist 2019-12-04 13:36:56 +01:00
erri120
036572f7db
Fixed SteamHandler Directory not found exception 2019-12-04 11:02:47 +01:00
Justin Swanson
ae05eb90d4 Ignore warning CS1998, mark CS4014 as error 2019-12-03 18:59:53 -06:00
Justin Swanson
299ee0041d Removed vestigial Utils status subject 2019-12-03 17:49:59 -06:00
Justin Swanson
17c38b897c Made some WorkQueue members non-static 2019-12-03 17:49:56 -06:00
Justin Swanson
4945f95066 PMap return swapped to array 2019-12-03 17:49:52 -06:00
Justin Swanson
0dc0c11e9f Filepicker bugfix for it not opening to current selected file/folder 2019-12-02 23:38:14 -06:00
Justin Swanson
1a5e052aef Install config no longer breaks if pointed to bad modlist 2019-12-02 23:38:06 -06:00
erri120
f4b3ba9a72
Created GetBySteamID function for the GameRegistry 2019-12-02 17:43:05 +01:00
erri120
694a5b8f8d
.exe files can be extracted with innounp after being tested 2019-12-01 14:57:28 +01:00
erri120
5bf73e637a
Re-added innounp 2019-12-01 13:22:23 +01:00
Timothy Baldridge
fa9431b001 Join threads after aborting in work queue 2019-11-30 14:57:59 -07:00
Timothy Baldridge
86733dd0f5
Merge pull request #221 from Noggog/mode-selection-browser-revamp
Mode-Selection and Browser Revamp
2019-11-30 06:09:53 -07:00
erri120
c15ab95517
SteamHandler: added LoadWorkshopItems function 2019-11-30 12:20:26 +01:00
erri120
7d9c80aef3
SteamHandler will skip broken acf files 2019-11-30 11:31:41 +01:00
Justin Swanson
107527311d Resource loading fixes 2019-11-29 17:56:56 -06:00
Timothy Baldridge
3ea10777e0 Switched CPU status into a blue-color-in-the-background style progress bar. Removed "CPU X" in the status, filter CPU lists to only contain non "Waiting" status 2019-11-28 10:30:19 -07:00
Timothy Baldridge
23a2f5e50f
Merge pull request #212 from wabbajack-tools/better-progress-bars
Macro-level progress bar updates.
2019-11-24 17:22:30 -07:00
Timothy Baldridge
3976d7e526 Macro-level progress bar updates. 2019-11-24 16:03:36 -07:00
Justin Swanson
5533b14cda Initial one-window setup 2019-11-24 16:01:13 -06:00
Justin Swanson
ece11e9f41 Compiler-side progress bars wired up again 2019-11-23 21:17:38 -06:00
erri120
899c7e4966
Downgraded ReactiveUI to 10.5.30 2019-11-23 19:50:56 +01:00
Timothy Baldridge
2afcb83456 Switch directory deleting back to use a shell process. It's the only 100% reliable method I've found. 2019-11-23 10:37:24 -07:00
erri120
bd13d15a81
Updated dependencies of main projects 2019-11-23 17:03:02 +01:00
erri120
b5871a3468
Updated all main projects to .NET 4.8.0 2019-11-23 16:50:09 +01:00
erri120
0b958f5f9b
Changed all relative references to use SolutionDir 2019-11-23 16:47:05 +01:00
Timothy Baldridge
d636d06ced Added extensions to the game enum, fixed the cache server (again) 2019-11-22 15:00:34 -07:00
Timothy Baldridge
8a680a8f14 Several fixes for compilation and caching. 2019-11-21 22:19:42 -07:00
Timothy Baldridge
0ddcaa8241 Fix bug in time conversion, implement update endpoint for nexus cache 2019-11-21 17:41:01 -07:00
Timothy Baldridge
1ee439c7c1 Better selection of patch file sources 2019-11-21 14:32:58 -07:00
erri120
4eec277955
Fixed naming in Wabbajack.Common 2019-11-21 16:49:14 +01:00
erri120
7583703239
Simplified names in Wabbajack.Common 2019-11-21 16:04:48 +01:00
erri120
a31ea20657
Removed unused imports from Wabbajack.Common 2019-11-21 15:26:08 +01:00
erri120
97b7524030
Created READMEs for most projects 2019-11-21 15:11:08 +01:00
Timothy Baldridge
7188a926af Cache disk speeds for better performance 2019-11-20 17:04:01 -07:00
Timothy Baldridge
27964f0348 Set the queue size during installation based on the disk performance. Abort installation if there isn't enough disk space to perform the installation. 2019-11-20 16:39:03 -07:00
Timothy Baldridge
a8d8d20a99 Several fixes that came up during testing.
* Fixed hashing progress bars
* Wired up the CPUStatus to the UI during installation
* Fixed xxHashing
* Verified modlist optimization works on a real modlist (noise)
* Added an optimizer test for extra files created by the user left in the install directory.
2019-11-19 17:15:46 -07:00
Timothy Baldridge
549d32579c
Merge pull request #190 from erri120/add-morrowind
Re-added Morrowind
2019-11-18 14:42:23 -07:00
erri120
fbb90d698e
Re-added Morrowind 2019-11-18 20:31:55 +01:00
erri120
bb2661f968
Changed ToDescriptionString to return toString if no description is present 2019-11-18 18:06:17 +01:00
Timothy Baldridge
0c78680c09 Abstract the base components of compilers/installers into a single abstract class 2019-11-17 16:48:32 -07:00
erri120
ed2a6c5592
Updated GOGHandler with new check for RequiredFiles 2019-11-17 15:00:40 +01:00
erri120
76db3cafea
Fixed typo 2019-11-17 15:00:40 +01:00
erri120
1e303a8339
Added RequiredFiles property to GameMetaData 2019-11-17 15:00:39 +01:00
erri120
e9a3030c91
Removed Morrowind from Game enum 2019-11-17 15:00:37 +01:00
erri120
e845f767e6
Fixed LoadAllGames failing when no GOGIDs List exist 2019-11-17 15:00:37 +01:00
Timothy Baldridge
702de2cfbe
Merge pull request #183 from Noggog/some-styling
Some Styling
2019-11-17 06:56:05 -07:00
Justin Swanson
856d19ec4e Removed weird ReactiveUI reference
Seemed to have a weird hardwired DLL reference, in addition to the NuGet
2019-11-17 01:51:10 -06:00
Justin Swanson
cafba5ff81 FilePickerVM ExistCheckOption /w IfNotEmpty features
Some paths aren't an error condition when the path is completely empty
2019-11-17 01:05:27 -06:00
Timothy Baldridge
2e2ced6023 Updated work queue reporting 2019-11-16 23:02:09 -07:00
Timothy Baldridge
d92d05dbf8 Merge remote-tracking branch 'origin/master' into compiler-update-streams 2019-11-16 21:16:51 -07:00
Timothy Baldridge
baab601f09 Rework Work queue to be non-static 2019-11-16 21:16:42 -07:00
Justin Swanson
4978e55e04 VortexCompilerVM staging and downloads picker wiring 2019-11-16 21:09:46 -06:00
Justin Swanson
dec8707ff2 Vortex Compilation game folder location commands 2019-11-16 19:42:42 -06:00
Justin Swanson
228bb3d070 VortexCompiler game selection combobox work 2019-11-16 18:41:59 -06:00
Timothy Baldridge
11cd96693a Compiles, working through the tests 2019-11-15 17:01:37 -07:00
Timothy Baldridge
4ffb533bc0
Merge pull request #174 from Noggog/random-refactors
Random refactors
2019-11-15 05:23:01 -07:00
Justin Swanson
deafaf5ebd Adjusted Game enum capitalization
C# standard is camel case, and the other enum values were that way, too.  KOTOR kept as is, as it's an acronym
2019-11-14 23:45:43 -06:00
Justin Swanson
9f86f3466d Made GameMetaData Games dictionary readonly 2019-11-14 23:43:58 -06:00
Justin Swanson
52517dc3e4 Some compiler VM startup optimizations 2019-11-14 22:59:12 -06:00
Justin Swanson
b31f336ddb Lots of compiler backend changes to support multiple
CompilerVM is lightweight now, with sub view models per mod manager mode
2019-11-14 20:25:09 -06:00
Timothy Baldridge
490bd4de5a Fix tests 2019-11-14 15:58:29 -07:00
erri120
82e93e04d1 Added Witcher 1,2,3 to GameMetaData 2019-11-14 15:34:11 -07:00
erri120
8f9a27d8f5 Changed int GOGID to List<int> GOGIDs for multiple id support 2019-11-14 15:34:11 -07:00
erri120
8ef41beb59 Added SWKOTOR and SWKOTOR2 to GameMetaData 2019-11-14 15:34:11 -07:00
erri120
12d4e2acda Added Starbound to GameMetaData 2019-11-14 15:34:11 -07:00
erri120
8309592ed2 Added Divinity Orginal Sins 2 Definitive Edition to GameMetaData 2019-11-14 15:34:11 -07:00
erri120
1d35bf5ed1 Created AdditionalFolders property 2019-11-14 15:34:11 -07:00
erri120
b02d9b50a2 Added Divinity Original Sins 2 to the Games list 2019-11-14 15:34:11 -07:00
erri120
2a92131025 Created GetByNexusName function for the GameRegistry 2019-11-14 15:34:10 -07:00
erri120
6062088681 Removed unused imports 2019-11-14 15:34:10 -07:00
erri120
de40b8ce32 Added GOGID property 2019-11-14 15:34:10 -07:00
erri120
ccafda79b2 Created GOG Handler 2019-11-14 15:34:10 -07:00
erri120
8de6c9d239 Fixed bad steam lib paths 2019-11-14 15:34:10 -07:00
erri120
2044a6728a Created SteamHandler 2019-11-14 15:34:10 -07:00
erri120
2497d5ba88 Added Steam ids 2019-11-14 15:34:10 -07:00
erri120
18a36437bc Added supported mod manager and Darkest Dungeon 2019-11-14 15:34:10 -07:00
erri120
dae96640d8 Created ModManager enum, moved enums to Wabbajack.Common 2019-11-14 15:34:10 -07:00
Timothy Baldridge
133fa2febd
Async VFS Implementation (#171)
* New VFS implementation can load/save/analyze files. All in a immutable, lock free (mostly) async parallel manner.

* VFS indexing is complete

* Can stage files

* Can extract VirtualFiles into PortableFiles and create contexts from PortableFiles

* Code cleanup
2019-11-14 15:22:53 -07:00
Timothy Baldridge
0cb6f2fa69 Make File Extractor async 2019-11-11 22:33:32 -07:00
Timothy Baldridge
d9ca38cdff
Make BSA Routines async (#168)
* Make BSA routines async
2019-11-11 21:35:07 -07:00
Timothy Baldridge
1ad74b450e
Merge pull request #166 from wabbajack-tools/bsa-tests
Add unit tests for BSAs
2019-11-11 06:17:48 -07:00
Timothy Baldridge
c6953bb42d
Merge pull request #165 from wabbajack-tools/async-work-queue
Async work queue
2019-11-11 06:17:36 -07:00
Timothy Baldridge
c3daf2b1bc Add unit tests for BSAs 2019-11-10 23:15:52 -07:00
Timothy Baldridge
35897bbf92 cleanup 2019-11-10 21:10:26 -07:00
Timothy Baldridge
e61b203d4c Final bits for CSP backend 2019-11-10 20:47:25 -07:00
Timothy Baldridge
e164d7a8bf Change exception printing, and unset read-only during move. 2019-11-10 16:03:10 -07:00
Timothy Baldridge
6639e9946b Other variants of pipelines 2019-11-10 15:36:04 -07:00
Timothy Baldridge
f66427c2ea Add a bunch of unit tests fixed a nasty race condition in the put/take handlers 2019-11-10 15:15:52 -07:00
Justin Swanson
bf9c315a2f RxExt.Invert 2019-11-09 19:26:58 -06:00
Justin Swanson
5b4cb1fa89 CompilerVM: Modlist file picker shows errors if not in MO2 directory 2019-11-09 19:20:30 -06:00
Timothy Baldridge
e9c2ababec More deadlock bugfixes 2019-11-09 17:22:28 -07:00
Timothy Baldridge
081dea2368 Fix channel closing, add unordered pipeline 2019-11-09 14:29:55 -07:00
Timothy Baldridge
f8c7144071
Merge pull request #159 from erri120/game-handler
Better Game Handlers
2019-11-09 14:07:30 -07:00
Timothy Baldridge
67dfaa3581 Refactored to use ValueTask and lazy task creation 2019-11-09 07:49:00 -07:00
erri120
83807a56b8
Added null check to GetByMO2ArchiveName 2019-11-09 15:40:50 +01:00
erri120
467cfc47a0
Removed Morrowind from the Games list 2019-11-09 15:40:14 +01:00
erri120
36867a4806
MO2ArchiveName will be lowercase when comparing in GetByMO2ArchiveName 2019-11-09 15:25:29 +01:00
erri120
7f0129e83b
Changed Oblivion MO2ArchiveName to lowercase 2019-11-09 15:21:31 +01:00
erri120
9060c6a947
Created SteamHandler 2019-11-09 14:49:57 +01:00
erri120
662315a7bb
Created GOGHandler 2019-11-09 14:49:33 +01:00
Timothy Baldridge
a59e39deaa WIP channels 2019-11-08 23:37:05 -07:00
Timothy Baldridge
2fb857a093 Unify caching to reduce the number of Nexus calls on the build server 2019-11-07 18:36:01 -07:00
Timothy Baldridge
e518f31a71 Enable guidence for users to download manual files. 2019-11-06 16:52:48 -07:00
Justin Swanson
fa504a1b16 DictionaryExt. Other Ext files migrated to Common 2019-11-05 19:39:18 -06:00
Timothy Baldridge
2d497c4c7d Fix tests 2019-11-05 15:30:05 -07:00
Timothy Baldridge
3d9cf4cc65 Rework Nexus API caching logic to use build server cache 2019-11-05 15:21:07 -07:00
Timothy Baldridge
c43bcc7d89 wip 2019-11-05 15:21:07 -07:00
Timothy Baldridge
6ab49e380c Add modlist validation tests. 2019-11-05 15:21:07 -07:00
Timothy Baldridge
6a93e4eca7
Merge pull request #149 from Noggog/WorkQueue-Utils-Rx
WorkQueue and Utils Rx instead of callbacks
2019-11-04 22:30:05 -07:00
Justin Swanson
9051d28822 WorkQueue and Utils Rx instead of callbacks
Swapped the callback registration systems for Rx subjects exposing observables
2019-11-04 22:17:43 -06:00
erri120
df74b34754
Merge pull request #147 from erri120/ignore-case-esm
Made string comparisons for GameESMs case insenitive
2019-11-04 19:14:42 +01:00
erri120
557e443685
Made string comparisons for GameESMs case insenitive 2019-11-04 19:12:53 +01:00
LivelyDismay
46bdc63e46
Update Consts.cs
Change uppercase to lowercase on two esm names to match vanilla file names.
2019-11-04 12:57:19 -05:00
Justin Swanson
d872823d7a Utils.Is(File/Directory)PathValid 2019-11-02 21:23:59 -06:00
Justin Swanson
2dc47d5ec8 Ported some Error/Hash systems from Noggog/CSharpExt 2019-11-02 21:13:14 -06:00
Justin Swanson
ecb789d088 Merge remote-tracking branch 'wabbajack-tools/master' into VM-split-and-styling 2019-11-02 18:41:37 -05:00
Justin Swanson
422fde257b Merge remote-tracking branch 'wabbajack-tools/master' into XAML-IDE-Featureset 2019-11-02 18:31:21 -05:00
Justin Swanson
12daa32d4e All projects migrated to PackageReferences nuget systems 2019-11-02 17:57:51 -05:00
Timothy Baldridge
51d1b32077 finish up zedit integration 2019-11-02 09:38:03 -06:00
erri120
750dd6f7aa
Fixed bad LINQ expression 2019-11-01 12:06:12 +01:00
erri120
fa51cd4d69
Moved IsMO2Running to Utils.cs, added check for MO2 inside the selected profile folder 2019-11-01 11:56:29 +01:00
erri120
ee2ea4acc0
ExtensionManager: Removed unused argument 2019-10-31 12:14:14 +01:00
Timothy Baldridge
610fea9d7f use xxHash64 hasing 2019-10-30 21:40:33 -06:00
Timothy Baldridge
6c79d0a9d2 Merge branch 'master' of https://github.com/halgari/wabbajack into programmable-stack 2019-10-30 20:25:14 -06:00
Timothy Baldridge
0151b219bf dump stack info to disk and load it during compilation 2019-10-30 20:24:42 -06:00
Timothy Baldridge
82bedf0807 fix boolean logic 2019-10-30 14:27:44 -06:00
erri120
a12faee21e
ExtensionManager: Added NeedsUpating function 2019-10-30 18:19:37 +01:00
erri120
7c3f92ecc9
ExtensionManager: Cleanup and refactoring 2019-10-30 17:49:46 +01:00
erri120
39fc9eba9d
ExtensionManager: Changed PerceivedType to Compresed instead of Archive 2019-10-30 17:49:46 +01:00
erri120
cd9e11045e
Fixed win8FileReg key not being updated 2019-10-30 17:49:46 +01:00
erri120
c676aed591
ËxtensionManager: Added IsAssociationOutdated function 2019-10-30 17:49:45 +01:00
erri120
746837cf26
ExtensionManager: Made path static readonly strings in class 2019-10-30 17:49:45 +01:00
erri120
593902f191
Code cleanup and added nullcheck 2019-10-30 17:49:45 +01:00
erri120
4cfbd14002
Added iconPath and appPath as arguemnts for AssociateExtension 2019-10-30 17:49:45 +01:00