private void ActionObjectsUpdated(object sender, Base.StringEventArgs eventArgs) { foreach (ActionObjectButton b in ActionObjectsContent.GetComponentsInChildren <ActionObjectButton>()) { if (b.gameObject.tag == "PersistentButton") { continue; } else { Destroy(b.gameObject); } } foreach (Base.ActionObjectMetadata actionObjectMetadata in Base.ActionsManager.Instance.ActionObjectMetadata.Values) { if (Base.ActionsManager.Instance.ActionObjectMetadata.TryGetValue(actionObjectMetadata.Type, out Base.ActionObjectMetadata actionObject)) { if (actionObject.Abstract) { continue; } } else { continue; } GameObject btnGO = Instantiate(ActionObjectButtonPrefab, ActionObjectsContent.transform); ActionObjectButton btn = btnGO.GetComponent <ActionObjectButton>(); btn.SetLabel(actionObjectMetadata.Type); btn.Button.onClick.AddListener(() => AddObjectToScene(actionObjectMetadata.Type)); btn.RemoveBtn.Button.onClick.AddListener(() => ShowRemoveActionObjectDialog(actionObjectMetadata.Type)); btn.RemoveBtn.SetInteractivity(false, ""); btnGO.transform.SetAsFirstSibling(); if (eventArgs.Data == actionObjectMetadata.Type) { btn.GetComponent <ActionButton>().Highlight(2f); } btn.Button.interactable = !actionObjectMetadata.Disabled; } UpdateRemoveBtns(); }
private void ActionObjectsUpdated(object sender, Base.StringEventArgs eventArgs) { foreach (ActionObjectButton b in ActionObjectsContent.GetComponentsInChildren <ActionObjectButton>()) { if (b.gameObject.tag == "PersistentButton") { continue; } else { Destroy(b.gameObject); } } List <ActionObjectMetadata> orderedList = Base.ActionsManager.Instance.ActionObjectMetadata.Values.ToList(); orderedList.Sort( delegate(ActionObjectMetadata obj1, ActionObjectMetadata obj2) { return(obj2.Type.CompareTo(obj1 .Type)); } ); foreach (Base.ActionObjectMetadata actionObjectMetadata in orderedList) { if (Base.ActionsManager.Instance.ActionObjectMetadata.TryGetValue(actionObjectMetadata.Type, out Base.ActionObjectMetadata actionObject)) { if (actionObject.Abstract) { continue; } } else { continue; } GameObject btnGO = Instantiate(ActionObjectButtonPrefab, ActionObjectsContent.transform); ActionObjectButton btn = btnGO.GetComponent <ActionObjectButton>(); ButtonWithTooltip btnTooltip = btn.Button.GetComponent <ButtonWithTooltip>(); btn.SetLabel(actionObjectMetadata.Type); btn.Button.onClick.AddListener(() => AddObjectToScene(actionObjectMetadata.Type)); btn.RemoveBtn.Button.onClick.AddListener(() => ShowRemoveActionObjectDialog(actionObjectMetadata.Type)); btn.RemoveBtn.SetInteractivity(false, ""); btnGO.transform.SetAsFirstSibling(); if (eventArgs.Data == actionObjectMetadata.Type) { btn.GetComponent <ActionButton>().Highlight(2f); } if (SceneManager.Instance.SceneStarted) { btnTooltip.SetInteractivity(false, "Objects could not be added when scene is started"); } else { btnTooltip.SetInteractivity(!actionObjectMetadata.Disabled, actionObjectMetadata.Problem); } } UpdateRemoveBtns(); }