private void HandleMouseInput()
{
List<CubemapInfo> hdriList = this.m_LookDevView.envLibrary.hdriList;
Vector2 pos = new Vector2(Event.current.mousePosition.x, Event.current.mousePosition.y + this.m_ScrollPosition.y);
Event current = Event.current;
EventType typeForControl = current.GetTypeForControl(this.m_LookDevView.hotControl);
switch (typeForControl)
{
case EventType.MouseUp:
if (this.m_SelectedCubemap != null)
{
Rect gUIRect = this.m_GUIRect;
gUIRect.yMax += 16f;
if (!gUIRect.Contains(Event.current.mousePosition))
{
break;
}
int insertionIndex = this.IsPositionInInsertionArea(pos);
if (insertionIndex == -1)
{
int num2 = this.IsPositionInThumbnailArea(pos);
if ((num2 != -1) && this.m_LookDevView.config.enableShadowCubemap)
{
Undo.RecordObject(this.m_LookDevView.envLibrary, "Update shadow cubemap");
CubemapInfo info2 = this.m_LookDevView.envLibrary.hdriList[num2];
if (info2 != this.m_SelectedCubemapInfo)
{
info2.SetCubemapShadowInfo(this.m_SelectedCubemapInfo);
}
this.m_LookDevView.envLibrary.dirty = true;
}
}
else
{
this.ResetShadowCubemap();
this.m_LookDevView.envLibrary.InsertHDRI(this.m_SelectedCubemap, insertionIndex);
}
this.CancelSelection();
}
break;
case EventType.MouseDrag:
if (this.m_SelectedCubeMapOffsetIndex != -1)
{
Undo.RecordObject(this.m_LookDevView.envLibrary, "");
CubemapInfo info = hdriList[this.m_SelectedCubeMapOffsetIndex];
info.angleOffset = this.ComputeAngleOffsetFromMouseCoord(pos) + this.m_SelectedCubeMapOffsetValue;
this.m_LookDevView.envLibrary.dirty = true;
Event.current.Use();
}
if (this.m_SelectedCubemapInfo != null)
{
if (this.IsPositionInInsertionArea(pos) == -1)
{
this.m_HoveringCubeMapIndex = this.IsPositionInThumbnailArea(pos);
}
else
{
this.m_HoveringCubeMapIndex = -1;
}
}
this.m_LookDevView.Repaint();
return;
case EventType.KeyDown:
if (Event.current.keyCode == KeyCode.Escape)
{
this.CancelSelection();
this.m_LookDevView.Repaint();
}
return;
case EventType.Repaint:
if (this.m_SelectedCubeMapOffsetIndex != -1)
{
EditorGUIUtility.AddCursorRect(this.m_displayRect, MouseCursor.SlideArrow);
}
return;
case EventType.DragUpdated:
{
bool flag = false;
foreach (Object obj3 in DragAndDrop.objectReferences)
{
Cubemap cubemap2 = obj3 as Cubemap;
if (cubemap2 != null)
{
flag = true;
}
}
DragAndDrop.visualMode = !flag ? DragAndDropVisualMode.Rejected : DragAndDropVisualMode.Link;
if (flag)
{
this.m_DragBeingPerformed = true;
}
current.Use();
return;
}
case EventType.DragPerform:
{
int num3 = this.IsPositionInInsertionArea(pos);
foreach (Object obj2 in DragAndDrop.objectReferences)
{
Cubemap cubemap = obj2 as Cubemap;
if (cubemap != null)
{
this.m_LookDevView.envLibrary.InsertHDRI(cubemap, num3);
}
}
DragAndDrop.AcceptDrag();
this.m_DragBeingPerformed = false;
current.Use();
return;
}
default:
if (typeForControl == EventType.DragExited)
{
}
return;
}
this.m_LookDevView.Repaint();
if ((this.m_SelectedCubeMapOffsetIndex != -1) && (Mathf.Abs(hdriList[this.m_SelectedCubeMapOffsetIndex].angleOffset) <= 10f))
{
Undo.RecordObject(this.m_LookDevView.envLibrary, "");
hdriList[this.m_SelectedCubeMapOffsetIndex].angleOffset = 0f;
this.m_LookDevView.envLibrary.dirty = true;
}
this.m_SelectedCubemapInfo = null;
this.m_SelectedShadowCubemapOwnerInfo = null;
this.m_SelectedLightIconIndex = -1;
this.m_SelectedShadowInfo = null;
this.m_SelectedCubeMapOffsetIndex = -1;
this.m_HoveringCubeMapIndex = -1;
this.m_SelectedCubeMapOffsetValue = 0f;
GUIUtility.hotControl = 0;
}