private void MaterialListing()
{
ProceduralMaterial[] sortedMaterials = this.GetSortedMaterials();
foreach (ProceduralMaterial material in sortedMaterials)
{
if (material.isProcessing)
{
base.Repaint();
SceneView.RepaintAll();
GameView.RepaintAll();
break;
}
}
int length = sortedMaterials.Length;
float num3 = ((GUIView.current.position.width - 16f) - 18f) - 2f;
if ((num3 * 2f) < (length * 60f))
{
num3 -= 16f;
}
int num4 = Mathf.Max(1, Mathf.FloorToInt(num3 / 60f));
int num5 = Mathf.CeilToInt(((float) length) / ((float) num4));
Rect viewRect = new Rect(0f, 0f, num4 * 60f, num5 * 76f);
Rect rect = GUILayoutUtility.GetRect(viewRect.width, Mathf.Clamp(viewRect.height, 76f, 152f) + 1f);
Rect position = new Rect(rect.x + 1f, rect.y + 1f, rect.width - 2f, rect.height - 1f);
GUI.Box(rect, GUIContent.none, this.m_SubstanceStyles.gridBackground);
GUI.Box(position, GUIContent.none, this.m_SubstanceStyles.background);
this.m_ListScroll = GUI.BeginScrollView(position, this.m_ListScroll, viewRect, false, false);
if (this.m_EditorCache == null)
{
this.m_EditorCache = new EditorCache(EditorFeatures.PreviewGUI);
}
for (int i = 0; i < sortedMaterials.Length; i++)
{
ProceduralMaterial target = sortedMaterials[i];
if (target != null)
{
float x = (i % num4) * 60f;
float y = (i / num4) * 76f;
Rect rect5 = new Rect(x, y, 60f, 76f);
bool on = target.name == this.m_SelectedMaterialInstanceName;
Event current = Event.current;
int controlID = GUIUtility.GetControlID(previewNoDragDropHash, FocusType.Passive, rect5);
switch (current.GetTypeForControl(controlID))
{
case EventType.Repaint:
{
Rect rect6 = rect5;
rect6.y = rect5.yMax - 16f;
rect6.height = 16f;
this.m_SubstanceStyles.resultsGridLabel.Draw(rect6, EditorGUIUtility.TempContent(target.name), false, false, on, on);
break;
}
case EventType.MouseDown:
if ((current.button == 0) && rect5.Contains(current.mousePosition))
{
if (current.clickCount == 1)
{
this.m_SelectedMaterialInstanceName = target.name;
current.Use();
}
else if (current.clickCount == 2)
{
AssetDatabase.OpenAsset(target);
GUIUtility.ExitGUI();
current.Use();
}
}
break;
}
rect5.height -= 16f;
this.m_EditorCache[target].OnPreviewGUI(rect5, this.m_SubstanceStyles.background);
}
}
GUI.EndScrollView();
}