private void StopHacking(MyHackingResultEnum result, HackingResultAction action = null, object[] parameters = null) { MyHackingResultMessage resultMessage = m_hackingResultMessages[(int)result]; if (resultMessage != null) { //MyGuiManager.AddScreen(new MyGuiScreenMessageBox(resultConfig.MessageBoxType, resultConfig.Text, MyTextsWrapperEnum.HackingResult, MyTextsWrapperEnum.Ok, null)); resultMessage.Display(parameters); } if (m_hackingProgressScreen != null) { if (m_hackingProgressScreen.GetState() != MyGuiScreenState.CLOSED) { m_hackingProgressScreen.CloseScreenNow(); } m_hackingProgressScreen.OnCanceled -= m_hackingProgressScreenCanceled; m_hackingProgressScreen.OnSuccess -= m_hackingProgressScreenSuccess; m_hackingProgressScreen = null; } m_owner.OnDie -= m_ownerDie; if (action != null) { action(); } NotifyHackingFinish(result); m_acutalHackingEntity = null; //m_hackingTimeLeft = 0; m_state = MyHackingToolStateEnum.Idle; }