Пример #1
0
 private void resume(LocalEventNotifier.Event e)
 {
     PauseController.PauseGroup group = (e as ResumeEvent).PauseGroup;
     if (_currentPausedLayers != 0 && isAffected(group) && (_currentPausedLayers & (uint)group) != 0)
     {
         _currentPausedLayers = _currentPausedLayers.Approach(0, (uint)group);
         if (_currentPausedLayers == 0)
         {
             resumePausables();
         }
     }
 }
Пример #2
0
    private void pause(LocalEventNotifier.Event e)
    {
        PauseController.PauseGroup group = (e as PauseEvent).PauseGroup;
        if (isAffected(group) && (_currentPausedLayers & (uint)group) != (uint)group)
        {
            bool prevPaused = _currentPausedLayers != 0;
            _currentPausedLayers += (uint)group;

            if (!prevPaused)
            {
                for (int i = 0; i < _pausables.Count;)
                {
                    if (_pausables[i].Pause())
                    {
                        ++i;
                    }
                    else
                    {
                        _pausables.RemoveAt(i);
                    }
                }
            }
        }
    }
Пример #3
0
 private bool isAffected(PauseController.PauseGroup group)
 {
     return((uint)group >= (uint)this.PauseGroup);
 }
Пример #4
0
 public ResumeEvent(PauseController.PauseGroup pauseGroup, string tag = null)
 {
     this.Name       = NAME;
     this.PauseGroup = pauseGroup;
     this.Tag        = tag;
 }