Exemple #1
0
        private static WorkerRequirementSet MakeRequirements(string value)
        {
            var attributeSet = new WorkerAttributeSet(new List <string> {
                value
            });

            return(new WorkerRequirementSet(new List <WorkerAttributeSet> {
                attributeSet
            }));
        }
Exemple #2
0
 public static unsafe void Write(global::Improbable.Worker.Internal.GcHandlePool _pool,
                                 WorkerAttributeSet _data, global::Improbable.Worker.CInterop.SchemaObject _obj)
 {
     if (_data.attribute != null)
     {
         for (int _i = 0; _i < _data.attribute.Count; ++_i)
         {
             _obj.AddString(1, _data.attribute[_i]);
         }
     }
 }
Exemple #3
0
        /// <summary>
        ///     Creates a requirement set (a set of attribute sets) that a worker satisfies if and only
        ///     it satisfies at least one of the attribute sets.
        /// </summary>
        public static WorkerRequirementSet MakeRequirementSet(WorkerAttributeSet attribute1, params WorkerAttributeSet[] attributes)
        {
            var list = new Collections.List <WorkerAttributeSet>(attributes.Length + 1);

            foreach (var attribute in Enumerate(attribute1, attributes))
            {
                list.Add(attribute);
            }

            return(new WorkerRequirementSet(list));
        }
 public static unsafe void Write(global::Improbable.Worker.Internal.GcHandlePool _pool,
                                 WorkerAttributeSet _data, global::Improbable.Worker.Internal.Pbio.Object *_obj)
 {
     if (_data.attribute != null)
     {
         for (int _i = 0; _i < _data.attribute.Count; ++_i)
         {
             if (_data.attribute[_i] != null)
             {
                 var _buffer = global::System.Text.Encoding.UTF8.GetBytes(_data.attribute[_i]);
                 global::Improbable.Worker.Internal.Pbio.AddBytes(_obj, 1, (byte *)_pool.Pin(_buffer), (uint)_buffer.Length);
             }
             else
             {
                 global::Improbable.Worker.Internal.Pbio.AddBytes(_obj, 1, null, 0);
             }
         }
     }
 }
Exemple #5
0
    private static Entity CreatePlayerTemplate(CommandRequestOp <Automaton.Spawner.Commands.SpawnPlayer> op, Coordinates position)
    {
        var callerWorkerRequirementSet = new WorkerRequirementSet(new Improbable.Collections.List <WorkerAttributeSet> {
            new WorkerAttributeSet(op.CallerAttributeSet)
        });
        var gameWorkerAttr = new WorkerAttributeSet(new Improbable.Collections.List <string> {
            "GameWorker"
        });
        var clientWorkerAttr = new WorkerAttributeSet(new Improbable.Collections.List <string>()
        {
            "TPSClient"
        });

        var gameWorkerRequirementSet = new WorkerRequirementSet(new Improbable.Collections.List <WorkerAttributeSet> {
            gameWorkerAttr
        });

        var allRequirementSet = new WorkerRequirementSet(new Improbable.Collections.List <WorkerAttributeSet>
        {
            clientWorkerAttr,
            gameWorkerAttr
        });
        var writeAcl = new Map <uint, WorkerRequirementSet>
        {
            { Position.ComponentId, callerWorkerRequirementSet },
            { EntityAcl.ComponentId, gameWorkerRequirementSet },
            { Movement.ComponentId, callerWorkerRequirementSet },
            { Automaton.Player.Player.ComponentId, callerWorkerRequirementSet },
            { Score.ComponentId, gameWorkerRequirementSet }
        };
        Entity entity = new Entity();

        entity.Add(new EntityAcl.Data(/* read */ allRequirementSet, /* write */ writeAcl));
        entity.Add(new Metadata.Data("SpatialOsPlayer"));
        entity.Add(new Position.Data(position));
        entity.Add(new Movement.Data(false, new Quaternion(1, 0, 0, 0), false));
        entity.Add(new Automaton.Player.Player.Data());
        entity.Add(new Score.Data(0, 0));
        return(entity);
    }