Skip to content

Releases: phosxd/Any-JSON

2.0.1

25 Mar 23:02

Choose a tag to compare

  • 21358b2 Fixed only built-in classes being recognized as ruleset group name. You can now define rule groups for custom classes.

Yeah this is all, I think the plugin is finished for good.

2.0.0

22 Feb 03:19

Choose a tag to compare

I know I said that I wouldn't work much on this anymore, but... there were some changes I just had to make.

This release mostly focuses on revamping the ruleset system so that it is more versatile, there are also a lot of QOL changes & additions in here.

What's new:

  • 5c4a9cd Added registry generator tool for generating the object registry with all the built-in classes you need.
  • eebed4c Added get_version method in A2J. This will return the version specified in the plugin's config file.
  • 5c4a9cd Added new error message when failed to deserialize a variant dictionary key in AJSON.
  • 5c4a9cd Added new error message when finding non-number values in vector types when deserializing AJSON.
  • eebed4c Added rule modifiers that can be used to change the functionality of a rule. (@des & @ser)
  • eebed4c Added "automatic_resource_references" rule which automatically converts external resources to references.

What's changed:

  • 79b22e6 Updated project to Godot 4.6 (still works in 4.5, you might have to remove some classes from the default object registry if they were introduced after 4.5).
  • 5c4a9cd Fixed "property_inclusions" rule not doing anything when deserializing.
  • d896e3b Default object registry in A2J.gd now uses generated values.
  • 67b6d14 Overhauled error log system. Errors now show exactly which property of the object you were converting caused the error, you can also access this data from the error server signals.
  • 67b6d14 Return null when object conversion fails, instead of an empty dictionary.

BREAKING CHANGES:

  • eebed4c Overhauled the layout of rulesets. Rules need to be specified under rule group keys which can be a special key or an object class name.
  • eebed4c Type & value keys in resulting AJSON have to been simplified from ".type" & "value" to just ".t" & "v".
  • eebed4c Removed default_ruleset_to & default_ruleset_from in A2J.gd & added default_ruleset.
  • eebed4c Renamed "references" rule to "property_reference_values".
  • eebed4c Renamed "exclude_properties_set_to_default" rule to "exclude_default_values".

1.3.4

14 Jan 21:46
235bebc

Choose a tag to compare

  • 8e3be29 Added new example using compound collections & resources.
  • 69c8d0b Added UID files for better collaboration. UID files are not present when downloaded from the Asset Library.
  • a6b9796 Fixed trying to get property details on objects before script was applied.
  • 0163c91 Fix error signal not being emitted when print_errors is false.
  • 0163c91 Removed error_stack variable (error server should be used instead).

1.3.3

02 Jan 21:12

Choose a tag to compare

  • ab63b98 38a60c9 cf830ee Fix nested types not being properly handled during deserialization when applying to a typed property.

  • 200899e Fix StringName not being accepted in error translations.

  • 9b37291 Fix incorrect error being reported when "property_references" in ruleset is not formatted correctly.

  • 4fb96eb Fix error reporting invalid name of property ("convert_properties_to_references" instead of "property_references").

  • b6d5803 Moved array & dictionary re-typing logic to A2JUtil class as static functions, instead of being embedded inside the core logic of A2J._from_json.

  • 200899e Add Gradient & FastNoiseLite classes to default object registry.

1.3.1

17 Dec 10:09

Choose a tag to compare

  • b32ba53 Fix private metadata properties not being excluded when exclude_private_properties is true.
  • dfa8d8c Added A2JErrorServer class for hosting signal connections for errors. An instance of this will automatically be setup as A2J.error_server.
  • Added descriptions to some functions that did not already have them.
  • Corrected some incorrect statements in the README.

1.3.0

10 Dec 02:36

Choose a tag to compare

1.3.0 marks the end of active development for Any-JSON. Future updates will focus mostly on fixes & quality-of-life changes.
Pull requests & suggestions are still welcome!

What's new:

  • ae72acc Added "class_inclusions" & "class_exclusions" rules for specifying what classes you want to serialize or not serialize.
  • 9056d6b Added automatic variable typing during deserialization.
  • a75b11d Added InputEvent classes in object registry.

What's changed:

  • 7d2c121 Reorganized example files.
  • 37480e1 Now packs the object index in with the ".type" value instead of being it's own key.

1.2.0

30 Nov 01:29

Choose a tag to compare

What's new:

4 new rules:

  • d4f4359 Added "instantiator_arguments" rule for defining arguments to pass to the object constructor without needing to override the instantiator function.
  • cb6751b Added "type_inclusions" rule for only allowing specific types, inverse of "type_exclusions".
  • cb6751b Added "property_inclusions" rule for only allowing specific properties, inverse of "property_exclusions".
  • cb6751b Added "fppe_mitigation" rule for removing floating point precision errors.

Other:

  • 2e07d39 Circular references now supported: No longer goes into an infinite loop when encountering a circular references. Now stores an index number for every unique object & converts copies to references of the original.
  • 2e07d39 "A2JTypeHandler" objects can now utilize shared data via the "A2J._process_data" property.
  • 2e07d39 "A2JTypeHandler" objects can now append functions to be called after the main serialization via the "A2J._process_next_pass_functions" property.

What's changed:

  • d4f4359 Renamed "instantiator" rule to "instantiator_function".
  • d4f4359 "PackedColorArray" is no longer serialized to a hexadecimal string like other packed array types. Each color is individually converted to a hex color code & put into an array.
  • 50c2f50 Renamed "A2JReference" type to "A2JRef". And "value" in A2JRef is now "name".

1.1.0

24 Nov 18:21

Choose a tag to compare

What's new:

3 new rules:

c2e7187

  • instantiator: lets you define custom logic for instantiating objects.
  • exclude_properties_set_to_default: option to exclude properties that have the same value as their default.
  • exclude_private_properties: option to exclude properties starting with an underscore "_".

More examples:

  • c2e7187 Added dedicated examples folder.
  • c2e7187 Added resource serialization examples.
  • 7cd4333 Added encryption examples.
  • 429acd5 Added compression examples.

Other:

  • c114660 Added ability to override class global name.

What's changed:

  • c2e7187 Renamed named_references rule to just references.
  • c2e7187 Renamed convert_properties_to_references rule to just property_references.

1.0.0

18 Nov 16:23

Choose a tag to compare

Release.