예제 #1
0
 /// <summary>
 /// Unloads <see cref="CursorMaker"/>, <see cref="ResourceGetter"/> and <see cref="CursorTools"/>.
 /// </summary>
 public static void Unload()
 {
     if (!m_initialized)
     {
         return;
     }
     if (addedCursorLabelTexts != null)
     {
         BraveOptionsMenuItem menu = UIRootPrefab.transform.Find("OptionsMenuPanelDave").Find("CentralOptionsPanel").Find("GameplayOptionsScrollablePanel").Find("CursorSelectorPanel").GetComponent <BraveOptionsMenuItem>();
         foreach (string str in addedCursorLabelTexts)
         {
             CursorTools.Remove(ref menu.labelOptions, str);
         }
         if (GameUIRoot.Instance != null)
         {
             BraveOptionsMenuItem instanceMenu = GameUIRoot.Instance.transform.Find("OptionsMenuPanelDave").Find("CentralOptionsPanel").Find("GameplayOptionsScrollablePanel").Find("CursorSelectorPanel").GetComponent <BraveOptionsMenuItem>();
             foreach (string str in addedCursorLabelTexts)
             {
                 CursorTools.Remove(ref instanceMenu.labelOptions, str);
             }
         }
         addedCursorLabelTexts.Clear();
         addedCursorLabelTexts = null;
     }
     if (addedCursorTextures != null)
     {
         foreach (Texture2D texture in addedCursorTextures)
         {
             CursorTools.Remove(ref UIRootPrefab.GetComponentInChildren <GameCursorController>().cursors, texture);
         }
         if (GameUIRoot.Instance != null)
         {
             foreach (Texture2D texture in addedCursorTextures)
             {
                 CursorTools.Remove(ref GameUIRoot.Instance.GetComponentInChildren <GameCursorController>().cursors, texture);
             }
         }
         addedCursorTextures.Clear();
         addedCursorTextures = null;
     }
     if (GameUIRoot.Instance != null && GameUIRoot.Instance.GetComponent <UIRootProcessedFlag>() != null)
     {
         UnityEngine.Object.Destroy(GameUIRoot.Instance.GetComponent <UIRootProcessedFlag>());
     }
     CursorTools.Unload();
     ResourceGetter.Unload();
     dfManagerStartHook?.Dispose();
     UIRootPrefab  = null;
     m_initialized = false;
 }
예제 #2
0
 /// <summary>
 /// Builds a cursor using <paramref name="cursorTex"/> as it's texture.
 /// </summary>
 /// <param name="cursorTex">The cursor's texture.</param>
 public static void BuildCursor(Texture2D cursorTex)
 {
     if (addedCursorTextures == null || addedCursorLabelTexts == null)
     {
         Init();
     }
     CursorTools.Add(ref UIRootPrefab.GetComponentInChildren <GameCursorController>().cursors, cursorTex);
     CursorTools.Add(ref UIRootPrefab.transform.Find("OptionsMenuPanelDave").Find("CentralOptionsPanel").Find("GameplayOptionsScrollablePanel").Find("CursorSelectorPanel").GetComponent <BraveOptionsMenuItem>().labelOptions, "[sprite \"" +
                     cursorTex.name + "\"]");
     if (GameUIRoot.Instance != null)
     {
         CursorTools.Add(ref GameUIRoot.Instance.GetComponentInChildren <GameCursorController>().cursors, cursorTex);
         CursorTools.Add(ref GameUIRoot.Instance.transform.Find("OptionsMenuPanelDave").Find("CentralOptionsPanel").Find("GameplayOptionsScrollablePanel").Find("CursorSelectorPanel").GetComponent <BraveOptionsMenuItem>().labelOptions, "[sprite \"" +
                         cursorTex.name + "\"]");
         GameUIRoot.Instance.gameObject.GetOrAddComponent <UIRootProcessedFlag>();
     }
     addedCursorTextures.Add(cursorTex);
     addedCursorLabelTexts.Add("[sprite \"" + cursorTex.name + "\"]");
     UIRootPrefab.Manager.DefaultAtlas.AddNewItemToAtlas(cursorTex);
 }
예제 #3
0
 /// <summary>
 /// Initializes <see cref="CursorMaker"/>, <see cref="ResourceGetter"/> and <see cref="CursorTools"/>.
 /// </summary>
 public static void Init()
 {
     if (m_initialized)
     {
         return;
     }
     addedCursorLabelTexts = new List <string>();
     addedCursorTextures   = new List <Texture2D>();
     CursorTools.Init();
     ResourceGetter.Init();
     UIRootPrefab       = CursorTools.LoadAssetFromAnywhere <GameObject>("UI Root").GetComponent <GameUIRoot>();
     dfManagerStartHook = new Hook(
         typeof(dfGUIManager).GetMethod("Start"),
         typeof(CursorMaker).GetMethod("DFManagerStartHook")
         );
     if (GameUIRoot.Instance != null)
     {
         GameUIRoot.Instance.gameObject.GetOrAddComponent <UIRootProcessedFlag>();
     }
     m_initialized = true;
 }