Exemple #1
0
        protected override void OnPickerSelected(IPickerElement model)
        {
            var avatar = new ApiAvatar()
            {
                id = model.Id
            };

            if (Imports.IsDebugMode())
            {
                MelonLogger.Log($"Performing an API request for {model.Id}");
            }
            avatar.Fetch(new Action <ApiContainer>((_) =>
            {
                if (Imports.IsDebugMode())
                {
                    MelonLogger.Log($"Done an API request for {model.Id}");
                }

                var canUse = avatar.releaseStatus == "public" || avatar.authorId == APIUser.CurrentUser.id;
                if (!canUse)
                {
                    myPageAvatar.avatar.DisplayErrorAvatar();
                    myPageAvatar.avatar.field_Internal_ApiAvatar_0 = avatar; // set it directly here because refreshing will load it
                }
                else
                {
                    myPageAvatar.avatar.Refresh(avatar);
                }

                RefreshFavButtons();
            }));
        }
        public void Initialize(IPickerElement pickerElement, Action <string> onClick)
        {
            myListElement = pickerElement;
            myTexture     = null;
            myOnClick     = onClick;

            if (myLabelText == null)
            {
                return;
            }

            myLabelText.text = pickerElement.Name;

            myCornerImage.gameObject.SetActive(true);
            if (!pickerElement.SupportsDesktop && !pickerElement.SupportsQuest)
            {
                myCornerImage.gameObject.SetActive(false);
            }
            else if (pickerElement.SupportsDesktop)
            {
                myCornerImage.sprite = pickerElement.SupportsQuest ? AssetsHandler.IconUni : AssetsHandler.IconPC;
            }
            else
            {
                myCornerImage.sprite = pickerElement.SupportsQuest ? AssetsHandler.IconQuest : AssetsHandler.IconUni;
            }

            myPrivateImage.SetActive(pickerElement.IsPrivate);

            if (gameObject.activeSelf)
            {
                DoDownloadImage();
            }
        }
        protected override void OnPickerSelected(IPickerElement model)
        {
            PlaySound();

            var avatar = new ApiAvatar()
            {
                id = model.Id
            };

            if (Imports.IsDebugMode())
            {
                MelonLogger.Log($"Performing an API request for {model.Id}");
            }
            avatar.Fetch(new Action <ApiContainer>((_) =>
            {
                if (Imports.IsDebugMode())
                {
                    MelonLogger.Log($"Done an API request for {model.Id}");
                }

                FavCatMod.Database?.UpdateStoredAvatar(avatar);

                var canUse = avatar.releaseStatus == "public" || avatar.authorId == APIUser.CurrentUser.id;
                if (!canUse)
                {
                    myPageAvatar.field_Public_SimpleAvatarPedestal_0.DisplayErrorAvatar();
                    myPageAvatar.field_Public_SimpleAvatarPedestal_0.field_Internal_ApiAvatar_0 = avatar; // set it directly here because refreshing will load it
                }
                else
                {
                    myPageAvatar.field_Public_SimpleAvatarPedestal_0.Refresh(avatar);
                }

                // VRC has a tendency to change visibility of its lists after pedestal refresh
                ReorderLists();
                RefreshFavButtons();
            }), new Action <ApiContainer>(c =>
            {
                if (Imports.IsDebugMode())
                {
                    MelonLogger.Log("API request errored with " + c.Code + " - " + c.Error);
                }
                if (c.Code == 404 && listsParent.gameObject.activeInHierarchy)
                {
                    FavCatMod.Database.CompletelyDeleteAvatar(model.Id);
                    var menu = ExpansionKitApi.CreateCustomFullMenuPopup(LayoutDescription.WideSlimList);
                    menu.AddSpacer();
                    menu.AddSpacer();
                    menu.AddLabel("This avatar is not available anymore (deleted)");
                    menu.AddLabel("It has been removed from all favorite lists");
                    menu.AddSpacer();
                    menu.AddSpacer();
                    menu.AddSpacer();
                    menu.AddSimpleButton("Close", menu.Hide);
                    menu.Show();
                }
            }));
        }
        protected override void OnPickerSelected(IPickerElement model)
        {
            PlaySound();

            if (FavCatSettings.AvatarSearchMode.Value == "author")
            {
                FavCatMod.Instance.playerModule?.OnPickerSelected(((IStoredModelAdapter <StoredAvatar>)model).Model.AuthorId, listsParent.gameObject); //TO-FIX
                return;
            }

            var avatar = new ApiAvatar()
            {
                id = model.Id
            };

            if (MelonDebug.IsEnabled())
            {
                MelonDebug.Msg($"Performing an API request for {model.Id}");
            }
            avatar.Fetch(new Action <ApiContainer>((_) =>
            {
                if (MelonDebug.IsEnabled())
                {
                    MelonDebug.Msg($"Done an API request for {model.Id}");
                }

                FavCatMod.Database?.UpdateStoredAvatar(avatar);

                myPageAvatar.field_Public_SimpleAvatarPedestal_0.Refresh(avatar);

                // VRC has a tendency to change visibility of its lists after pedestal refresh
                ReorderLists();
                RefreshFavButtons();
            }), new Action <ApiContainer>(c =>
            {
                if (MelonDebug.IsEnabled())
                {
                    MelonDebug.Msg("API request errored with " + c.Code + " - " + c.Error);
                }
                if (c.Code == 404 && listsParent.gameObject.activeInHierarchy)
                {
                    FavCatMod.Database.CompletelyDeleteAvatar(model.Id);
                    var menu = ExpansionKitApi.CreateCustomFullMenuPopup(LayoutDescription.WideSlimList);
                    menu.AddSpacer();
                    menu.AddSpacer();
                    menu.AddLabel("This avatar is not available anymore (deleted or privated)");
                    menu.AddLabel("It has been removed from all favorite lists");
                    menu.AddSpacer();
                    menu.AddSpacer();
                    menu.AddSpacer();
                    menu.AddSimpleButton("Close", menu.Hide);
                    menu.Show();
                }
            }));
        }
Exemple #5
0
        protected override void OnPickerSelected(IPickerElement picker)
        {
            if (picker.Id == myLastRequestedWorld)
            {
                return;
            }

            PlaySound();

            myLastRequestedWorld = picker.Id;
            var world = new ApiWorld {
                id = picker.Id
            };

            world.Fetch(new Action <ApiContainer>(_ =>
            {
                myLastRequestedWorld = "";
                if (listsParent.gameObject.activeInHierarchy)
                {
                    ScanningReflectionCache.DisplayWorldInfoPage(world, null, false, null);
                }
            }), new Action <ApiContainer>(c =>
            {
                myLastRequestedWorld = "";
                if (MelonDebug.IsEnabled())
                {
                    MelonDebug.Msg("API request errored with " + c.Code + " - " + c.Error);
                }
                if (c.Code == 404 && listsParent.gameObject.activeInHierarchy)
                {
                    FavCatMod.Database.CompletelyDeleteWorld(picker.Id);
                    var menu = ExpansionKitApi.CreateCustomFullMenuPopup(LayoutDescription.WideSlimList);
                    menu.AddSpacer();
                    menu.AddSpacer();
                    menu.AddLabel("This world is not available anymore (deleted)");
                    menu.AddLabel("It has been removed from all favorite lists");
                    menu.AddSpacer();
                    menu.AddSpacer();
                    menu.AddSpacer();
                    menu.AddSimpleButton("Close", menu.Hide);
                    menu.Show();
                }
            }));
        }
Exemple #6
0
 protected abstract void OnPickerSelected(IPickerElement picker);