Breaking Changes
On this page we'll document breaking changes across versions.
1.7.1
-
FDcPropertyWriterwill now emptyTArray/TSet/TMapon write.Previously when running into container property with default values DataConfig will thrash the defaults also leaving the container with incorrect elements count. Now the containers will be properly emptied on write.
// Example of TArray property with default values. USTRUCT() struct FDcTestStructWithDefaults { // ... UPROPERTY() TArray<FString> StrArrFieldWithDefault = {"Foo", "Bar", "Baz"}; };Though this is a behavior change but it should have minimal impact. See
DataConfig.Core.Property.Defaultstest for details.
1.7.0
- UE 5.5 deprecated
StructUtilsplugin, thus we'll need to setup multiple uplugins for UE5. See: DataConfigXX.uplugin
1.6.0
-
Added a optional
FNametoFDcSerializer/FDcDeserializer::AddPredicatedHandlerwhich can be used to identify an entry so one can replace it later like this:Ctx.Deserializer->PredicatedDeserializers.FindByPredicate([](auto& Entry){ return Entry.Name == FName(TEXT("Enum")); })->Handler = FDcDeserializeDelegate::CreateStatic(DcEngineExtra::HandlerBPEnumDeserialize); -
Removed
DcDeserializeUtils/DcSerializeUtils::PredicateIsUStruct. UseFDcSerializer/FDcDeserializer::AddStructHandlerinstead. It's more accurate and overall gets better performance.For an concrete example, change this:
Ctx.Deserializer->AddPredicatedHandler( FDcDeserializePredicate::CreateStatic(DcDeserializeUtils::PredicateIsUStruct<FMsgPackTestSuite>), FDcDeserializeDelegate::CreateStatic(HandlerMsgPackTestSuite) );to this:
Ctx.Deserializer->AddStructHandler( TBaseStructure<FMsgPackTestSuite>::Get(), FDcDeserializeDelegate::CreateStatic(HandlerMsgPackTestSuite) );and that's done. For more details see: Serializer Deserializer Setup.
-
Move many
DataConfigEditorExtracontent to the newDataConfigEngineExtraruntime module so it can be used at runtime. This is mostly for the blueprint nodes to be available at engine runtime.
1.5.0
- Renamed
EDcDataEntry::NiltoEDcDataEntry::None. This is a fix for MacOS build.