public void SwitchProcedure(ProcedureType pType) { if (!_procedures.ContainsKey(pType)) { return; } if (_curProcedure != null) { _curProcedure.OnLeave(); } _curProcedure = _procedures[pType]; _logger.Log("enter procedure ", pType); _curProcedure.OnEnter(); }