public static void UpdateOverlays(CanvasObject obj)
        {
            if (!OverlayMenuTypes.Exists(obj))
            {
                return;
            }

            for (int i = 0; i < popups.Count; i++)
            {
                if (popups[i].Compare(obj))
                {
                    popups.RemoveAt(i);
                    return;
                }

                if (popups[i].Compare(obj.GetType()) && !OverlayMenuTypes.AllowMultiple(obj))
                {
                    popups.RemoveAt(i);
                }
            }
            IOverlayMenu menu = OverlayMenuTypes.GetMenu(obj);

            if (menu == null)
            {
                return;
            }
            popups.Add(menu);
            OverlayMenuTypes.Sort(popups);
        }
示例#2
0
 public static IOverlayMenu GetMenu(CanvasObject obj)
 {
     return(menuTypes.Single(i => i.Key.objectType == obj.GetType()).Value.GetConstructors()[0].Invoke(new object[] { obj }) as IOverlayMenu);
 }
示例#3
0
 public static bool AllowMultiple(CanvasObject obj)
 {
     return(menuTypes.Find(i => i.Key.objectType == obj.GetType()).Key.allowMultiple);
 }
示例#4
0
 public static bool Exists(CanvasObject obj)
 {
     return(menuTypes.Exists(i => i.Key.objectType == obj.GetType()));
 }