public override bool HandleInput() { var handled = base.HandleInput(); if (handled) { return(true); } if (MyInput.Static.IsKeyPress(MyKeys.OemTilde)) { var info = m_members.Count > SelectedMember ? m_members[SelectedMember] : null; if (MyInput.Static.IsNewKeyPressed(MyKeys.OemPeriod)) { if (m_currentPath.Count > 0 && m_currentPath[m_currentPath.Count - 1] == info) { return(true); } var obj = info.GetValue(m_currentInstance); if (obj != null && !obj.GetType().IsPrimitive&& obj.GetType().GetFields().Length + obj.GetType().GetProperties().Length > 0) { m_currentPath.Add(info); } m_counter = 0; return(true); } else if (MyInput.Static.IsNewKeyPressed(MyKeys.OemComma)) { if (m_currentPath.Count > 0) { m_currentPath.RemoveAt(m_currentPath.Count - 1); m_counter = 0; } return(true); } else if (MyInput.Static.IsNewKeyPressed(MyKeys.OemQuestion)) { if (m_showWatch) { if (!m_toPlot.Add(SelectedMember)) { m_toPlot.Remove(SelectedMember); } } else { MyListDictionary <MemberInfo, MemberInfo> watch = null; if (!m_watch.TryGetValue(m_selectedType, out watch)) { watch = m_watch[m_selectedType] = new MyListDictionary <MemberInfo, MemberInfo>(); } var lst = watch.GetList(info); if (lst != null) { watch.Remove(info); return(true); } lst = watch.GetOrAddList(info); lst.AddList(m_currentPath); lst.Add(info); } return(true); } else if (MyInput.Static.IsNewKeyPressed(MyKeys.M)) { m_showWatch = !m_showWatch; } else if (MyInput.Static.IsNewKeyPressed(MyKeys.OemPlus)) { m_scale *= 2; } else if (MyInput.Static.IsNewKeyPressed(MyKeys.OemMinus)) { m_scale /= 2; } m_counter += VRage.Input.MyInput.Static.PreviousMouseScrollWheelValue() - VRage.Input.MyInput.Static.MouseScrollWheelValue(); m_counter = (long)MyMath.Clamp(m_counter, 0, m_members.Count / 0.002f); } return(handled); }