Releases: erri120/GameFinder
Releases · erri120/GameFinder
Release 2.4.0
Although this release contains some API changes and a lot of internal changes, consumers will likely not be affected.
- Core:
AHandler.FindAllGamesById
now returnsIDictionary<>
instead ofDictionary<>
- Core: changed
Result<TGame>
from a record struct to a custom readonly struct - Steam: added
SteamGame.GetManifestPath
that returns the absolute path to the parsed manifest. This is useful if you need to extract more information from the manifest, after the game has been found. - Internal: restructured the project and reworked all tests
Release 2.3.0
- Steam: added
~/.steam
and~/.local/.steam
as possible default Steam directories on Linux - Steam: added constructor that accepts a custom Steam path in case the library can't find it
- upgrade to C# 11
- upgrade
System.IO.Abstractions
to v19.1.1
Release 2.2.2
FindAllGamesById
will no longer throw an exception for duplicate IDs
Release 2.2.1
Small update that changes the equality comparer of the dictionary returned by EGSHandler.FindAllGamesById
and OriginHandler.FindAllGamesById
to StringComparer.OrdinalIgnoreCase
.
Release 2.2.0
This update adds some utility functions you can use. I've also created a new package GameFinder.Common
where all those new utility functions live:
- added
AHandler
an abstract class that all store handlers inherit:AHandler.FindAllGames
: same function as beforeAHandler.FindAllGamesById
: wrapsFindAllGames
and returns aDictionary<TId, TGame>
AHandler.FindOneGameById
: if you just need to find 1 game
- added some extension methods that work with
IEnumerable<Result<TGame>> results
:IEnumerable<TGame> OnlyGames
: returns only non-null games and discards the restIEnumerable<string> OnlyErrors
: returns only non-null errors and discards the rest(TGame[] games, string[] errors) SplitResults
: splits the results into two arrays
Release 2.1.0
Minor update after the major rework:
- everything was made safer and less functions will throw (you should still wrap the
FindAllGames
function call) - API changed a bit:
FindAllGames
will now return a readonly record struct instead of a named tuple - lots of internal changes and more tests
Release 2.0.1
- Origin: fix parsing manifests with duplicate key-value entries
Release 2.0.0
Major rework of all packages:
- removed
netstandard2.1
target - added
net7.0
target - added
IRegistry
interface withWindowsRegistry
andInMemoryRegistry
implementations - added runtime platform check in all packages
- deprecated the Bethesda.net and Xbox packages (see README for more information)
- removed logging from all packages
- removed the
GameFinder
package (it's not needed anymore) - simplified the public APIs
Release 1.8.0
- Fix SteamHandler not finding any Libraries when there are no external libs
- Remove .NET 5 target
- Upgrade dependencies
Release 1.7.3
Changes
- Steam: parsing is now more relaxed, only required values are
appid
,installdir
andname