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(); } })); }
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(); } })); }
protected abstract void OnPickerSelected(IPickerElement picker);