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); } } }
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); } } }