public static Entity BaseEntity(double x, double z, string name, Map <uint, WorkerRequirementSet> writeAcl) { var entity = new Entity(); entity.Add(new Position.Data(new Coordinates(x, 0, z))); entity.Add(new Persistence.Data()); entity.Add(new Metadata.Data(name)); var aclData = new EntityAclData(); aclData.readAcl = TreeWorker; aclData.componentWriteAcl = writeAcl; entity.Add(new EntityAcl.Data(aclData)); return(entity); }
static Entity CreateBaseEntity(Coordinates coord, string name, WorkerRequirementSet readAcl, Map <uint, WorkerRequirementSet> writeAcl) { var entity = new Entity(); entity.Add(new Position.Data(coord)); entity.Add(new Persistence.Data()); entity.Add(new Metadata.Data(name)); var aclData = new EntityAclData { readAcl = readAcl, componentWriteAcl = writeAcl }; entity.Add(new EntityAcl.Data(aclData)); return(entity); }
public static unsafe void Write(global::Improbable.Worker.Internal.GcHandlePool _pool, EntityAclData _data, global::Improbable.Worker.Internal.Pbio.Object *_obj) { { global::Improbable.WorkerRequirementSet_Internal.Write(_pool, _data.readAcl, global::Improbable.Worker.Internal.Pbio.AddObject(_obj, 1)); } if (_data.componentWriteAcl != null) { for (var _node = _data.componentWriteAcl.First; _node != null; _node = _node.Next) { var _pair = global::Improbable.Worker.Internal.Pbio.AddObject(_obj, 2); { global::Improbable.Worker.Internal.Pbio.AddUint32(_pair, 1, _node.Value.Key); } { global::Improbable.WorkerRequirementSet_Internal.Write(_pool, _node.Value.Value, global::Improbable.Worker.Internal.Pbio.AddObject(_pair, 2)); } } } }
public static unsafe void Write(global::Improbable.Worker.Internal.GcHandlePool _pool, EntityAclData _data, global::Improbable.Worker.CInterop.SchemaObject _obj) { { global::Improbable.WorkerRequirementSet_Internal.Write(_pool, _data.readAcl, _obj.AddObject(1)); } if (_data.componentWriteAcl != null) { for (var _node = _data.componentWriteAcl.First; _node != null; _node = _node.Next) { var _pair = _obj.AddObject(2); { _pair.AddUint32(1, _node.Value.Key); } { global::Improbable.WorkerRequirementSet_Internal.Write(_pool, _node.Value.Value, _pair.AddObject(2)); } } } }
/// <summary> /// Creates a new <see cref="Acl" /> starting with the given <see cref="EntityAclData" />, and overwriting values in /// 'otherAcl' with those present in 'newAcl'. /// </summary> public static Acl MergeIntoAcl(EntityAclData otherAcl, Acl newAcl) { Acl mergedAcl = new Acl(); mergedAcl.readPermissions = otherAcl.readAcl; if (newAcl.readPermissions.attributeSet != null) { mergedAcl.readPermissions = newAcl.readPermissions; } Map <uint, WorkerRequirementSet> mergedWritePermissions = otherAcl.componentWriteAcl; if (newAcl.writePermissions != null) { foreach (var key in newAcl.writePermissions.Keys) { mergedWritePermissions[key] = newAcl.writePermissions[key]; } } mergedAcl.writePermissions = mergedWritePermissions; return(mergedAcl); }