Releases: zencq/libNOM.io
0.14.0
It started with an stdin/stdout option for the CLI which caused some API changes, followed by a refactoring, and ended with updates for Worlds Part II 5.50 including fixes and changes missed from previous game updates.
Added
- CLI
- Read action to read a (save) file and write the plaintext JSON to stdout
- Write action to take plaintext JSON from stdin and write it to a (save) file
- Parameter for
Transfer
to ignore incomplete user identification - Support for game version Worlds Part II 5.50
- Detection for new packaged technology
- Difficulty setting for NPC population is taken into account
- Titan Expedition
Changed
- Files in backups are now only prefixed with
data
/meta
and no longer completely renamed to make manual backups a little easier - The static class
libNOM.io.Global.Common
is no longer public accessible libNOM.io.Global.Convert
ToJson()
now returns the plaintext JSON if no output is specified instead of writing to a default file(name)ToJson()
andToSaveContainer()
now accepts string or FileInfo for the input fileToSaveFile()
methods now only accepts a FileInfo if you want use a file as input and string is now used to convert plaintext JSON
- Bump CommunityToolkit from 8.3.2 to 8.4.0
- Bump SharpCompress from 0.38.0 to 0.39.0
- Bump libNOM.map from 0.13.4 to 0.13.5
Removed
JObject.GetString(this JToken self, bool indent, bool obfuscate)
extension
Fixed
- CLI
- An exception when using
Convert
without specifying an output
- An exception when using
- Missing
IsVersion525TheCursedWithCrossSave
inIContainer
- Use
IContainer
instead ofContainer
to implementIComparable
andIEquatable
ofIContainer
- Packaged technology disappears due to the hashes no being UTF-8 conform (#122 in the NomNom repository)
- Crash caused by changes in the Microsoft platform (#232 in the NomNom repository)
- Difficulty setting for fishing added in Aquarius 5.10 was not taken into account
0.13.0
Updated target frameworks according to the .NET release lifecycle, a critical fix for technology packages, and some other changes here and there.
Added
- Beachhead Expedition Redux (2024)
- Holiday 2024 Expeditions
Changed
- Now also targeting .NET 9 according to supported versions in the .NET release lifecycle
- No longer targeting .NET 6 and .NET 7 (can be still used thanks to .NET Standard)
PlatformCollection.AnalyzePath
now also checks direct subfolders if path itself has no valid platform data- Similar to how default locations for PC platforms are added
- Now returns
IEnumerable<IPlatform>
instead ofIPlatform?
PATH
of PC platforms is not publicly accessible- Bump libNOM.map from 0.13.3 to 0.13.4
Fixed
- Technology packages gone after saving due to the hashes no being UTF-8 conform (#210 in the NomNom repository)
0.12.2
Update for The Cursed, and some chores.
Added
- Support for game version The Cursed 5.20
- The Cursed Expedition
Changed
- Bump CommunityToolkit from 8.3.0 to 8.3.2
- Bump libNOM.map from 0.13.2 to 0.13.3
Removed
- Explicit type (uint) from custom Enums
0.12.1
Just some bug fixes.
Changed
- Bump libNOM.map from 0.13.1 to 0.13.2
Fixed
- Creating a backup when the meta file does not exist
- Rebuild sets SaveVersion in JSON when resetting and therefore preventing other properties from being calculated correctly
0.12.0
Refactoring incl. some bigger changes and updating to latest version of the game.
Added
- Extension to get actual expedition number from
SeasonEnum
(e.g. Cartographers is always 3rd, Liquidators 14th) - Another callback
IContainer.JsonChangedCallback
that gets invoked whenever the JSON inside changed (via the available API) - New overload for
IPlatform.RestoreBackup
to enable writing directly to disk - Support for game version Aquarius 5.10
- Aquarius Expedition
Changed
- Renamed
IContainer.WriteCallback
toPropertiesChangedCallback
to be more precise when it gets invoked - Renamed
IPlatform.Backup
toCreateBackup
andIPlatform.Restore
toRestoreBackup
- Bump CommunityToolkit from 8.2.2 to 8.3.0
- Bump libNOM.map from 0.13.0 to 0.13.1
Removed
- Removed
IContainer.SetJsonObject
from the public API, useIPlatform.Rebuild
instead which will update and invoke everything properly - Removed
IContainer.BackupRestoredCallback
in favor of new callback combination
Fixed
- Always invoked
IContainer.WriteCallback
even ifOnWatcherDecision
was not executed - Importing plaintext JSON files
0.11.0
Adjustments to metadata size and Worlds Part I integration in general.
Added
- Proper support for Worlds 5.00 on Nintendo Switch
Changed
- Bump libNOM.map from 0.12.1 to 0.13.0
- Renamed
GameVersionEnum.Worlds
toWorldsPartI
to better match to official naming
Fixed
- Wrong metadata size in some case
0.10.1
Some critical improvements for the Microsoft platform.
Added
- Support for changed save format on Microsoft platform in Worlds 5.01.1
Changed
- Make
Common.DeepCopy()
public
Fixed
- Wrong metadata size when transferring save to container with other size
0.10.0
Update for Worlds Part I, including support for the new save format on Steam/GOG.
Added
GetString
extension forJToken
that is now used by the one forJObject
- Support for game version Worlds 5.00
- Liquidators Expedition
Changed
- Renamed
IsVersion452OmegaWithV2
inIContainer
toIsVersion452OmegaWithMicrosoftV2
- Renamed
COUNT_SAVE*
constants toMAX_SAVE*
and made them publicly available - Bump libNOM.map from 0.12.0 to 0.12.1
Fixed
- Crash if
Platform.GetHashCode()
is used
0.9.0
Update for Adrift, also including some other tweaks.
Added
PlatformCollection.Contains(string path)
overload- Support for game version Adrift 4.70
- Adrift Expedition
Changed
PlatformSettings.MaxBackupCount <= 0
is disabling the backup feature again- Existing backups will be deleted the next time one would be created otherwise
- To make it unlimited-like set it to
int.MaxValue
Constants.LOWEST_SUPPORTED_VERSION
is publicly accessible- Using the
IContainer
interface instead ofContainer
directly, in interfaces and other public methods Platform.RestartToApply
is now an enum for more precision on when a game restart is required
Fixed
- The values for the properties
Container.ActiveContext
andContainer.CanSwitchContext
are now properly set even if theContainer
is not fully loaded
0.8.0
Main thing is the new CLI (see below what you can do with it). With that a few other changes were implemented.
Added
- CLI
- Analyze single files or whole directories and print information about it
- Convert between JSON and actual save formats
- Perform file operations
PlatformCollectionSettings
to configurePlatformCollection
- Support for game version Orbital 4.60
Changed
PlatformSettings.MaxBackupCount <= 0
is now unlimited and not unintentionally disabling the backup featureContainer.ThrowHelperIsLoaded
now shows incompatibility if any- Replace preferred platform in constructors of
PlatformCollection
with newPlatformCollectionSettings
- Moved
Settings
to its own namespace - Bump K4os.Compression.LZ4 from 1.3.6 to 1.3.8
- Bump libNOM.map from 0.11.0 to 0.12.0