public static void LoadTNHTemplates(TNH_CharacterDatabase CharDatabase) { TNHTweakerLogger.Log("TNHTweaker -- Performing TNH Initialization", TNHTweakerLogger.LogType.General); //Load all of the default templates into our dictionaries TNHTweakerLogger.Log("TNHTweaker -- Adding default sosigs to template dictionary", TNHTweakerLogger.LogType.General); LoadDefaultSosigs(); TNHTweakerLogger.Log("TNHTweaker -- Adding default characters to template dictionary", TNHTweakerLogger.LogType.General); LoadDefaultCharacters(CharDatabase.Characters); LoadedTemplateManager.DefaultIconSprites = TNHTweakerUtils.GetAllIcons(LoadedTemplateManager.DefaultCharacters); TNHTweakerLogger.Log("TNHTweaker -- Delayed Init of default characters", TNHTweakerLogger.LogType.General); InitCharacters(LoadedTemplateManager.DefaultCharacters, false); TNHTweakerLogger.Log("TNHTweaker -- Delayed Init of custom characters", TNHTweakerLogger.LogType.General); InitCharacters(LoadedTemplateManager.CustomCharacters, true); TNHTweakerLogger.Log("TNHTweaker -- Delayed Init of custom sosigs", TNHTweakerLogger.LogType.General); InitSosigs(LoadedTemplateManager.CustomSosigs); }
public static void RefreshTNHUI(TNH_UIManager instance, List <TNH_UIManager.CharacterCategory> Categories, TNH_CharacterDatabase CharDatabase) { TNHTweakerLogger.Log("TNHTweaker -- Refreshing TNH UI", TNHTweakerLogger.LogType.General); //Load all characters into the UI foreach (TNH_CharacterDef character in LoadedTemplateManager.LoadedCharactersDict.Keys) { if (!Categories[(int)character.Group].Characters.Contains(character.CharacterID)) { Categories[(int)character.Group].Characters.Add(character.CharacterID); CharDatabase.Characters.Add(character); } } //Update the UI Traverse instanceTraverse = Traverse.Create(instance); int selectedCategory = (int)instanceTraverse.Field("m_selectedCategory").GetValue(); int selectedCharacter = (int)instanceTraverse.Field("m_selectedCharacter").GetValue(); instanceTraverse.Method("SetSelectedCategory", selectedCategory).GetValue(); instance.OBS_CharCategory.SetSelectedButton(selectedCharacter); }
public static IEnumerator InitializeTNHMenuAsync(string path, Text progressText, Text itemsText, SceneLoader hotdog, List <TNH_UIManager.CharacterCategory> Categories, TNH_CharacterDatabase CharDatabase, TNH_UIManager instance, bool outputFiles) { hotdog.gameObject.SetActive(false); bool isOtherLoaderLoaded; try{ PokeOtherloader(); isOtherLoaderLoaded = true; } catch { isOtherLoaderLoaded = false; TNHTweakerLogger.LogWarning("TNHTweaker -- OtherLoader not found. If you are using OtherLoader, please ensure you have version 0.1.6 or later!"); } //First thing we want to do is wait for all asset bundles to be loaded in float itemLoadProgress = 0; do { yield return(null); itemLoadProgress = AsyncLoadMonitor.GetProgress(); if (isOtherLoaderLoaded) { itemLoadProgress = Mathf.Min(itemLoadProgress, GetOtherLoaderProgress()); itemsText.text = GetLoadingItems(); } progressText.text = "LOADING ITEMS : " + (int)(itemLoadProgress * 100) + "%"; }while (itemLoadProgress < 1); //Now we wait for magazine caching to be done float cachingProgress = 0; do { yield return(null); cachingProgress = PatcherStatus.PatcherProgress; itemsText.text = PatcherStatus.CacheLog; progressText.text = "CACHING ITEMS : " + (int)(cachingProgress * 100) + "%"; if (PatcherStatus.CachingFailed) { MagazineCacheFailed = true; progressText.text = "CACHING FAILED! SEE ABOVE"; throw new Exception("Magazine Caching Failed!"); } }while (cachingProgress < 1); //Now perform final steps of loading characters LoadTNHTemplates(CharDatabase); if (outputFiles) { CreateTNHFiles(path); } RefreshTNHUI(instance, Categories, CharDatabase); itemsText.text = ""; progressText.text = "CACHING COMPLETE"; hotdog.gameObject.SetActive(true); TNHInitialized = true; }