コード例 #1
0
ファイル: Patches.cs プロジェクト: aedenthorn/mytimeatportia
            static void Prefix(ActorEquip __instance, string[] ___nudeAppearUnits, string[] ___equipAppearUnits, GameObject clothRoot, bool showHat, AppearData ___appearData, string ___tattooPath)
            {
                return;

                List <AppearUnit> list         = new List <AppearUnit>();
                AppearUnit        tattooTarget = null;

                for (int i = 0; i < 5; i++)
                {
                    if (___nudeAppearUnits.Length > i && ___nudeAppearUnits[i] != null)
                    {
                        AppearUnit appearUnit = null;
                        if (i < ___equipAppearUnits.Length && !string.IsNullOrEmpty(___equipAppearUnits[i]) && ((showHat && Singleton <OptionsMgr> .Self.ShowHat) || i != 1))
                        {
                            AppearUnit appearUnit2 = Singleton <ResMgr> .Instance.LoadSyncByType <AppearUnit>(AssetType.Appear, ___equipAppearUnits[i]);

                            if (appearUnit2 != null)
                            {
                                appearUnit = appearUnit2;
                            }
                        }
                        else
                        {
                            appearUnit = Singleton <ResMgr> .Instance.LoadSyncByType <AppearUnit>(AssetType.Appear, ___nudeAppearUnits[i]);
                        }
                        if (appearUnit != null)
                        {
                            list.Add(appearUnit);
                            if (i == 0)
                            {
                                tattooTarget = appearUnit;
                            }
                        }
                    }
                }
                if (clothRoot == null)
                {
                    clothRoot = __instance.ClothRoot;
                }
                AppearTarget.Instance.SetRoot(clothRoot);
                AppearTarget.Instance.BuildMesh(list, ___appearData, tattooTarget, ___tattooPath);
                MethodInfo dynMethod = __instance.GetType().GetMethod("ApplyDyboneConfigs", BindingFlags.NonPublic | BindingFlags.Instance);

                dynMethod.Invoke(__instance, new object[] { AppearTarget.Instance.BoneDic });
            }
コード例 #2
0
ファイル: Main.cs プロジェクト: aedenthorn/mytimeatportia
            static void Postfix(Player __instance)
            {
                if (!enabled)
                {
                    return;
                }

                string[] array = new string[5];
                for (int i = 0; i < array.Length; i++)
                {
                    AppearPartEnum        part       = (AppearPartEnum)i;
                    ActorEquip.EEquipSlot eequipSlot = ActorEquip.AppaerPartEnumToEEquipSlot(part);
                    if (eequipSlot != ActorEquip.EEquipSlot.Max)
                    {
                        array[i] = __instance.GetInfo(__instance.bag.EquipSlot.GetItemEquipmentCmpt(eequipSlot));
                    }
                }

                Dbgl($"updating appearances");

                Actor emily = ActorMgr.Self.Get(4000003);
                Actor alice = ActorMgr.Self.Get(4000050);

                emily.gameObject.AddComponent <ActorEquip>();
                alice.gameObject.AddComponent <ActorEquip>();

                ActorMgr.Self.Get(4000003).SetEquipInfo(array);
                ActorMgr.Self.Get(4000050).SetEquipInfo(array);

                AccessTools.FieldRefAccess <ActorEquip, string[]>(emily.GetComponent <ActorEquip>(), "nudeAppearUnits") = Module <Player> .Self.actor.GetComponent <ActorEquip>().GetCurrentNudeAppearsPath();

                AccessTools.FieldRefAccess <ActorEquip, string[]>(emily.GetComponent <ActorEquip>(), "equipAppearUnits") = Module <Player> .Self.actor.GetComponent <ActorEquip>().GetCurrentNudeAppearsPath();

                AccessTools.FieldRefAccess <ActorEquip, string[]>(alice.GetComponent <ActorEquip>(), "nudeAppearUnits") = Module <Player> .Self.actor.GetComponent <ActorEquip>().GetCurrentNudeAppearsPath();

                AccessTools.FieldRefAccess <ActorEquip, string[]>(alice.GetComponent <ActorEquip>(), "equipAppearUnits") = Module <Player> .Self.actor.GetComponent <ActorEquip>().GetCurrentNudeAppearsPath();

                emily.ApplyCloth(true);
                alice.ApplyCloth(true);
            }
コード例 #3
0
ファイル: Main.cs プロジェクト: aedenthorn/mytimeatportia
            static bool Prefix(ref SkinnedMeshRenderer __result, ref ActorEquip __instance, string[] ___nudeAppearUnits,
                               string[] ___equipAppearUnits, ref AppearData ___appearData, ref string ___tattooPath,
                               GameObject clothRoot = null, bool showHat = true)
            {
                List <AppearUnit> list         = new List <AppearUnit>();
                AppearUnit        tattooTarget = null;

                for (int i = 0; i < 5; i++)
                {
                    if (___nudeAppearUnits.Length > i && ___nudeAppearUnits[i] != null)
                    {
                        AppearUnit appearUnit = null;
                        if (i < ___equipAppearUnits.Length && !string.IsNullOrEmpty(___equipAppearUnits[i]) &&
                            ((showHat && Singleton <OptionsMgr> .Self.ShowHat) || i != 1))
                        {
                            AppearUnit appearUnit2 =
                                Singleton <ResMgr> .Instance.LoadSyncByType <AppearUnit>(AssetType.Appear,
                                                                                         ___equipAppearUnits[i]);

                            if (appearUnit2 != null)
                            {
                                Dbgl("ActorEquip path: " + ___equipAppearUnits[i]);
                                foreach (string key in customClothes.Keys)
                                {
                                    if (___equipAppearUnits[i].EndsWith(key))
                                    {
                                        appearUnit2.Smr.material.SetTexture("_MainTex", customClothes[key]);
                                    }
                                }

                                appearUnit = appearUnit2;
                            }
                        }
                        else
                        {
                            appearUnit =
                                Singleton <ResMgr> .Instance.LoadSyncByType <AppearUnit>(AssetType.Appear,
                                                                                         ___nudeAppearUnits[i]);
                        }

                        if (appearUnit != null)
                        {
                            list.Add(appearUnit);
                            if (i == 0)
                            {
                                tattooTarget = appearUnit;
                            }
                        }
                    }
                }

                if (clothRoot == null)
                {
                    clothRoot = __instance.ClothRoot;
                }

                AppearTarget.Instance.SetRoot(clothRoot);
                SkinnedMeshRenderer result =
                    AppearTarget.Instance.BuildMesh(list, ___appearData, tattooTarget, ___tattooPath);

                MethodInfo dynMethod = __instance.GetType()
                                       .GetMethod("ApplyDyboneConfigs", BindingFlags.NonPublic | BindingFlags.Instance);

                dynMethod.Invoke(__instance, new object[] { AppearTarget.Instance.BoneDic });

                __result = result;
                return(false);
            }