/// <summary> /// Updates all elements in the specified category. /// </summary> /// <param name="inv">The inventory of discovered elements.</param> /// <param name="category">The category to search.</param> /// <param name="overrideName">The name to override the category title</param> private void UpdateCategory(WorldInventory inv, Tag category, string overrideName = null) { if (inv.TryGetDiscoveredResourcesFromTag(category, out HashSet <Tag> found) && found.Count > 0) { // Attempt to add to type select control if (!children.TryGetValue(category, out TypeSelectCategory current)) { current = new TypeSelectCategory(this, category, overrideName); children.Add(category, current); int index = 1 + (children.IndexOfKey(category) << 1); GameObject header = current.Header, panel = current.ChildPanel; // Header goes in even indexes, panel goes in odds header.SetParent(childPanel); PUIElements.SetAnchors(header, PUIAnchoring.Stretch, PUIAnchoring.Stretch); header.transform.SetSiblingIndex(index); panel.SetParent(childPanel); PUIElements.SetAnchors(panel, PUIAnchoring.Stretch, PUIAnchoring.Stretch); panel.transform.SetSiblingIndex(index + 1); } foreach (var element in found) { current.TryAddType(element); } } }
internal TypeSelectElement(TypeSelectCategory parent, Tag elementTag) { this.parent = parent ?? throw new ArgumentNullException("parent"); ElementTag = elementTag; CheckBox = new PCheckBox("Select") { CheckSize = ROW_SIZE, SpriteSize = ROW_SIZE, OnChecked = OnCheck, Text = ElementTag.ProperName(), InitialState = PCheckBox. STATE_CHECKED, Sprite = GetStorageObjectSprite(elementTag), TextStyle = PUITuning.Fonts.TextDarkStyle }.Build(); }
internal TypeSelectElement(TypeSelectCategory parent, Tag elementTag) { this.parent = parent ?? throw new ArgumentNullException("parent"); var tint = Color.white; var sprite = parent.Control.DisableIcons ? null : GetStorageObjectSprite(elementTag, out tint); ElementTag = elementTag; CheckBox = new PCheckBox("Select") { CheckSize = ROW_SIZE, SpriteSize = ROW_SIZE, OnChecked = OnCheck, Text = ElementTag.ProperName(), InitialState = PCheckBox. STATE_CHECKED, Sprite = sprite, SpriteTint = tint, TextStyle = PUITuning.Fonts.TextDarkStyle }.Build(); }