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);
        }
Beispiel #4
0
        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);
        }
Beispiel #6
0
        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);
        }