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(); } } }
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); } } } } }
private bool isAffected(PauseController.PauseGroup group) { return((uint)group >= (uint)this.PauseGroup); }
public ResumeEvent(PauseController.PauseGroup pauseGroup, string tag = null) { this.Name = NAME; this.PauseGroup = pauseGroup; this.Tag = tag; }