// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Core/Collections/Dictionary.h"
#include "Engine/Core/Types/Guid.h"
#include "FlaxEngine.Gen.h"
///
/// Object serialization modification base class. Allows to extend the serialization process by custom effects like object ids mapping.
///
class FLAXENGINE_API ISerializeModifier
{
public:
///
/// Number of engine build when data was serialized. Useful to upgrade data from the older storage format.
///
uint32 EngineBuild;
///
/// The object IDs mapping. Key is a serialized object id, value is mapped value to use.
///
Dictionary IdsMapping;
public:
///
/// Initializes a new instance of the class.
///
ISerializeModifier()
: EngineBuild(FLAXENGINE_VERSION_BUILD)
{
}
///
/// Initializes a new instance of the class.
///
/// The engine build.
ISerializeModifier(uint32 engineBuild)
: EngineBuild(engineBuild)
{
}
///
/// Finalizes an instance of the class.
///
virtual ~ISerializeModifier()
{
}
};