Commit graph

22 commits

Author SHA1 Message Date
Pat Hartl
414f728181 Inherit IKeyedModel, restrict ManifestHelper.Write to only manifests 2025-12-04 23:43:25 -06:00
Pat Hartl
4968481460 Standardize YAML serializers 2025-10-06 19:23:49 -05:00
Pat Hartl
d875377f15 Rename SDK services -> clients, implement new configuration, use dependency injection for clients 2025-09-24 20:58:23 -05:00
Pat Hartl
d75095aa64 Simplify importer DI, start laying out import dialog 2025-04-10 19:45:41 -05:00
Pat Hartl
f3708b4f3c Refactor redistributable installation
- Install now extracts the redistributable archive to the game's `.lancommander` directory, under a directory matching the redist's ID
- Scripts are downloaded and saved to the same location
- BeforeStart, AfterStop, and NameChange scripts are now available for redistributables
- Change manifest reading/writing to use async
2025-01-30 23:57:12 -06:00
Pat Hartl
781b77f930 Move SDK services to separate namespace 2024-10-04 23:39:07 -05:00
Pat Hartl
e3b238e3f0 Refactor game launching
Changes to game launching:
- Games can now be launched using the SDK
- Games can be stopped by the SDK
- Running games are tracked by the SDK
- Game state in play buttons are now tracked by polling SDK game service
- Library service no longer controls any launching/stopping/tracking
- Actions now are keyed in the manifest
- Game launching occurs in a GameExecutionContext
- Game launching variables have been consolidated
2024-08-26 20:18:54 -05:00
Pat Hartl
d5d3c0b9c6 Fix app crashing if installed game's files are removed 2024-08-08 18:28:33 -05:00
Pat Hartl
7c54228d75 Ignore unmatched properties when deserializing manifests 2024-05-13 18:41:40 -05:00
Pat Hartl
b74bbf47b0 Fix location of extracted manifest from saves 2024-01-25 21:24:35 -06:00
Pat Hartl
b9335ebebb Make manifest helper methods generic 2024-01-15 17:45:39 -06:00
Pat Hartl
d955f080b7 Refactored uninstall to only remove files/directories that came from the original install 2024-01-10 01:59:51 -06:00
Pat Hartl
a8ed46bff7 Change location of all metadata/script files in install directory
In order to support mods and expansions, there needs to be another place to hold game scripts and the manifest. These have been moved to the {InstallDir}\.lancommander\{GameId} directory.
2024-01-09 01:22:56 -06:00
Pat Hartl
9a1dc652a2 Added the ability to export/import most game information 2023-12-14 19:09:00 -06:00
Pat Hartl
7c22aaa139 Record save file paths in manifest. Support regex pathing in upload 2023-11-30 18:25:37 -06:00
Pat Hartl
39dd24e0ba Don't run through download if game already exists on disk 2023-11-17 11:48:45 -06:00
Pat Hartl
dc2eff4972 Have manifest writer return the file path 2023-11-13 23:07:50 -06:00
Pat Hartl
ea337dfea1 Feed actual YAML contents to deserializer 2023-11-10 21:37:27 -06:00
Pat Hartl
52a5f5866f Downgrade YamlDotNet 2023-11-10 21:37:02 -06:00
Pat Hartl
5237e88612 Null handling for logger 2023-11-10 20:53:28 -06:00
Pat Hartl
73b542856a Refactor GameSaveService into GameSaveManager and SaveController. Update Playnite addon authentication dialogs to use new client. 2023-11-10 01:32:30 -06:00
Pat Hartl
39f2d4b212 Move methods that should be static to ManifestHelper and ScriptHelper. Move install logic to GameManager and RedistributableManager. Update InstallController and UninstallController 2023-11-10 00:29:16 -06:00