Skip to content

Releases: zencq/libNOM.io

0.14.0

09 Feb 13:08
Compare
Choose a tag to compare

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() and ToSaveContainer() now accepts string or FileInfo for the input file
    • ToSaveFile() 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
  • Missing IsVersion525TheCursedWithCrossSave in IContainer
  • Use IContainer instead of Container to implement IComparable and IEquatable of IContainer
  • 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

02 Dec 20:36
Compare
Choose a tag to compare

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 of IPlatform?
  • PATH of PC platforms is not publicly accessible
  • Bump libNOM.map from 0.13.3 to 0.13.4

Fixed

0.12.2

28 Oct 20:46
Compare
Choose a tag to compare

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

08 Sep 21:11
Compare
Choose a tag to compare

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

04 Sep 12:52
Compare
Choose a tag to compare

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 to PropertiesChangedCallback to be more precise when it gets invoked
  • Renamed IPlatform.Backup to CreateBackup and IPlatform.Restore to RestoreBackup
  • 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, use IPlatform.Rebuild instead which will update and invoke everything properly
  • Removed IContainer.BackupRestoredCallback in favor of new callback combination

Fixed

  • Always invoked IContainer.WriteCallback even if OnWatcherDecision was not executed
  • Importing plaintext JSON files

0.11.0

06 Aug 14:36
Compare
Choose a tag to compare

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 to WorldsPartI to better match to official naming

Fixed

  • Wrong metadata size in some case

0.10.1

26 Jul 20:39
Compare
Choose a tag to compare

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

22 Jul 19:34
Compare
Choose a tag to compare

Update for Worlds Part I, including support for the new save format on Steam/GOG.

Added

  • GetString extension for JToken that is now used by the one for JObject
  • Support for game version Worlds 5.00
  • Liquidators Expedition

Changed

  • Renamed IsVersion452OmegaWithV2 in IContainer to IsVersion452OmegaWithMicrosoftV2
  • Renamed COUNT_SAVE* constants to MAX_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

07 Jun 18:31
Compare
Choose a tag to compare

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 of Container 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 and Container.CanSwitchContext are now properly set even if the Container is not fully loaded

0.8.0

05 Apr 17:58
Compare
Choose a tag to compare

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 configure PlatformCollection
  • Support for game version Orbital 4.60

Changed

  • PlatformSettings.MaxBackupCount <= 0 is now unlimited and not unintentionally disabling the backup feature
  • Container.ThrowHelperIsLoaded now shows incompatibility if any
  • Replace preferred platform in constructors of PlatformCollection with new PlatformCollectionSettings
  • 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