public Sprite GetActorSprite(string actorName, string actorEmotion = "default") { ActorDescriptor actor = null; if (!_actors.TryGetValue(actorName, out actor)) { Debug.LogError($"{_tag} Actor name {actorName} is not in the manifest"); return(null); } string actorResource = null; if (!actor.emotions.TryGetValue(actorEmotion, out actorResource)) { Debug.LogWarning($"{_tag} Emotion {actorEmotion} is not in descriptor for {actorName}, substituting default emotion instead"); if (!actor.emotions.TryGetValue("default", out actorResource)) { Debug.LogError($"{_tag} Default emotion is not in descriptor for {actorName}, bailing out"); return(null); } } var actorSprite = LoadResource(actorResource); if (actorSprite == null) { Debug.LogError($"{_tag} Resource {actorResource} for {actorName} (emotion {actorEmotion}) is missing!"); } return(actorSprite); }
public void Setup(ActorDescriptor descriptor) { if(_actorDescriptor!=null) throw new InvalidOperationException("Cannot call Setup twice."); _actorDescriptor = descriptor; _poller = new AsyncPoller(descriptor.Interval, (Func<CancellationToken, Task<bool>>)Process); }
public void Setup(ActorDescriptor descriptor) { if (_actorDescriptor != null) { throw new InvalidOperationException("Cannot call Setup twice."); } _actorDescriptor = descriptor; _poller = new AsyncPoller(descriptor.Interval, (Func <CancellationToken, Task <bool> >)Process); }
public void RegisterHandler(Func <Event, IEventQueueOperator, Task> handler, ActorDescriptor descriptor) { var name = new QueueName(descriptor.SourceQueueName); Func <Message, CancellationToken, Task> h = (Message m, CancellationToken token) => ProcessMessage(m, token, handler, descriptor); var options = new MessageHandlerOptions(ExceptionReceivedHandler) { MaxConcurrentCalls = descriptor.DegreeOfParallelism, MaxAutoRenewDuration = descriptor.MaximumLease.HasValue ? descriptor.MaximumLease.Value : _maxAutoRenew, AutoComplete = true }; if (name.IsSimpleQueue) { var client = _clientProvider.GetQueueClient(name); client.RegisterMessageHandler(h, options); } else { var client = _clientProvider.GetSubscriptionClient(name); client.RegisterMessageHandler(h, options); } }
private async Task ProcessMessage(Message m, CancellationToken cancellationToken, Func <Event, IEventQueueOperator, Task> handler, ActorDescriptor descriptor) { var name = new QueueName(descriptor.SourceQueueName); await handler(m.ToEvent(name), this); }
public void RegisterHandler(Func <Event, IEventQueueOperator, Task> handler, ActorDescriptor descriptor) { throw new NotSupportedException("Is not event-driven"); }
public void RegisterHandler(Func <Event, Task <IEnumerable <Event> > > handler, ActorDescriptor descriptor) { throw new NotSupportedException("Is not event-driven"); }
private async Task ProcessMessage(Message m, CancellationToken cancellationToken, Func <Event, Task <IEnumerable <Event> > > handler, ActorDescriptor descriptor) { var name = new QueueName(descriptor.SourceQueueName); var messages = await handler(m.ToEvent(name)); await PushBatchAsync(messages); }
public void RegisterHandler(Func <Event, Task <IEnumerable <Event> > > handler, ActorDescriptor descriptor) { throw new NotImplementedException(); }