using System.Text.Json;
using System.Text.Json.Nodes;
namespace Sandbox;
public partial class GameObject
{
///
/// Converts NetworkInterpolation property to NetworkFlags.
///
[Expose, JsonUpgrader( typeof( GameObject ), 2 )]
internal static void Upgrader_v2( JsonObject obj )
{
if ( !obj.ContainsKey( JsonKeys.NetworkInterpolation ) )
return;
var interpolation = obj[JsonKeys.NetworkInterpolation].Deserialize();
NetworkFlags flags = NetworkFlags.None;
if ( obj.TryGetPropertyValue( JsonKeys.NetworkFlags, out var existingFlags ) )
flags = (NetworkFlags)existingFlags.Deserialize();
if ( !interpolation )
flags |= NetworkFlags.NoInterpolation;
obj[JsonKeys.NetworkFlags] = (int)flags;
}
}