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; }
private void NotifyHackingFinish(MyHackingResultEnum result) { if (HackingFinish != null) { HackingFinish(this, new MyHackingEventArgs(result, m_acutalHackingEntity)); } if (result == MyHackingResultEnum.Success) { MyScriptWrapper.OnEntityHacked(m_acutalHackingEntity as MyEntity); } }
public MyHackingEventArgs(MyHackingResultEnum hackingResult, IMyUseableEntity hackingEntity) { HackingResult = hackingResult; HackingEntity = hackingEntity; }