public override bool OnMouseEvent(Editor.MouseEvent mouseEvent, MouseEventArgs mouseEventArgs)
{
if (mouseEvent == Editor.MouseEvent.MouseUp)
{
Vec2 arg_11_0 = Editor.Viewport.NormalizedMousePos;
bool flag = (Control.ModifierKeys & Keys.Control) != Keys.None;
bool flag2 = (Control.ModifierKeys & Keys.Alt) != Keys.None;
bool flag3 = (Control.ModifierKeys & Keys.Shift) != Keys.None;
EditorObjectSelection editorObjectSelection = EditorObjectSelection.Create();
if (flag || flag3 || flag2)
{
this.m_context.m_selection.Clone(editorObjectSelection, false);
}
EditorObject gizmoObject = EditorObject.Null;
RectangleF dragRectangle = this.DragRectangle;
if (this.IsDragRectangle(dragRectangle))
{
EditorObjectSelection selection;
if (flag || flag2)
{
selection = EditorObjectSelection.Create();
}
else
{
selection = editorObjectSelection;
}
ObjectManager.GetObjectsFromScreenRect(selection, this.DragRectangle);
if (flag)
{
editorObjectSelection.ToggleSelection(selection);
selection.Dispose();
}
else
{
if (flag2)
{
editorObjectSelection.RemoveSelection(selection);
selection.Dispose();
}
}
}
else
{
Vec3 vec;
EditorObject objectFromScreenPoint = ObjectManager.GetObjectFromScreenPoint(Editor.Viewport.NormalizedMousePos, out vec);
if (objectFromScreenPoint.IsValid)
{
this.m_context.SelectObject(editorObjectSelection, objectFromScreenPoint);
gizmoObject = objectFromScreenPoint;
}
}
this.m_context.SetSelection(editorObjectSelection, gizmoObject);
base.ReleaseInput();
}
return false;
}