コード例 #1
0
ファイル: EntityAcl.cs プロジェクト: DB823/unity
            public static void SerializeSnapshot(global::Improbable.EntityAcl.Snapshot snapshot, global::Improbable.Worker.CInterop.SchemaObject obj)
            {
                global::Improbable.WorkerRequirementSet.Serialization.Serialize(snapshot.ReadAcl, obj.AddObject(1));

                foreach (var keyValuePair in snapshot.ComponentWriteAcl)
                {
                    var mapObj = obj.AddObject(2);
                    mapObj.AddUint32(1, keyValuePair.Key);
                    global::Improbable.WorkerRequirementSet.Serialization.Serialize(keyValuePair.Value, mapObj.AddObject(2));
                }
            }
コード例 #2
0
ファイル: EntityAcl.cs プロジェクト: DB823/unity
            public static global::Improbable.EntityAcl.Snapshot DeserializeSnapshot(global::Improbable.Worker.CInterop.SchemaObject obj)
            {
                var component = new global::Improbable.EntityAcl.Snapshot();

                component.ReadAcl = global::Improbable.WorkerRequirementSet.Serialization.Deserialize(obj.GetObject(1));

                {
                    var map     = new global::System.Collections.Generic.Dictionary <uint, global::Improbable.WorkerRequirementSet>();
                    var mapSize = obj.GetObjectCount(2);
                    component.ComponentWriteAcl = map;

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

                return(component);
            }
コード例 #3
0
ファイル: EntityAcl.cs プロジェクト: DB823/unity
            public static void ApplyUpdate(global::Improbable.Worker.CInterop.SchemaComponentUpdate updateObj, ref global::Improbable.EntityAcl.Snapshot snapshot)
            {
                var obj = updateObj.GetFields();

                if (obj.GetObjectCount(1) == 1)
                {
                    snapshot.ReadAcl = global::Improbable.WorkerRequirementSet.Serialization.Deserialize(obj.GetObject(1));
                }

                {
                    var mapSize = obj.GetObjectCount(2);

                    var isCleared = updateObj.IsFieldCleared(2);

                    if (mapSize > 0 || isCleared)
                    {
                        snapshot.ComponentWriteAcl.Clear();
                    }

                    for (var i = 0; i < mapSize; i++)
                    {
                        var mapObj = obj.IndexObject(2, (uint)i);
                        var key    = mapObj.GetUint32(1);
                        var value  = global::Improbable.WorkerRequirementSet.Serialization.Deserialize(mapObj.GetObject(2));
                        snapshot.ComponentWriteAcl.Add(key, value);
                    }
                }
            }