// todo, items on load. internal void UpdateCheckboxes() { if (!updateNeeded) { return; } updateNeeded = false; checklistGrid.Clear(); if (buttonsHaveDummyTextures) { Texture2D foundFilterTexture = Utilities.ResizeImage(ItemChecklist.instance.GetTexture("Images/filterFound"), 32, 32); Texture2D muteButtonTexture = Utilities.ResizeImage(Main.itemTexture[ItemID.Megaphone], 32, 32); //Texture2D sortButtonTexture = Utilities.ResizeImage(Main.itemTexture[ItemID.ToxicFlask], 32, 32); Texture2D modFilterButtonTexture = Utilities.ResizeImage(ItemChecklist.instance.GetTexture("Images/filterMod"), 32, 32); Texture2D collectChestItemsButtonTexture = Utilities.ResizeImage(Main.cursorTextures[8], 32, 32); Texture2D showBadgeButtonTexture = Utilities.ResizeImage(Main.itemTexture[ItemID.Book], 32, 32); // Main.extraTexture[58] foundFilterButton.SetImage(foundFilterTexture); muteButton.SetImage(muteButtonTexture); modFilterButton.SetImage(modFilterButtonTexture); collectChestItemsButton.SetImage(collectChestItemsButtonTexture); showBadgeButton.SetImage(showBadgeButtonTexture); buttonsHaveDummyTextures = false; } var itemChecklistPlayer = Main.LocalPlayer.GetModPlayer <ItemChecklistPlayer>(ItemChecklist.instance); var temp = new List <UIItemSlot>(); for (int i = 0; i < itemChecklistPlayer.findableItems.Length; i++) { if (itemChecklistPlayer.findableItems[i]) { // filters here if ((showCompleted != 1 && itemChecklistPlayer.foundItem[i]) || (showCompleted != 2 && !itemChecklistPlayer.foundItem[i])) { if (!PassModFilter(itemSlots[i])) { continue; } if (SharedUI.instance.SelectedCategory != null) { if (!SharedUI.instance.SelectedCategory.belongs(itemSlots[i].item) && !SharedUI.instance.SelectedCategory.subCategories.Any(x => x.belongs(itemSlots[i].item))) { continue; } } bool filtered = false; foreach (var filter in SharedUI.instance.availableFilters) { if (filter.button.selected) { if (!filter.belongs(itemSlots[i].item)) { filtered = true; } } } if (filtered) { continue; } if (itemSlots[i].item.Name.IndexOf(itemNameFilter.currentString, StringComparison.OrdinalIgnoreCase) == -1) { continue; } if (itemDescriptionFilter.currentString.Length > 0) { if ((itemSlots[i].item.ToolTip != null && GetTooltipsAsString(itemSlots[i].item.ToolTip).IndexOf(itemDescriptionFilter.currentString, StringComparison.OrdinalIgnoreCase) != -1) /*|| (recipe.createItem.toolTip2 != null && recipe.createItem.toolTip2.ToLower().IndexOf(itemDescriptionFilter.Text, StringComparison.OrdinalIgnoreCase) != -1)*/) { } else { continue; } } UIItemSlot box = itemSlots[i]; box.badge = SharedUI.instance.SelectedSort?.badge(box.item) ?? ""; temp.Add(box); } } } checklistGrid.AddRange(temp); if (lastfoundID > 0) { checklistGrid.Recalculate(); if (showCompleted != 1) // Don't Goto when unfound is the display mode. { checklistGrid.Goto(delegate(UIElement element) { UIItemSlot itemSlot = element as UIItemSlot; return(itemSlot != null && itemSlot.id == lastfoundID); }, true); } lastfoundID = -1; } }