Beispiel #1
0
 public static void UnregisterResize(GUI.IResizeable resizeable)
 {
     _ResizeHandles.Remove(resizeable);
 }
Beispiel #2
0
        /// <summary>
        /// This method is called by Unity each frame
        /// </summary>
        void OnGUI()
        {
            if (TrasparentGUIStyle == null)
            {
                UnityEngine.Texture2D emptyText = InternalResources.ReadResourceAsTexture2D("Transparent");

                TrasparentGUIStyle = new UnityEngine.GUIStyle();
                TrasparentGUIStyle.active.background    = emptyText;
                TrasparentGUIStyle.hover.background     = emptyText;
                TrasparentGUIStyle.normal.background    = emptyText;
                TrasparentGUIStyle.onActive.background  = emptyText;
                TrasparentGUIStyle.onFocused.background = emptyText;
                TrasparentGUIStyle.onHover.background   = emptyText;
                TrasparentGUIStyle.onNormal.background  = emptyText;
            }

            if (_tick > 100000)
            {
                _tick = 0;
            }

            if (_DefaultSkin == null)
            {
                _DefaultSkin = UnityEngine.GUI.skin;
            }

            if (_tick % 10 == 0)
            {
                UnityEngine.GUI.skin = _DefaultSkin;
            }

            ModLoader.Instance.__OnGui();
            _tick++;

            if (_ResizeHandles.Count > 0)
            {
                UnityEngine.GUI.Box(new UnityEngine.Rect(0, 0, UnityEngine.Screen.width, UnityEngine.Screen.height), "", TrasparentGUIStyle);

                if ((UnityEngine.Event.current.type == UnityEngine.EventType.mouseUp && UnityEngine.Event.current.button == 0))
                {
                    GUI.IResizeable[] resizeables = new GUI.IResizeable[_ResizeHandles.Count];
                    _ResizeHandles.CopyTo(resizeables, 0);

                    foreach (GUI.IResizeable resizeable in resizeables)
                    {
                        resizeable.ResizeEnd(UnityEngine.Event.current.mousePosition);
                    }
                }
            }

            foreach (Mod M in ModLoader.Instance.Mods.Where(m => m.Enabled))
            {
                try
                {
                    if (!M._FirstGuiPassCalled)
                    {
                        M.OnCreateGUI();
                        M._FirstGuiPassCalled = true;
                    }

                    if (ManagerMenu.mainMenuActive && M.CanShowModWindow)
                    {
                        M.ModWindow.__Draw();
                    }

                    M.OnGUI();
                }
                catch (Exception ex)
                {
                    ModLoader.Instance.ShowError(M, ex, "GUI");
                    M._Logger.LogException(ex);
                }
            }
        }
Beispiel #3
0
 public static void RegisterResize(GUI.IResizeable resizeable)
 {
     _ResizeHandles.Add(resizeable);
 }