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);
                }
            }
        }
Exemple #2
0
            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);
            }