Commit ef8d6d5
authored
Intrinsic files (#3894)
* Add intrinsic file support for Fallout 4 and Skyrim SE synchronizers (#3830)
* Add intrinsic file handling for Skyrim SE and Fallout 4 synchronizers, refactor `Write` method to remove unused transaction parameter, and extend plugin file handling logic.
* Refactor `KnownPaths` to use target-typed `new` and add missing `using` directive in `PluginsFile`.
* Add stream source architecture with prioritization and improve plugin file handling
- Introduced `IReadOnlyStreamSource`, `IStreamSourceDispatcher`, and `SourcePriority` to enable prioritized, read-only stream sources.
- Implemented `NxFileStore`, `GameFileStreamSource`, and `StreamSourceDispatcher` to handle stream retrieval by source type.
- Refactored `PluginsFile` to include sorting logic and enhanced plugin dependency handling.
- Updated `ACreationEngineSynchronizer` constructor to support the new stream architecture.
* Refactor stream handling and remove `IFileStore` from SkyrimSE, Fallout 4, and PluginFile implementations
- Replaced `IFileStore` usage with `IStreamSourceDispatcher` for streamlined and prioritized stream access.
- Updated synchronizers and constructors for SkyrimSE and Fallout 4 to reflect the new stream architecture.
- Enhanced `PluginsFile.Write` logic to generate dynamic plugin lists, removed unused `transaction` parameter, and added intrinsic file support.
- Refactored error handling and conditions in `NxFileStore` and `GameFileStreamSource`.
* WIP updating the syncronizer code to support file types
* Expand ActionMapping to support additional shorthand variants
* Add handling for intrinsic file actions in synchronizer rules
- Introduced `WriteIntrinsic` and `AdaptLoadout` actions for intrinsic file types.
- Updated test cases to validate intrinsic file scenarios.
- Refactored `ActionMapping` to correctly map actions for intrinsic files.
- Adjusted flag ordering in `Actions` enum to ensure proper action sequence.
* Add `AdaptLoadout` and `WriteIntrinsic` actions for intrinsic files
- Implemented handling for `AdaptLoadout` and `WriteIntrinsic` actions in synchronizers.
- Updated tests to cover intrinsic file scenarios and associated validations.
- Enhanced `PluginsFile` with intrinsic file handling and logging.
- Adjusted `ActionMapping` to correctly map shorthand to new actions.
* Ensure directories exist before writing resolved paths and add `WriteIntrinsic` action validation
- Added directory creation for resolved paths in synchronizers to avoid file write failures.
- Implemented validation for `WriteIntrinsic` action in debug mode.
- Prevented empty plugin lists from being sorted in `PluginsFile` logic.
* Remove redundant signature shorthand cases
- Reduced signature count from 276 to 256 in verified output.
* Refactor `IntrinsicFiles` to use `Dictionary` for improved lookup efficiency and update related logic.
* Refactor `IntrinsicFiles` to a method and update synchronization logic for improved flexibility and context handling.1 parent 4974ab3 commit ef8d6d5
File tree
28 files changed
+2717
-734
lines changed- src
- NexusMods.Abstractions.GameLocators
- NexusMods.Abstractions.Loadouts.Synchronizers
- Rules
- NexusMods.DataModel
- NexusMods.Games.CreationEngine
- Abstractions
- Fallout4
- SkyrimSE
- NexusMods.Sdk/FileStore
- tests/NexusMods.DataModel.Tests
28 files changed
+2717
-734
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
55 | 65 | | |
56 | 66 | | |
57 | 67 | | |
| |||
Lines changed: 94 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
333 | 333 | | |
334 | 334 | | |
335 | 335 | | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
336 | 358 | | |
337 | 359 | | |
338 | 360 | | |
| |||
526 | 548 | | |
527 | 549 | | |
528 | 550 | | |
529 | | - | |
| 551 | + | |
| 552 | + | |
530 | 553 | | |
531 | 554 | | |
532 | 555 | | |
| |||
560 | 583 | | |
561 | 584 | | |
562 | 585 | | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
563 | 591 | | |
564 | 592 | | |
565 | 593 | | |
| |||
570 | 598 | | |
571 | 599 | | |
572 | 600 | | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
573 | 606 | | |
574 | 607 | | |
575 | 608 | | |
| |||
583 | 616 | | |
584 | 617 | | |
585 | 618 | | |
586 | | - | |
| 619 | + | |
587 | 620 | | |
588 | 621 | | |
589 | 622 | | |
| |||
615 | 648 | | |
616 | 649 | | |
617 | 650 | | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
618 | 690 | | |
619 | 691 | | |
620 | 692 | | |
| |||
739 | 811 | | |
740 | 812 | | |
741 | 813 | | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
742 | 824 | | |
743 | 825 | | |
744 | 826 | | |
| |||
1849 | 1931 | | |
1850 | 1932 | | |
1851 | 1933 | | |
| 1934 | + | |
| 1935 | + | |
| 1936 | + | |
| 1937 | + | |
| 1938 | + | |
| 1939 | + | |
| 1940 | + | |
| 1941 | + | |
| 1942 | + | |
| 1943 | + | |
1852 | 1944 | | |
1853 | 1945 | | |
1854 | 1946 | | |
| |||
Lines changed: 22 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
29 | 36 | | |
30 | 37 | | |
31 | 38 | | |
| |||
0 commit comments