- fixed link to auto-generated typedoc.
- fixed link to auto-generated typedoc.
- Item costs and recipes in a blueprint are now correctly treated as ObjectReference, instead a single path string.
- Migrated the rest of the generic properties towards namespaces
- Most Normal Properties classes got refactored to namespaces as well. More will come. Please refrain from using instances of them. Background being, that its anyway only static methods and types.
- Since normal properties of an object are effectively always of type
AbstractBaseProperty | AbstractBaseProperty[]
, theAbstractBaseProperty
has now all fields andBasicProperty
got removed as there is no difference anymore between the two. They would be the same now. - type guards of "normal" properties like
isObjectProperty()
accept nowany
as parameter and should work now as expected - Since ArrayProperties and SetProperties in the save format dont necessarily always have the same structure as their subtype, I introduced own types like
StrArrayProperty
andInt32SetProperty
with corresponding type guards (e.g.isStrArrayProperty()
). Means more overhead in code, but hence its more correct in usage.
- The total conveyor length in the special properties of a ConveyorChainActor got serialized as int32, but correctly now serialize as float32.
- Improved on SpecialProperties of BuildableSubsystem and ConveyorChainActor as the meaning became more clear.
- Special Properties are refactored into their own namespaces and exported.
- The union type
SpecialAnyProperties
is now automatically derived and more concisely namedSpecialProperties.AvailableSpecialPropertiesTypes
instead, in case you need it.
- fix being forced to use callbacks when writing saves or blueprints.
...SpecialProperty
got all renamed to...SpecialProperties
.
- Cleaned Usage methods of Save / Blueprint Parsing. The callbacks are an optional additional parameter object now instead of required.
- Re-Added a method to parse Saves in memory again. (sorry for the inconvenience)
SatisfactorySave
structure changed, thegrids
andgridHash
fields are slightly different now, since their meaning became more clear. Not relevant for normal save editing.Level
is a namespace instead of a class now, since the classes had only static methods anyway.
DynamicStructPropertyValue
extracted to own file.- Parsing of object data partially moved to
SaveObject
. - Renamed
DataFields
class toPropertiesList
. - Moved parsing of class-specific properties into own namespace.
ObjectProperty
andSoftObjectProperty
now reuse the correct method for parsing/serializing the reference value.
- referenced icon libraries in blueprints are now optional when being parsed.
- restructured some internal packages.
- provides now typeguards for every property.
- added parsing of icon library reference to parsing blueprints.
ClientIdentityInfo
field names and structure got changed, since the meaning is now more clear.- removed trailing object list from satisfactory save object.
- deleted entities references get serialized again, just based on collectables list.
- exporting
isSaveEntity
andisSaveComponent
again.
- changelog document doesn't seem linkable, so it is in the readme for now.
- updated the code examples with more context
- improved the interface for abstract parser classes
- extended some error log messages
- added an additional check when parsing struct property InventoryItem, since ported saves often have a few more bytes.
- changed function name
writeFloat()
towriteFloat32()
of the save writer. - changed variable name
saveOrBlueprintIndicator
toobjectVersion
for objects, since the meaning of that number became now more clear.