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; }
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); } }
internal void AddEntity(RailEntity entity) { this.entities.Add(entity.Id, entity); entity.Room = this; }
private List<EntityId> toRemove; // Pre-allocated removal list public bool TryGet(EntityId id, out RailEntity value) { return this.entities.TryGetValue(id, out value); }
internal RailEntity ProduceEntity() { return(RailEntity.Create(this.factoryType)); }