示例#1
0
        protected override bool Evaluate(
            RailEntity entity,
            int ticksSinceSend,
            out float priority)
        {
            priority = 0.0f;
            if (entity == this.controlled)
            {
                return(true);
            }

            if (entity is IHasPosition)
            {
                Vector2 origin = this.controlled.Position;
                Vector2 query  = ((IHasPosition)entity).Position;

                float distance = (origin - query).sqrMagnitude;
                if (distance > GameScopeEvaluator.MAX_DIST_SQR)
                {
                    return(false);
                }

                priority = distance / ticksSinceSend;
                return(true);
            }

            return(true);
        }
 protected internal virtual bool Evaluate(
     RailEntity entity,
     int ticksSinceSend,
     out float priority)
 {
     priority = 0.0f;
     return(true);
 }
 protected internal virtual bool Evaluate(
   RailEntity entity, 
   int ticksSinceSend,
   out float priority)
 {
   priority = 0.0f;
   return true;
 }
示例#4
0
    private void UpdateControlStatus(RailEntity entity, RailStateDelta delta)
    {
      // Can't infer anything if the delta is an empty frozen update
      if (delta.IsFrozen)
        return;

      if (delta.HasControllerData)
      {
        if (entity.Controller == null)
          this.serverPeer.GrantControl(entity);
      }
      else
      {
        if (entity.Controller != null)
          this.serverPeer.RevokeControl(entity);
      }
    }
示例#5
0
 internal void AddEntity(RailEntity entity)
 {
   this.entities.Add(entity.Id, entity);
   entity.Room = this;
 }
示例#6
0
    private List<EntityId> toRemove; // Pre-allocated removal list

    public bool TryGet(EntityId id, out RailEntity value)
    {
      return this.entities.TryGetValue(id, out value);
    }
示例#7
0
 internal RailEntity ProduceEntity()
 {
     return(RailEntity.Create(this.factoryType));
 }