Пример #1
0
 public static void update(List <string> arr, UiAvatarList avilist)
 {
     avilist.field_Private_Dictionary_2_String_ApiAvatar_0.Clear();
     foreach (var a in arr)
     {
         avilist.field_Private_Dictionary_2_String_ApiAvatar_0.Add(a, null);
     }
     avilist.specificListIds = arr.ToArray();
     avilist.Method_Protected_Abstract_Virtual_New_Void_Int32_0(0);
 }
Пример #2
0
        // Token: 0x0600077D RID: 1917 RVA: 0x00022CC0 File Offset: 0x00020EC0
        public static void update_list(IEnumerable <string> arr, UiAvatarList avilist)
        {
            avilist.field_Private_Dictionary_2_String_ApiAvatar_0.Clear();
            foreach (string text in arr)
            {
                if (!avilist.field_Private_Dictionary_2_String_ApiAvatar_0.ContainsKey(text))
                {
                    avilist.field_Private_Dictionary_2_String_ApiAvatar_0.Add(text, null);
                }
            }

            avilist.specificListIds = arr.ToArray <string>();
            avilist.Method_Protected_Abstract_Virtual_New_Void_Int32_0(0);
        }
Пример #3
0
 public static void setup(List <avatar_struct> avatars, UiAvatarList avilist)
 {
     avilist.field_Private_Dictionary_2_String_ApiAvatar_0.Clear();
     for (var c = 0; c < avatars.Count(); c++)
     {
         var obj     = avatars[c];
         var api_avi = new ApiAvatar()
         {
             id = obj.avatar_ident, thumbnailImageUrl = obj.avatar_preview, name = obj.avatar_name
         };
         if (!avilist.field_Private_Dictionary_2_String_ApiAvatar_0.ContainsKey(obj.avatar_ident))
         {
             avilist.field_Private_Dictionary_2_String_ApiAvatar_0.Add(obj.avatar_ident, api_avi);
         }
     }
     avilist.specificListIds = avatars.Select(x => x.avatar_ident).ToArray();
     avilist.Method_Protected_Abstract_Virtual_New_Void_Int32_0(0);
 }
Пример #4
0
        // Token: 0x0600077E RID: 1918 RVA: 0x00022D40 File Offset: 0x00020F40
        public static void setup(List <AvatarStruct> avatars, UiAvatarList avilist)
        {
            avilist.field_Private_Dictionary_2_String_ApiAvatar_0.Clear();
            for (int i = 0; i < avatars.Count <AvatarStruct>(); i++)
            {
                AvatarStruct avatar_struct = avatars[i];
                ApiAvatar    apiAvatar     = new ApiAvatar
                {
                    id = avatar_struct.AvatarID,
                    thumbnailImageUrl = avatar_struct.ThumbnailImageUrl,
                    name = avatar_struct.Name
                };

                if (!avilist.field_Private_Dictionary_2_String_ApiAvatar_0.ContainsKey(avatar_struct.AvatarID))
                {
                    avilist.field_Private_Dictionary_2_String_ApiAvatar_0.Add(avatar_struct.AvatarID, apiAvatar);
                }
            }
            avilist.specificListIds = (from x in avatars
                                       select x.AvatarID).ToArray <string>();
            avilist.Method_Protected_Abstract_Virtual_New_Void_Int32_0(0);
        }
Пример #5
0
        public override void VRChat_OnUiManagerInit()
        {
            string DoubleStandards = "emmVRC can be obfuscated but this can't be? Thats a bit shitty.";

            baseButton = Sub.GetUiObject("/Avatar/Stats Button");

            GameObject listObj = Sub.CreateObjectFrom(Sub.GetUiObject("/Avatar").transform.Find("Vertical Scroll View/Viewport/Content").transform.Find("Favorite Avatar List").gameObject);

            listObj.transform.Find("Button").GetComponentInChildren <Text>().text = "Public Avatar List";
            listObj.transform.SetSiblingIndex(0);
            listObj.SetActive(false);

            UiAvatarList listListObj = listObj.GetComponent <UiAvatarList>();

            listListObj.category = (UiAvatarList.EnumNPublicSealedvaInPuMiFaSpClPuLi9vUnique) 4;
            listListObj.StopAllCoroutines();

            Sub.CreateAvatarButton("Get Public Avatars", -(baseButton.GetComponent <RectTransform>().sizeDelta.x) - 10f, 0f, delegate()
            {
                Log("Get Public Avatars button (Avatar Menu) clicked!", true);

                ApiAvatar currentAvatar = listListObj.avatarPedestal.field_Internal_ApiAvatar_0;
                System.Collections.Generic.List <ApiAvatar> avatars = Sub.GetPublicAvatars(currentAvatar.authorId);

                MelonModLogger.Log("Got " + avatars.Count.ToString() + " Public Avatars for user " + currentAvatar.authorName);

                listObj.transform.Find("Button").GetComponentInChildren <Text>().text = "Public Avatars for user " + currentAvatar.authorName;
                listObj.SetActive(true);
                listListObj.field_Private_Dictionary_2_String_ApiAvatar_0.Clear();

                string[] arr = (from avatar in avatars select avatar.id).ToArray();
                foreach (ApiAvatar avatar in avatars)
                {
                    listListObj.field_Private_Dictionary_2_String_ApiAvatar_0.Add(avatar.id, avatar);
                }
                listListObj.specificListIds = arr;
                listListObj.Method_Protected_Abstract_Virtual_New_Void_Int32_0(0);
            }, false, "/Avatar/Favorite Button", 300f);

            Sub.CreateAvatarButton("Random Public Avatar", -(baseButton.GetComponent <RectTransform>().sizeDelta.x) - 10f, 80f, delegate()
            {
                Log("Random Public Avatar button clicked!", true);

                Sub.SwitchPedestalToRandomPublicAvatar();
            }, false, "/Avatar/Favorite Button", 300f);

            Button     SocialAvatarButton = new Button(); // Placehold
            GameObject SocialAvatarObj;

            (SocialAvatarButton, SocialAvatarObj) = Sub.CreateSocialButton("Get Public Avatars", 215f, 19f, delegate()
            {
                Log("Get Public Avatars button (Social Menu) clicked!", true);

                PageUserInfo userInfo = GameObject.Find("Screens").transform.Find("UserInfo").transform.GetComponentInChildren <PageUserInfo>();
                System.Collections.Generic.List <ApiAvatar> avatars = Sub.GetPublicAvatars(userInfo.user.id);

                MelonModLogger.Log("Got " + avatars.Count.ToString() + " Public Avatars for user " + userInfo.user.displayName);

                if (avatars.Count == 0)
                {
                    Sub.DoErrorPopup("Public Avatars for " + userInfo.user.displayName, "No public avatars were found for " + userInfo.user.displayName);
                    return;
                }

                listObj.transform.Find("Button").GetComponentInChildren <Text>().text = "Public Avatars for user " + userInfo.user.displayName;
                listObj.SetActive(true);
                listListObj.field_Private_Dictionary_2_String_ApiAvatar_0.Clear();

                string[] arr = (from avatar in avatars select avatar.id).ToArray();
                foreach (ApiAvatar avatar in avatars)
                {
                    listListObj.field_Private_Dictionary_2_String_ApiAvatar_0.Add(avatar.id, avatar);
                }
                listListObj.specificListIds = arr;
                listListObj.Method_Protected_Abstract_Virtual_New_Void_Int32_0(0);

                // Switch to avatar page
                VRCUiManager.prop_VRCUiManager_0.Method_Public_VRCUiPage_VRCUiPage_0(Sub.GetUiObject("/Avatar").gameObject.GetComponentInChildren <VRCUiPage>());
            }, xsize: 200f);

            Sub.CreateSlider(Sub.GetUiObject("/Avatar/Stats Button").transform.parent, baseButton.transform.localPosition.x, baseButton.transform.localPosition.y + (80f * 3), baseButton.GetComponent <RectTransform>().sizeDelta.x, 0f, 360f, delegate(float val)
            {
                Log("Slider value changed to " + val.ToString(), true);
                try
                {
                    Transform tf = GameObject.Find("Screens").transform.Find("Avatar").GetComponent <PageAvatar>().avatar.field_Private_GameObject_0.transform;

                    tf.localRotation = Quaternion.Euler(new Vector3(0, tf.localRotation.eulerAngles.y + (val - lastVal), 0));

                    lastVal         = val;
                    skipRotationFix = true;
                }
                catch (Exception e)
                {
                    WarnLog("Failed to change avatar preview rotation.", true);
                }
            }, 180f);

            emmCheck = true;
        }