private void AssetBundlePopup(Rect rect, int id, IEnumerable<Object> assets, bool isVariant)
{
bool flag;
List<string> list = new List<string> {
"None",
""
};
IEnumerable<string> source = this.GetAssetBundlesFromAssets(assets, isVariant, out flag);
string[] collection = !isVariant ? AssetDatabase.GetAllAssetBundleNamesWithoutVariant() : AssetDatabase.GetAllAssetBundleVariants();
list.AddRange(collection);
list.Add("");
int count = list.Count;
list.Add("New...");
int num2 = -1;
int num3 = -1;
if (!isVariant)
{
num2 = list.Count;
list.Add("Remove Unused Names");
num3 = list.Count;
if (Enumerable.Count<string>(source) != 0)
{
list.Add("Filter Selected Name" + (!flag ? "" : "s"));
}
}
int selected = 0;
string str = Enumerable.FirstOrDefault<string>(source);
if (!string.IsNullOrEmpty(str))
{
selected = list.IndexOf(str);
}
EditorGUI.BeginChangeCheck();
EditorGUI.showMixedValue = flag;
selected = EditorGUI.DoPopup(rect, id, selected, EditorGUIUtility.TempContent(list.ToArray()), Styles.popup);
EditorGUI.showMixedValue = false;
if (EditorGUI.EndChangeCheck())
{
if (selected == 0)
{
this.SetAssetBundleForAssets(assets, null, isVariant);
}
else if (selected == count)
{
this.ShowNewAssetBundleField(isVariant);
}
else if (selected == num2)
{
AssetDatabase.RemoveUnusedAssetBundleNames();
}
else if (selected == num3)
{
this.FilterSelected(source);
}
else
{
this.SetAssetBundleForAssets(assets, list[selected], isVariant);
}
}
}