Esempio n. 1
0
    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();
    }
Esempio n. 2
0
    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();
    }