public static void Run() { AllMediaBundles.allBundles = new SortedDictionary <string, MediaBundles>(); List <string> sections = IniHelper.ReadSections(); foreach (var FormatType in sections) { List <SingleBundle> bundleTempList = new List <SingleBundle>(); List <string> keys = IniHelper.ReadKeys(FormatType); foreach (var one in keys) { string value = IniHelper.ReadValue(FormatType, one); int posts = 0; double charge = 0; if (int.TryParse(one, out posts) && double.TryParse(value, out charge)) { SingleBundle bundleEntity = new SingleBundle(posts, charge); if (!bundleTempList.Contains(bundleEntity)) { bundleTempList.Add(bundleEntity); } } else { Console.WriteLine("error occured while getting bundles from ini "); } } MediaBundles mediaBundles = new MediaBundles(FormatType); mediaBundles.BundleList = bundleTempList; mediaBundles.SortListByDecend(); if (!AllMediaBundles.allBundles.ContainsKey(FormatType) && bundleTempList.Count > 0) { AllMediaBundles.allBundles.Add(FormatType, mediaBundles); } } }
private static bool Prefix(Transform parent, ActorInfo __instance, ref string ___model, ref Actor __result) { if (!modelToIds.ContainsKey(___model)) { return(true); } if (false && ___model == "Actor/Npc_Nora") { Dbgl("found Nora: " + ___model); string asset = "Cg/Cutscene_Marry_CG001"; SingleBundle bundle = AccessTools.FieldRefAccess <CutSceneMngr, SingleBundle>(Singleton <CutSceneMngr> .Instance, "bundle"); if (!bundle.Loaded) { bundle.Load("cg"); } UnityEngine.Object scene = bundle.LoadAsset <GameObject>(asset, false); if (scene == null) { Dbgl($"cannot find scene: {asset}"); } else { //GameObject go = GameObject.Instantiate(scene as GameObject); GameObject go = (scene as GameObject); Dbgl("found scene: " + asset); foreach (Transform t in go.GetComponentsInChildren <Transform>()) { break; if (t.gameObject != null && t.gameObject.name == "medium_NoraNew_Model") { UnityEngine.Object @object = Singleton <ResMgr> .Instance.LoadSyncByType(AssetType.Actor, ___model, false, false); GameObject gameObject = UnityEngine.Object.Instantiate(@object, parent) as GameObject; Actor actor = gameObject.GetComponent <Actor>(); GameObject gameObject2 = GameObject.Instantiate(t.gameObject, actor.gameObject.transform); SkinnedMeshRenderer smro = gameObject.GetComponentInChildren <SkinnedMeshRenderer>(); smro = SkinnedMeshRenderer.Instantiate(gameObject2.GetComponentInChildren <SkinnedMeshRenderer>(), smro.transform.parent); //AccessTools.FieldRefAccess<Actor, SkinnedMeshRenderer>(actor, "skinnedMeshRenderer") = ; __result = actor; return(false); //__result.RefreshMeshReference(smrs[0]); } } } } string id = modelToIds[___model]; bool enable = (bool)typeof(Settings).GetField($"EnableCustomModelFor{id}").GetValue(settings); if (!enable) { return(true); } string modelId = (string)typeof(Settings).GetField($"CustomModelFor{id}").GetValue(settings); string model = idToModels[modelId]; //Dbgl($"model: {model}"); ___model = model; return(true); }