internal UIElement CreateItemCataloguePanel() { mainPanel = new ItemCatalogueUIPanel(); mainPanel.SetPadding(6); mainPanel.BackgroundColor = color; mainPanel.Top.Set(20, 0f); mainPanel.Height.Set(-20, 1f); mainPanel.Width.Set(0, 1f); /*var inlaidPanel = new UIPanel(); * inlaidPanel.SetPadding(6); * inlaidPanel.Width.Set(0, .8f); * inlaidPanel.Height.Set(65, 0f); * inlaidPanel.HAlign = 0.5f; * inlaidPanel.VAlign = 0.5f; * inlaidPanel.BackgroundColor = Color.DarkBlue; * mainPanel.Append(inlaidPanel); * * var text = new UIText("Coming Soon", 1.8f); * text.HAlign = 0.5f; * text.VAlign = 0.5f; * inlaidPanel.Append(text);*/ itemNameFilter = new NewUITextBox(RBText("FilterByName", "Common")); itemNameFilter.OnTextChanged += () => { ValidateItemFilter(); updateNeeded = true; }; itemNameFilter.OnTabPressed += () => { itemDescriptionFilter.Focus(); }; itemNameFilter.Top.Pixels = 0f; itemNameFilter.Left.Set(-150, 1f); itemNameFilter.Width.Set(150, 0f); itemNameFilter.Height.Set(25, 0f); mainPanel.Append(itemNameFilter); itemDescriptionFilter = new NewUITextBox(RBText("FilterByTooltip", "Common")); itemDescriptionFilter.OnTextChanged += () => { ValidateItemDescription(); updateNeeded = true; }; itemDescriptionFilter.OnTabPressed += () => { itemNameFilter.Focus(); }; itemDescriptionFilter.Top.Pixels = 30f; itemDescriptionFilter.Left.Set(-150, 1f); itemDescriptionFilter.Width.Set(150, 0f); itemDescriptionFilter.Height.Set(25, 0f); mainPanel.Append(itemDescriptionFilter); CraftedRadioButton = new UICheckbox(RBText("Crafted"), RBText("OnlyShowCraftedItems")); CraftedRadioButton.Top.Set(0, 0f); CraftedRadioButton.Left.Set(-270, 1f); CraftedRadioButton.OnSelectedChanged += (a, b) => updateNeeded = true; mainPanel.Append(CraftedRadioButton); LootRadioButton = new UICheckbox(RBText("Loot"), RBText("ShowOnlyLootItems")); LootRadioButton.Top.Set(20, 0f); LootRadioButton.Left.Set(-270, 1f); LootRadioButton.OnSelectedChanged += (a, b) => updateNeeded = true; mainPanel.Append(LootRadioButton); UnobtainedRadioButton = new UICheckbox(RBText("Unobtained"), "???"); UnobtainedRadioButton.Top.Set(40, 0f); UnobtainedRadioButton.Left.Set(-270, 1f); UnobtainedRadioButton.OnSelectedChanged += (a, b) => { updateNeeded = true; /*HasLootRadioButton.Selected = true;*/ }; mainPanel.Append(UnobtainedRadioButton); if (RecipeBrowser.itemChecklistInstance != null) { UnobtainedRadioButton.OnSelectedChanged += UnobtainedRadioButton_OnSelectedChanged; UnobtainedRadioButton.SetHoverText(RBText("OnlyUnobtainedItems")); } else { UnobtainedRadioButton.SetDisabled(); UnobtainedRadioButton.SetHoverText(RBText("InstallItemChecklistToUse", "Common")); } //updateNeeded = true; itemGridPanel = new UIPanel(); itemGridPanel.SetPadding(6); itemGridPanel.Top.Pixels = 60; itemGridPanel.Width.Set(0, 1f); itemGridPanel.Left.Set(0, 0f); itemGridPanel.Height.Set(-76, 1f); itemGridPanel.BackgroundColor = Color.CornflowerBlue; mainPanel.Append(itemGridPanel); itemGrid = new UIGrid(); itemGrid.alternateSort = ItemGridSort; itemGrid.Width.Set(-20, 1f); itemGrid.Height.Set(0, 1f); itemGrid.ListPadding = 2f; itemGrid.OnScrollWheel += RecipeBrowserUI.OnScrollWheel_FixHotbarScroll; itemGridPanel.Append(itemGrid); var itemGridScrollbar = new FixedUIScrollbar(RecipeBrowserUI.instance.userInterface); itemGridScrollbar.SetView(100f, 1000f); itemGridScrollbar.Height.Set(0, 1f); itemGridScrollbar.Left.Set(-20, 1f); itemGridPanel.Append(itemGridScrollbar); itemGrid.SetScrollbar(itemGridScrollbar); //"2x LMB: View Recipes --- 2x RMB: See dropping NPCs" UIText text = new UIText(RBText("BottomInstructions"), 0.85f); text.Top.Set(-14, 1f); text.HAlign = 0.5f; mainPanel.Append(text); additionalDragTargets.Add(text); additionalDragTargets.Add(SharedUI.instance.sortsAndFiltersPanel); return(mainPanel); }
internal void UpdateFavoritedPanel() { if (!favoritePanelUpdateNeeded) { return; } favoritePanelUpdateNeeded = false; // Reset All foreach (var recipeSlot in RecipeCatalogueUI.instance.recipeSlots) { recipeSlot.favorited = false; } foreach (var recipeIndex in localPlayerFavoritedRecipes) { RecipeCatalogueUI.instance.recipeSlots[recipeIndex].favorited = true; } ShowFavoritePanel = localPlayerFavoritedRecipes.Count > 0; // TODO: checkbox for force this. favoritePanel.RemoveAllChildren(); UIGrid list = new UIGrid(); list.Width.Set(0, 1f); list.Height.Set(0, 1f); list.ListPadding = 5f; list.OnScrollWheel += RecipeBrowserUI.OnScrollWheel_FixHotbarScroll; favoritePanel.Append(list); favoritePanel.AddDragTarget(list); favoritePanel.AddDragTarget(list._innerList); int width = 1; int height = 0; int order = 1; for (int i = 0; i < Main.maxPlayers; i++) { if (i != Main.myPlayer && Main.player[i].active) { foreach (var recipeIndex in Main.player[i].GetModPlayer <RecipeBrowserPlayer>().favoritedRecipes) // Collection was modified potential with receiving other player starred recipes? { Recipe r = Main.recipe[recipeIndex]; UIRecipeProgress s = new UIRecipeProgress(recipeIndex, r, order, i); order++; s.Recalculate(); var a = s.GetInnerDimensions(); s.Width.Precent = 1; list.Add(s); height += (int)(a.Height + list.ListPadding); width = Math.Max(width, (int)a.Width); favoritePanel.AddDragTarget(s); } } } foreach (var recipeIndex in localPlayerFavoritedRecipes) { Recipe r = Main.recipe[recipeIndex]; UIRecipeProgress s = new UIRecipeProgress(recipeIndex, r, order, Main.myPlayer); order++; s.Recalculate(); var a = s.GetInnerDimensions(); s.Width.Precent = 1; list.Add(s); height += (int)(a.Height + list.ListPadding); width = Math.Max(width, (int)a.Width); favoritePanel.AddDragTarget(s); } favoritePanel.Height.Pixels = height + favoritePanel.PaddingBottom + favoritePanel.PaddingTop - list.ListPadding; favoritePanel.Width.Pixels = width; favoritePanel.Recalculate(); var scrollbar = new InvisibleFixedUIScrollbar(userInterface); scrollbar.SetView(100f, 1000f); scrollbar.Height.Set(0, 1f); scrollbar.Left.Set(-20, 1f); favoritePanel.Append(scrollbar); list.SetScrollbar(scrollbar); Recipe.FindRecipes(); }
internal UIElement CreateRecipeCataloguePanel() { mainPanel = new UIPanel(); mainPanel.SetPadding(6); // mainPanel.Left.Set(400f, 0f); // mainPanel.Top.Set(400f, 0f); // mainPanel.Width.Set(475f, 0f); // + 30 // mainPanel.MinWidth.Set(415f, 0f); // mainPanel.MaxWidth.Set(784f, 0f); // mainPanel.Height.Set(350, 0f); // mainPanel.MinHeight.Set(243, 0f); // mainPanel.MaxHeight.Set(1000, 0f); mainPanel.BackgroundColor = color; //Append(mainPanel); mainPanel.Top.Set(20, 0f); mainPanel.Height.Set(-20, 1f); mainPanel.Width.Set(0, 1f); queryItem = new UIRecipeCatalogueQueryItemSlot(new Item()); queryItem.emptyHintText = RBText("EmptyQuerySlotHint"); //queryItem.OnItemChanged += () => { Main.NewText("Item changed?"); TileLookupRadioButton.SetDisabled(queryItem.item.createTile <= -1); }; mainPanel.Append(queryItem); TileLookupRadioButton = new UICheckbox(RBText("Tile"), ""); TileLookupRadioButton.Top.Set(42, 0f); TileLookupRadioButton.Left.Set(0, 0f); TileLookupRadioButton.SetText(" " + RBText("Tile")); TileLookupRadioButton.OnSelectedChanged += (s, e) => { ToggleTileChooser(!mainPanel.HasChild(tileChooserPanel)); updateNeeded = true; }; mainPanel.Append(TileLookupRadioButton); RadioButtonGroup = new UIRadioButtonGroup(); RadioButtonGroup.Left.Pixels = 45; RadioButtonGroup.Width.Set(180, 0f); UIRadioButton AllRecipesRadioButton = new UIRadioButton(RBText("AllRecipes"), ""); NearbyIngredientsRadioBitton = new UIRadioButton(RBText("NearbyChests"), RBText("ClickToRefresh")); ItemChecklistRadioButton = new UIRadioButton(RBText("ItemChecklistOnly"), "???"); RadioButtonGroup.Add(AllRecipesRadioButton); RadioButtonGroup.Add(NearbyIngredientsRadioBitton); RadioButtonGroup.Add(ItemChecklistRadioButton); mainPanel.Append(RadioButtonGroup); AllRecipesRadioButton.Selected = true; NearbyIngredientsRadioBitton.OnSelectedChanged += NearbyIngredientsRadioBitton_OnSelectedChanged; if (RecipeBrowser.itemChecklistInstance != null) { ItemChecklistRadioButton.OnSelectedChanged += ItemChecklistFilter_SelectedChanged; ItemChecklistRadioButton.SetHoverText(RBText("OnlyNewItemsMadeFromSeenItems")); //ItemChecklistRadioButton.OnRightClick += ItemChecklistRadioButton_OnRightClick; } else { ItemChecklistRadioButton.SetDisabled(); ItemChecklistRadioButton.SetHoverText(RBText("InstallItemChecklistToUse", "Common")); } itemNameFilter = new NewUITextBox(RBText("FilterByName", "Common")); itemNameFilter.OnTextChanged += () => { ValidateItemFilter(); updateNeeded = true; }; itemNameFilter.OnTabPressed += () => { itemDescriptionFilter.Focus(); }; itemNameFilter.Top.Pixels = 0f; itemNameFilter.Left.Set(-202, 1f); itemNameFilter.Width.Set(150, 0f); itemNameFilter.Height.Set(25, 0f); mainPanel.Append(itemNameFilter); itemDescriptionFilter = new NewUITextBox(RBText("FilterByTooltip", "Common")); itemDescriptionFilter.OnTextChanged += () => { ValidateItemDescription(); updateNeeded = true; }; itemDescriptionFilter.OnTabPressed += () => { itemNameFilter.Focus(); }; itemDescriptionFilter.Top.Pixels = 30f; itemDescriptionFilter.Left.Set(-202, 1f); itemDescriptionFilter.Width.Set(150, 0f); itemDescriptionFilter.Height.Set(25, 0f); mainPanel.Append(itemDescriptionFilter); recipeGridPanel = new UIPanel(); recipeGridPanel.SetPadding(6); recipeGridPanel.Top.Pixels = 120; recipeGridPanel.Width.Set(-52, 1f); recipeGridPanel.Height.Set(-50 - 120, 1f); recipeGridPanel.BackgroundColor = Color.CornflowerBlue; mainPanel.Append(recipeGridPanel); recipeGrid = new UIGrid(); recipeGrid.alternateSort = ItemGridSort; recipeGrid.Width.Set(-20f, 1f); recipeGrid.Height.Set(0, 1f); recipeGrid.ListPadding = 2f; recipeGrid.OnScrollWheel += RecipeBrowserUI.OnScrollWheel_FixHotbarScroll; recipeGridPanel.Append(recipeGrid); var lootItemsScrollbar = new FixedUIScrollbar(RecipeBrowserUI.instance.userInterface); lootItemsScrollbar.SetView(100f, 1000f); lootItemsScrollbar.Height.Set(0, 1f); lootItemsScrollbar.Left.Set(-20, 1f); recipeGridPanel.Append(lootItemsScrollbar); recipeGrid.SetScrollbar(lootItemsScrollbar); recipeInfo = new UIRecipeInfo(); // -118, 120....to 50? recipeInfo.Top.Set(-48, 1f); recipeInfo.Width.Set(-50, 1f); recipeInfo.Height.Set(50, 0f); mainPanel.Append(recipeInfo); UIPanel lootSourcePanel = new UIPanel(); lootSourcePanel.SetPadding(6); lootSourcePanel.Top.Pixels = 0; lootSourcePanel.Width.Set(50, 0f); lootSourcePanel.Left.Set(-50, 1f); lootSourcePanel.Height.Set(-16, 1f); lootSourcePanel.BackgroundColor = Color.CornflowerBlue; mainPanel.Append(lootSourcePanel); lootSourceGrid = new UIGrid(); lootSourceGrid.Width.Set(0, 1f); lootSourceGrid.Height.Set(0, 1f); lootSourceGrid.ListPadding = 2f; lootSourceGrid.OnScrollWheel += RecipeBrowserUI.OnScrollWheel_FixHotbarScroll; lootSourcePanel.Append(lootSourceGrid); var lootSourceScrollbar = new InvisibleFixedUIScrollbar(RecipeBrowserUI.instance.userInterface); lootSourceScrollbar.SetView(100f, 1000f); lootSourceScrollbar.Height.Set(0, 1f); lootSourceScrollbar.Left.Set(-20, 1f); lootSourcePanel.Append(lootSourceScrollbar); lootSourceGrid.SetScrollbar(lootSourceScrollbar); // Tile Chooser tileChooserPanel = new UIPanel(); tileChooserPanel.SetPadding(6); tileChooserPanel.Top.Pixels = 120; tileChooserPanel.Width.Set(50, 0f); tileChooserPanel.Height.Set(-50 - 120, 1f); tileChooserPanel.BackgroundColor = Color.CornflowerBlue; uniqueCheckbox = new UICycleImage(RecipeBrowser.instance.GetTexture("Images/uniqueTile") /* Thanks MiningdiamondsVIII */, 2, new string[] { "Show inherited recipes", "Show unique recipes" }, 36, 20); uniqueCheckbox.Top.Set(0, 0f); uniqueCheckbox.Left.Set(1, 0f); uniqueCheckbox.CurrentState = 1; uniqueCheckbox.OnStateChanged += (s, e) => { updateNeeded = true; }; tileChooserPanel.Append(uniqueCheckbox); tileChooserGrid = new UIGrid(); tileChooserGrid.Width.Set(0, 1f); tileChooserGrid.Height.Set(-24, 1f); tileChooserGrid.Top.Set(24, 0f); tileChooserGrid.ListPadding = 2f; tileChooserGrid.OnScrollWheel += RecipeBrowserUI.OnScrollWheel_FixHotbarScroll; tileChooserPanel.Append(tileChooserGrid); var tileChooserScrollbar = new InvisibleFixedUIScrollbar(RecipeBrowserUI.instance.userInterface); tileChooserScrollbar.SetView(100f, 1000f); tileChooserScrollbar.Height.Set(0, 1f); tileChooserScrollbar.Left.Set(-20, 1f); tileChooserPanel.Append(tileChooserScrollbar); tileChooserGrid.SetScrollbar(tileChooserScrollbar); // needed? additionalDragTargets.Add(SharedUI.instance.sortsAndFiltersPanel); recipeSlots = new List <UIRecipeSlot>(); tileSlots = new List <UITileSlot>(); updateNeeded = true; return(mainPanel); }
internal UIElement CreateBestiaryPanel() { mainPanel = new UIPanel(); mainPanel.SetPadding(6); mainPanel.BackgroundColor = color; mainPanel.Top.Set(20, 0f); mainPanel.Height.Set(-20, 1f); mainPanel.Width.Set(0, 1f); UIPanel npcGridPanel = new UIPanel(); npcGridPanel.SetPadding(6); npcGridPanel.Top.Pixels = 46; npcGridPanel.Width.Set(0, 1f); npcGridPanel.Left.Set(0, 0f); npcGridPanel.Height.Set(-52 - 46, 1f); npcGridPanel.BackgroundColor = Color.CornflowerBlue; mainPanel.Append(npcGridPanel); npcGrid = new UIGrid(); npcGrid.Width.Set(-20, 1f); npcGrid.Height.Set(0, 1f); npcGrid.ListPadding = 2f; npcGridPanel.Append(npcGrid); var npcGridScrollbar = new FixedUIScrollbar(RecipeBrowserUI.instance.userInterface); npcGridScrollbar.SetView(100f, 1000f); npcGridScrollbar.Height.Set(0, 1f); npcGridScrollbar.Left.Set(-20, 1f); npcGridPanel.Append(npcGridScrollbar); npcGrid.SetScrollbar(npcGridScrollbar); UIPanel lootPanel = new UIPanel(); lootPanel.SetPadding(6); lootPanel.Top.Set(-50, 1f); lootPanel.Width.Set(0, .5f); lootPanel.Height.Set(50, 0f); lootPanel.BackgroundColor = Color.CornflowerBlue; mainPanel.Append(lootPanel); lootGrid = new UIHorizontalGrid(); lootGrid.Width.Set(0, 1f); lootGrid.Height.Set(0, 1f); lootGrid.ListPadding = 2f; lootPanel.Append(lootGrid); var lootGridScrollbar = new InvisibleFixedUIHorizontalScrollbar(RecipeBrowserUI.instance.userInterface); lootGridScrollbar.SetView(100f, 1000f); lootGridScrollbar.Width.Set(0, 1f); lootGridScrollbar.Top.Set(-20, 1f); lootPanel.Append(lootGridScrollbar); lootGrid.SetScrollbar(lootGridScrollbar); queryItem = new UIBestiaryQueryItemSlot(new Item()); queryItem.Top.Set(2, 0f); queryItem.Left.Set(2, 0f); mainPanel.Append(queryItem); npcNameFilter = new NewUITextBox("Filter by Name"); npcNameFilter.OnTextChanged += () => { ValidateNPCFilter(); updateNeeded = true; }; npcNameFilter.Top.Set(0, 0f); npcNameFilter.Left.Set(-152, 1f); npcNameFilter.Width.Set(150, 0f); npcNameFilter.Height.Set(25, 0f); mainPanel.Append(npcNameFilter); EncounteredRadioButton = new UICheckbox("Encountered", "Show only NPC killed already"); EncounteredRadioButton.Top.Set(-40, 1f); EncounteredRadioButton.Left.Set(6, .5f); EncounteredRadioButton.OnSelectedChanged += (a, b) => updateNeeded = true; mainPanel.Append(EncounteredRadioButton); HasLootRadioButton = new UICheckbox("Has Loot", "Show only NPC with Loot"); HasLootRadioButton.Top.Set(-20, 1f); HasLootRadioButton.Left.Set(6, .5f); HasLootRadioButton.OnSelectedChanged += (a, b) => updateNeeded = true; mainPanel.Append(HasLootRadioButton); NewLootOnlyRadioButton = new UICheckbox("New Loot", "???"); NewLootOnlyRadioButton.Top.Set(-20, 1f); NewLootOnlyRadioButton.Left.Set(110, .5f); NewLootOnlyRadioButton.OnSelectedChanged += (a, b) => { updateNeeded = true; /*HasLootRadioButton.Selected = true;*/ }; mainPanel.Append(NewLootOnlyRadioButton); if (RecipeBrowser.itemChecklistInstance != null) { NewLootOnlyRadioButton.OnSelectedChanged += ItemChecklistNewLootOnlyFilter_SelectedChanged; NewLootOnlyRadioButton.SetHoverText("Show only NPC with never before seen Loot"); } else { NewLootOnlyRadioButton.SetDisabled(); NewLootOnlyRadioButton.SetHoverText("Install Item Checklist to use"); } updateNeeded = true; return(mainPanel); }
internal UIElement CreateRecipeCataloguePanel() { UIPanel mainPanel = new UIPanel(); mainPanel.SetPadding(6); // mainPanel.Left.Set(400f, 0f); // mainPanel.Top.Set(400f, 0f); // mainPanel.Width.Set(475f, 0f); // + 30 // mainPanel.MinWidth.Set(415f, 0f); // mainPanel.MaxWidth.Set(784f, 0f); // mainPanel.Height.Set(350, 0f); // mainPanel.MinHeight.Set(243, 0f); // mainPanel.MaxHeight.Set(1000, 0f); mainPanel.BackgroundColor = color; //Append(mainPanel); mainPanel.Top.Set(20, 0f); mainPanel.Height.Set(-20, 1f); mainPanel.Width.Set(0, 1f); queryItem = new UIRecipeCatalogueQueryItemSlot(new Item()); queryItem.Top.Set(2, 0f); queryItem.Left.Set(2, 0f); queryItem.OnItemChanged += () => { TileLookupRadioButton.SetDisabled(queryItem.item.createTile <= -1); }; mainPanel.Append(queryItem); TileLookupRadioButton = new UICheckbox("Tile", ""); TileLookupRadioButton.Top.Set(42, 0f); TileLookupRadioButton.Left.Set(0, 0f); TileLookupRadioButton.SetText(" Tile"); TileLookupRadioButton.OnSelectedChanged += (s, e) => { updateNeeded = true; }; TileLookupRadioButton.SetDisabled(true); mainPanel.Append(TileLookupRadioButton); RadioButtonGroup = new UIRadioButtonGroup(); RadioButtonGroup.Left.Pixels = 45; RadioButtonGroup.Width.Set(180, 0f); UIRadioButton AllRecipesRadioButton = new UIRadioButton("All Recipes", ""); NearbyIngredientsRadioBitton = new UIRadioButton("Nearby Chests", "Click to Refresh"); ItemChecklistRadioButton = new UIRadioButton("Item Checklist Only", "???"); RadioButtonGroup.Add(AllRecipesRadioButton); RadioButtonGroup.Add(NearbyIngredientsRadioBitton); RadioButtonGroup.Add(ItemChecklistRadioButton); mainPanel.Append(RadioButtonGroup); AllRecipesRadioButton.Selected = true; NearbyIngredientsRadioBitton.OnSelectedChanged += NearbyIngredientsRadioBitton_OnSelectedChanged; if (RecipeBrowser.itemChecklistInstance != null) { ItemChecklistRadioButton.OnSelectedChanged += ItemChecklistFilter_SelectedChanged; ItemChecklistRadioButton.SetHoverText("Only new Items made from Seen Items"); //ItemChecklistRadioButton.OnRightClick += ItemChecklistRadioButton_OnRightClick; } else { ItemChecklistRadioButton.SetDisabled(); ItemChecklistRadioButton.SetHoverText("Install Item Checklist to use"); } itemNameFilter = new NewUITextBox("Filter by Name"); itemNameFilter.OnTextChanged += () => { ValidateItemFilter(); updateNeeded = true; }; itemNameFilter.OnTabPressed += () => { itemDescriptionFilter.Focus(); }; itemNameFilter.Top.Pixels = 0f; itemNameFilter.Left.Set(-208, 1f); itemNameFilter.Width.Set(150, 0f); itemNameFilter.Height.Set(25, 0f); mainPanel.Append(itemNameFilter); itemDescriptionFilter = new NewUITextBox("Filter by tooltip"); itemDescriptionFilter.OnTextChanged += () => { ValidateItemDescription(); updateNeeded = true; }; itemDescriptionFilter.OnTabPressed += () => { itemNameFilter.Focus(); }; itemDescriptionFilter.Top.Pixels = 30f; itemDescriptionFilter.Left.Set(-208, 1f); itemDescriptionFilter.Width.Set(150, 0f); itemDescriptionFilter.Height.Set(25, 0f); mainPanel.Append(itemDescriptionFilter); recipeGridPanel = new UIPanel(); recipeGridPanel.SetPadding(6); recipeGridPanel.Top.Pixels = 60; recipeGridPanel.Width.Set(-60, 1f); recipeGridPanel.Height.Set(-60 - 121, 1f); recipeGridPanel.BackgroundColor = Color.DarkBlue; mainPanel.Append(recipeGridPanel); recipeGrid = new UIGrid(); recipeGrid.Width.Set(-20f, 1f); recipeGrid.Height.Set(0, 1f); recipeGrid.ListPadding = 2f; recipeGridPanel.Append(recipeGrid); var lootItemsScrollbar = new FixedUIScrollbar(RecipeBrowserUI.instance.userInterface); lootItemsScrollbar.SetView(100f, 1000f); lootItemsScrollbar.Height.Set(0, 1f); lootItemsScrollbar.Left.Set(-20, 1f); recipeGridPanel.Append(lootItemsScrollbar); recipeGrid.SetScrollbar(lootItemsScrollbar); recipeInfo = new UIRecipeInfo(); recipeInfo.Top.Set(-118, 1f); recipeInfo.Width.Set(-50, 1f); recipeInfo.Height.Set(120, 0f); mainPanel.Append(recipeInfo); UIPanel lootSourcePanel = new UIPanel(); lootSourcePanel.SetPadding(6); lootSourcePanel.Top.Pixels = 0; lootSourcePanel.Width.Set(50, 0f); lootSourcePanel.Left.Set(-50, 1f); lootSourcePanel.Height.Set(-16, 1f); lootSourcePanel.BackgroundColor = Color.CornflowerBlue; mainPanel.Append(lootSourcePanel); lootSourceGrid = new UIGrid(); lootSourceGrid.Width.Set(0, 1f); lootSourceGrid.Height.Set(0, 1f); lootSourceGrid.ListPadding = 2f; lootSourcePanel.Append(lootSourceGrid); var lootSourceScrollbar = new InvisibleFixedUIScrollbar(RecipeBrowserUI.instance.userInterface); lootSourceScrollbar.SetView(100f, 1000f); lootSourceScrollbar.Height.Set(0, 1f); lootSourceScrollbar.Left.Set(-20, 1f); lootSourcePanel.Append(lootSourceScrollbar); lootSourceGrid.SetScrollbar(lootSourceScrollbar); recipeSlots = new List <UIRecipeSlot>(); updateNeeded = true; return(mainPanel); }
internal UIElement CreateItemCataloguePanel() { mainPanel = new UIPanel(); mainPanel.SetPadding(6); mainPanel.BackgroundColor = color; mainPanel.Top.Set(20, 0f); mainPanel.Height.Set(-20, 1f); mainPanel.Width.Set(0, 1f); /*var inlaidPanel = new UIPanel(); * inlaidPanel.SetPadding(6); * inlaidPanel.Width.Set(0, .8f); * inlaidPanel.Height.Set(65, 0f); * inlaidPanel.HAlign = 0.5f; * inlaidPanel.VAlign = 0.5f; * inlaidPanel.BackgroundColor = Color.DarkBlue; * mainPanel.Append(inlaidPanel); * * var text = new UIText("Coming Soon", 1.8f); * text.HAlign = 0.5f; * text.VAlign = 0.5f; * inlaidPanel.Append(text);*/ itemNameFilter = new NewUITextBox("Filter by Name"); itemNameFilter.OnTextChanged += () => { ValidateItemFilter(); updateNeeded = true; }; itemNameFilter.OnTabPressed += () => { itemDescriptionFilter.Focus(); }; itemNameFilter.Top.Pixels = 0f; itemNameFilter.Left.Set(-152, 1f); itemNameFilter.Width.Set(150, 0f); itemNameFilter.Height.Set(25, 0f); mainPanel.Append(itemNameFilter); itemDescriptionFilter = new NewUITextBox("Filter by tooltip"); itemDescriptionFilter.OnTextChanged += () => { ValidateItemDescription(); updateNeeded = true; }; itemDescriptionFilter.OnTabPressed += () => { itemNameFilter.Focus(); }; itemDescriptionFilter.Top.Pixels = 30f; itemDescriptionFilter.Left.Set(-152, 1f); itemDescriptionFilter.Width.Set(150, 0f); itemDescriptionFilter.Height.Set(25, 0f); mainPanel.Append(itemDescriptionFilter); // Sorts // Filters: Categories? // Craft and Loot Badges as well! // Hide with alt click? // show hidden toggle // Favorite: Only affects sort order? CraftedRadioButton = new UICheckbox("Crafted", "Only show crafted items"); CraftedRadioButton.Top.Set(0, 0f); CraftedRadioButton.Left.Set(-270, 1f); CraftedRadioButton.OnSelectedChanged += (a, b) => updateNeeded = true; mainPanel.Append(CraftedRadioButton); LootRadioButton = new UICheckbox("Loot", "Show only loot items"); LootRadioButton.Top.Set(20, 0f); LootRadioButton.Left.Set(-270, 1f); LootRadioButton.OnSelectedChanged += (a, b) => updateNeeded = true; mainPanel.Append(LootRadioButton); UnobtainedRadioButton = new UICheckbox("Unobtained", "???"); UnobtainedRadioButton.Top.Set(40, 0f); UnobtainedRadioButton.Left.Set(-270, 1f); UnobtainedRadioButton.OnSelectedChanged += (a, b) => { updateNeeded = true; /*HasLootRadioButton.Selected = true;*/ }; mainPanel.Append(UnobtainedRadioButton); if (RecipeBrowser.itemChecklistInstance != null) { UnobtainedRadioButton.OnSelectedChanged += UnobtainedRadioButton_OnSelectedChanged; UnobtainedRadioButton.SetHoverText("Only unobtained items"); } else { UnobtainedRadioButton.SetDisabled(); UnobtainedRadioButton.SetHoverText("Install Item Checklist to use"); } //updateNeeded = true; UIPanel itemGridPanel = new UIPanel(); itemGridPanel.SetPadding(6); itemGridPanel.Top.Pixels = 60; itemGridPanel.Width.Set(0, 1f); itemGridPanel.Left.Set(0, 0f); itemGridPanel.Height.Set(-76, 1f); itemGridPanel.BackgroundColor = Color.CornflowerBlue; mainPanel.Append(itemGridPanel); itemGrid = new UIGrid(); itemGrid.Width.Set(-20, 1f); itemGrid.Height.Set(0, 1f); itemGrid.ListPadding = 2f; itemGridPanel.Append(itemGrid); var itemGridScrollbar = new FixedUIScrollbar(RecipeBrowserUI.instance.userInterface); itemGridScrollbar.SetView(100f, 1000f); itemGridScrollbar.Height.Set(0, 1f); itemGridScrollbar.Left.Set(-20, 1f); itemGridPanel.Append(itemGridScrollbar); itemGrid.SetScrollbar(itemGridScrollbar); UIText text = new UIText("2x LMB: View Recipes --- 2x RMB: See dropping NPCs", 0.85f); text.Top.Set(-14, 1f); text.HAlign = 0.5f; mainPanel.Append(text); additionalDragTargets.Add(text); return(mainPanel); }