public void SetFilterFocus(IItemFilter filterEntity) { filterHighlight.SetActive(false); this.filterEntity = filterEntity; if (filterEntity != null) { itemId = filterEntity.GetFilterItem(); string[] filterNames = filterEntity.GetFilterNames(); for (int i = 0; i < filterStateList.Count; i++) { filterToggleGroup.UnregisterToggle(filterStateList[i]); Destroy(filterStateList[i].gameObject); } filterStateList.Clear(); if (filterNames.Length > 1) { for (int i = 0; i < filterNames.Length; i++) { GameObject filterStateButton = Instantiate(filterOutputTogglePrefab, filterStatePanel.transform, false); Toggle toggle = filterStateButton.GetComponent <Toggle>(); filterStateList.Add(toggle); filterStateButton.transform.GetChild(0).GetComponent <TextMeshProUGUI>().text = filterNames[i]; toggle.group = filterToggleGroup; if (filterEntity.GetFilter() == filterNames[i]) { toggle.isOn = true; } else { toggle.isOn = false; } } for (int i = 0; i < filterStateList.Count; i++) { filterStateList[i].onValueChanged.AddListener(delegate { OnClickToggle(); }); } } else { GameObject toggleOnOff = Instantiate(filterOutputTogglePrefab, filterStatePanel.transform, false); Toggle temp = toggleOnOff.GetComponent <Toggle>(); filterStateList.Add(temp); toggleOnOff.transform.GetChild(0).GetComponent <TextMeshProUGUI>().text = "Enabled"; temp.group = filterToggleGroup; string filterString = filterEntity.GetFilter(); if (filterString == "Enabled") { temp.isOn = true; } else { temp.isOn = false; } temp.onValueChanged.AddListener(delegate { OnClickToggle(); }); } if (itemId != -1) { for (int i = 0; i < filterItemList.Count; i++) { if (filterItemList[i].GetComponent <InventorySlot>().item.id == itemId) { filterHighlight.SetActive(true); filterHighlight.transform.SetParent(filterItemList[i].transform, false); filterHighlight.transform.position = filterItemList[i].transform.position; } } } GetComponent <MenuSlideOut>().TogglePanel(MenuSlideOut.PanelState.panelOut); } else { GetComponent <MenuSlideOut>().TogglePanel(MenuSlideOut.PanelState.panelIn); } }