예제 #1
0
 public override Task OnActivateAsync()
 {
     _tickEmitter       = GrainFactory.GetPartitionGrain <ITickEmitter>(this);
     _players           = new HashSet <IPlayer>();
     _discoveryEntities = new HashSet <IEntity>();
     return(base.OnActivateAsync());
 }
예제 #2
0
        public Task UnsubscribeTickEmitter(ITickEmitter tickEmitter)
        {
            if (State.IsTickEmitterActive)
            {
                State.IsTickEmitterActive = false;
                MarkDirty();
                _fixedUpdate.Stop();
            }

            return(Task.CompletedTask);
        }
예제 #3
0
        public Task SubscribeTickEmitter(ITickEmitter tickEmitter)
        {
            if (!State.IsTickEmitterActive)
            {
                State.IsTickEmitterActive = true;
                MarkDirty();
                if (_players.Count != 0)
                {
                    return(_fixedUpdate.Start(World));
                }
            }

            return(Task.CompletedTask);
        }
예제 #4
0
 protected override void InitializePreLoadComponent()
 {
     SetComponent(new StateComponent <StateHolder>());
     _tickEmitter = GrainFactory.GetPartitionGrain <ITickEmitter>(this);
 }