示例#1
0
            public static void SerializeUpdate(global::Improbable.DependentSchema.DependentComponent.Component component, global::Improbable.Worker.CInterop.SchemaComponentUpdate updateObj)
            {
                var obj = updateObj.GetFields();
                {
                    if (component.IsDataDirty(0))
                    {
                        global::Improbable.TestSchema.ExhaustiveRepeatedData.Serialization.Serialize(component.A, obj.AddObject(1));
                    }
                }
                {
                    if (component.IsDataDirty(1))
                    {
                        obj.AddEnum(2, (uint)component.B);
                    }
                }
                {
                    if (component.IsDataDirty(2))
                    {
                        if (component.C.HasValue)
                        {
                            obj.AddEnum(3, (uint)component.C.Value);
                        }
                    }

                    if (!component.C.HasValue)
                    {
                        updateObj.AddClearedField(3);
                    }
                }
                {
                    if (component.IsDataDirty(3))
                    {
                        foreach (var value in component.D)
                        {
                            global::Improbable.TestSchema.SomeType.Serialization.Serialize(value, obj.AddObject(4));
                        }
                    }

                    if (component.D.Count == 0)
                    {
                        updateObj.AddClearedField(4);
                    }
                }
                {
                    if (component.IsDataDirty(4))
                    {
                        foreach (var keyValuePair in component.E)
                        {
                            var mapObj = obj.AddObject(5);
                            mapObj.AddEnum(1, (uint)keyValuePair.Key);
                            global::Improbable.TestSchema.SomeType.Serialization.Serialize(keyValuePair.Value, mapObj.AddObject(2));
                        }
                    }

                    if (component.E.Count == 0)
                    {
                        updateObj.AddClearedField(5);
                    }
                }
            }
示例#2
0
 public static void SerializeComponent(global::Improbable.DependentSchema.DependentComponent.Component component, global::Improbable.Worker.CInterop.SchemaObject obj, global::Unity.Entities.World world)
 {
     {
         global::Improbable.TestSchema.ExhaustiveRepeatedData.Serialization.Serialize(component.A, obj.AddObject(1));
     }
     {
         obj.AddEnum(2, (uint)component.B);
     }
     {
         if (component.C.HasValue)
         {
             obj.AddEnum(3, (uint)component.C.Value);
         }
     }
     {
         foreach (var value in component.D)
         {
             global::Improbable.TestSchema.SomeType.Serialization.Serialize(value, obj.AddObject(4));
         }
     }
     {
         foreach (var keyValuePair in component.E)
         {
             var mapObj = obj.AddObject(5);
             mapObj.AddEnum(1, (uint)keyValuePair.Key);
             global::Improbable.TestSchema.SomeType.Serialization.Serialize(keyValuePair.Value, mapObj.AddObject(2));
         }
     }
 }
            public static global::Improbable.DependentSchema.DependentComponent.Component Deserialize(global::Improbable.Worker.CInterop.SchemaObject obj, global::Unity.Entities.World world)
            {
                var component = new global::Improbable.DependentSchema.DependentComponent.Component();

                component.aHandle = global::Improbable.Gdk.Core.ReferenceProvider <global::Improbable.TestSchema.ExhaustiveRepeatedData> .Create();

                component.A = global::Improbable.TestSchema.ExhaustiveRepeatedData.Serialization.Deserialize(obj.GetObject(1));

                component.B = (global::Improbable.TestSchema.SomeEnum)obj.GetEnum(2);

                component.cHandle = global::Improbable.Gdk.Core.ReferenceProvider <global::Improbable.TestSchema.SomeEnum?> .Create();

                if (obj.GetEnumCount(3) == 1)
                {
                    component.C = new global::Improbable.TestSchema.SomeEnum?((global::Improbable.TestSchema.SomeEnum)obj.GetEnum(3));
                }

                component.dHandle = global::Improbable.Gdk.Core.ReferenceProvider <global::System.Collections.Generic.List <global::Improbable.TestSchema.SomeType> > .Create();

                {
                    component.D = new global::System.Collections.Generic.List <global::Improbable.TestSchema.SomeType>();
                    var list       = component.D;
                    var listLength = obj.GetObjectCount(4);

                    for (var i = 0; i < listLength; i++)
                    {
                        list.Add(global::Improbable.TestSchema.SomeType.Serialization.Deserialize(obj.IndexObject(4, (uint)i)));
                    }
                }

                component.eHandle = global::Improbable.Gdk.Core.ReferenceProvider <global::System.Collections.Generic.Dictionary <global::Improbable.TestSchema.SomeEnum, global::Improbable.TestSchema.SomeType> > .Create();

                {
                    var map     = new global::System.Collections.Generic.Dictionary <global::Improbable.TestSchema.SomeEnum, global::Improbable.TestSchema.SomeType>();
                    var mapSize = obj.GetObjectCount(5);
                    component.E = map;

                    for (var i = 0; i < mapSize; i++)
                    {
                        var mapObj = obj.IndexObject(5, (uint)i);
                        var key    = (global::Improbable.TestSchema.SomeEnum)mapObj.GetEnum(1);
                        var value  = global::Improbable.TestSchema.SomeType.Serialization.Deserialize(mapObj.GetObject(2));
                        map.Add(key, value);
                    }
                }

                return(component);
            }
            public static void ApplyUpdate(global::Improbable.Worker.CInterop.SchemaComponentUpdate updateObj, ref global::Improbable.DependentSchema.DependentComponent.Component component)
            {
                var obj = updateObj.GetFields();

                if (obj.GetObjectCount(1) == 1)
                {
                    component.A = global::Improbable.TestSchema.ExhaustiveRepeatedData.Serialization.Deserialize(obj.GetObject(1));
                }

                if (obj.GetEnumCount(2) == 1)
                {
                    component.B = (global::Improbable.TestSchema.SomeEnum)obj.GetEnum(2);
                }

                {
                    var isCleared = updateObj.IsFieldCleared(3);

                    if (isCleared)
                    {
                        component.C = new global::Improbable.TestSchema.SomeEnum?();
                    }
                    else if (obj.GetEnumCount(3) == 1)
                    {
                        var value = (global::Improbable.TestSchema.SomeEnum)obj.GetEnum(3);
                        component.C = new global::Improbable.TestSchema.SomeEnum?(value);
                    }
                }

                {
                    var listSize = obj.GetObjectCount(4);

                    var isCleared = updateObj.IsFieldCleared(4);

                    if (listSize > 0 || isCleared)
                    {
                        component.D.Clear();
                    }

                    for (var i = 0; i < listSize; i++)
                    {
                        var value = global::Improbable.TestSchema.SomeType.Serialization.Deserialize(obj.IndexObject(4, (uint)i));
                        component.D.Add(value);
                    }
                }

                {
                    var mapSize = obj.GetObjectCount(5);

                    var isCleared = updateObj.IsFieldCleared(5);

                    if (mapSize > 0 || isCleared)
                    {
                        component.E.Clear();
                    }

                    for (var i = 0; i < mapSize; i++)
                    {
                        var mapObj = obj.IndexObject(5, (uint)i);
                        var key    = (global::Improbable.TestSchema.SomeEnum)mapObj.GetEnum(1);
                        var value  = global::Improbable.TestSchema.SomeType.Serialization.Deserialize(mapObj.GetObject(2));
                        component.E.Add(key, value);
                    }
                }
            }