AddItem() public method

public AddItem ( string header ) : TreeViewItem,
header string
return TreeViewItem,
Example #1
0
    TreeViewItem AddPathToTreeItem(TreeViewItem item, AkWwiseProjectData.AkInformation AkInfo)
    {
        TreeViewItem parentItem = item;

        string path = "/" + RootItem.Header + "/" + item.Header;

        for (int i = 0; i < AkInfo.PathAndIcons.Count; i++)
        {
            AkWwiseProjectData.PathElement PathElem = AkInfo.PathAndIcons[i];
            TreeViewItem childItem = parentItem.FindItemByName(PathElem.ElementName);

            path = path + "/" + PathElem.ElementName;

            if (childItem == null)
            {
                if (i != AkInfo.PathAndIcons.Count - 1)
                {
                    childItem = parentItem.AddItem(PathElem.ElementName, new AkTreeInfo(0, Guid.Empty.ToByteArray(), PathElem.ObjectType), GetExpansionStatus(path));
                }
                else
                {
                    bool isDraggable = !(PathElem.ObjectType == AkWwiseProjectData.WwiseObjectType.STATEGROUP || PathElem.ObjectType == AkWwiseProjectData.WwiseObjectType.SWITCHGROUP);
                    childItem = parentItem.AddItem(PathElem.ElementName, isDraggable, GetExpansionStatus(path), new AkTreeInfo(AkInfo.ID, AkInfo.Guid, PathElem.ObjectType));
                }
            }

            AddHandlerEvents(childItem);
            parentItem = childItem;
        }

        return(parentItem);
    }
Example #2
0
    /// <summary>
    /// 添加技能
    /// </summary>
    TreeViewItem AddSkill(TreeViewItem parent, int skillId, bool createAsset = false)
    {
        try
        {
            //技能节点的数据
            ItemData itemData = new ItemData();
            itemData.resPath = ResPath + skillId + "/Skill";
            itemData.type    = ItemType.Skill;

            //增加技能节点
            TreeViewItem item = parent.AddItem(skillId.ToString());
            item.DataContext = itemData;
            AddEvents(item);

            if (createAsset)
            {
                Skill skill = ScriptableObject.CreateInstance <Skill>();
                skill.ID = skillId;
                skillTable.Add(skill.ID, skill);
                AssetEditor.CreateAsset(skill, FixedPath + skillId, "Skill");
                TreeViewItem activeEventItem = AddEvent(item, "ActiveEvent", true);
                AddAction(activeEventItem, "AnimationAction", true);
                AddAction(activeEventItem, "FinishAction", true);
                AddEvent(item, "AnimEvent", true);
            }

            return(item);
        }
        catch (Exception e)
        {
            this.ShowNotification(new GUIContent(e.Message));
        }

        return(null);
    }
Example #3
0
    /// <summary>
    /// 添加技能
    /// </summary>
    /// <param name="newSkillId">技能id</param>
    /// <param name="isCreateAsset">是否创建新的资源</param>
    static TreeViewItem AddSkill(int newSkillId, bool isCreateAsset = true)
    {
        Skill skill = ScriptableObject.CreateInstance <Skill>();

        _skillDic[skill.skillId] = skill;
        skill.skillId            = newSkillId;
        if (isCreateAsset)
        {
            AssetEditor.CreateAsset(skill, FixPath + newSkillId, "Skill");
        }

        TreeViewItem skillItem = _root.AddItem(newSkillId.ToString());
        SkillBase    data      = new SkillBase();

        data.type             = ItemType.Root;
        data.resPath          = ResPath + newSkillId + "/Skill";
        data.skillId          = newSkillId;
        skillItem.DataContext = data;
        AddEvents(skillItem);
        if (isCreateAsset)
        {
            TreeViewItem evtItem = AddSkillEventNode(skillItem, SkillEventType.ActiveEvent.ToString());
            if (evtItem != null)
            {
                AddSkillAction(evtItem, "PlayAnimator");
                AddSkillAction(evtItem, "FinishSkill");
            }
            AddSkillEventNode(skillItem, SkillEventType.AnimaEvent.ToString());
        }

        return(skillItem);
    }
Example #4
0
    /// <summary>
    /// 添加事件
    /// </summary>
    /// <param name="item">父节点</param>
    /// <param name="name">事件名</param>
    /// <param name="isCreateAsset">是否创建新的资源</param>
    /// <returns></returns>
    static TreeViewItem AddSkillEventNode(TreeViewItem item, string name, bool isCreateAsset = true)
    {
        if (name == String.Empty)
        {
            return(null);
        }
        Skill skill = RegetditSkill(item);

        if (skill == null)
        {
            return(null);
        }
        string   evtName = name;
        Assembly ass     = typeof(SkillEvent).Assembly;

        string[]    nameList = name.Split('_');
        System.Type type     = ass.GetType(nameList[0]);
        SkillEvent  evt      = System.Activator.CreateInstance(type) as SkillEvent;
        SkillBase   evtData  = new SkillBase();

        if (evt is ActiveEvent)
        {
            if (isCreateAsset)
            {
                skill.activeEvent.Add(evt as ActiveEvent);
            }
        }
        else
        {
            if (skill.animaEvent.Count > 0)
            {
                evtName = name + "_" + skill.animaEvent.Count;
            }
            if (isCreateAsset)
            {
                skill.animaEvent.Add(evt as AnimaEvent);
            }
        }
        if (isCreateAsset)
        {
            AssetEditor.CreateAsset(evt, FixPath + skill.skillId + "/" + evtName, evtName);
        }
        else
        {
            evtName = name;
        }
        TreeViewItem evtItem = item.AddItem(evtName);

        evtData.type        = ItemType.SkillEvent;
        evtData.skillId     = skill.skillId;
        evtData.resPath     = ResPath + skill.skillId + "/" + evtName + "/" + evtName;
        evtItem.DataContext = evtData;
        AddEvents(evtItem);
        EditorUtility.SetDirty(skill);
        return(evtItem);
    }
Example #5
0
    public static void PopulateExampleData(TreeViewControl item)
    {
        item.Width  = 600;
        item.Height = 500;
        item.Header = "Example.cs populated this treeview control";
        AddEvents(item.RootItem);
        TreeViewItem item1 = item.RootItem.AddItem("You can also add a tree view control");

        AddEvents(item1);
        AddEvents(item1.AddItem("to any existing game object by"));
        AddEvents(item1.AddItem("selecting the game object and"));
        AddEvents(item1.AddItem("using the menu item"));
        TreeViewItem games = item1.AddItem("TreeView->Add Tree View to selected.", false);

        AddEvents(games);
        AddEvents(games.AddItem("You can also drag and drop the"));
        AddEvents(games.AddItem("TreeViewControl script onto a"));
        AddEvents(games.AddItem("game object."));
        AddEvents(games.AddItem("New checked and", false, true));
        AddEvents(games.AddItem("unchecked checkboxes", false, false));
    }
Example #6
0
    /// <summary>
    /// 添加技能action
    /// </summary>
    /// <param name="item">父节点</param>
    /// <param name="name">action名</param>
    /// <param name="isCreateAsset">是否创建新资源</param>
    static void AddSkillAction(TreeViewItem item, string name, bool isCreateAsset = true)
    {
        SkillBase  data    = item.DataContext as SkillBase;
        SkillBase  actData = new SkillBase();
        Skill      skill   = RegetditSkill(item);
        SkillEvent evt     = Resources.Load(data.resPath) as SkillEvent;

        if (skill == null || evt == null)
        {
            return;
        }
        Assembly ass = typeof(SkillAction).Assembly;

        string[]    nameList = name.Split('_');
        System.Type type     = ass.GetType(nameList[0]);
        SkillAction act      = System.Activator.CreateInstance(type) as SkillAction;

        string actName = name;
        int    num     = 0;

        foreach (var act2 in evt.skillActions)
        {
            if (act2.name.StartsWith(name))
            {
                num++;
            }
        }
        if (num > 0)
        {
            actName = actName + "_" + num;
        }
        if (isCreateAsset)
        {
            evt.skillActions.Add(act);
            AssetEditor.CreateAsset(act, FixPath + skill.skillId + "/" + evt.name + "/SkillAction", actName);
        }
        else
        {
            actName = name;
        }

        TreeViewItem evtItem = item.AddItem(actName);

        actData.type        = ItemType.SkillAction;
        actData.skillId     = skill.skillId;
        actData.resPath     = ResPath + skill.skillId + "/" + evt.name + "/SkillAction/" + actName;
        evtItem.DataContext = actData;
        AddEvents(evtItem);
        EditorUtility.SetDirty(evt);
        EditorUtility.SetDirty(skill);
    }
Example #7
0
    public void PopulateItem(TreeViewItem attachTo, string itemName, List <AkWwiseProjectData.AkInfoWorkUnit> workUnits)
    {
        TreeViewItem attachPoint = attachTo.AddItem(itemName, false, GetExpansionStatus("/" + RootItem.Header + "/" + itemName), new AkTreeInfo(0, AkWwiseProjectData.WwiseObjectType.PHYSICALFOLDER));

        foreach (AkWwiseProjectData.AkInfoWorkUnit wwu in workUnits)
        {
            foreach (AkWwiseProjectData.AkInformation akInfo in wwu.List)
            {
                AddHandlerEvents(AddPathToTreeItem(attachPoint, akInfo));
            }
        }

        AddHandlerEvents(attachPoint);
    }
Example #8
0
    TreeViewItem AddEvent(TreeViewItem parent, string type, bool createAsset = false)
    {
        try
        {
            int    skillId = (parent.DataContext as ItemData).skillId;
            string name    = type;
            if (createAsset)
            {
                Skill      skill      = skillTable[skillId];
                Assembly   ass        = typeof(SkillEvent).Assembly;
                SkillEvent skillEvent = System.Activator.CreateInstance(ass.GetType(type)) as SkillEvent;
                if (skillEvent is ActiveEvent)
                {
                    name = "ActiveEvent";
                    skill.ActiveEvents.Add(skillEvent as ActiveEvent);
                }
                else
                {
                    if (skill.AnimEvents.Count > 0)
                    {
                        name = type + skill.AnimEvents.Count;
                    }
                    else
                    {
                        name = type;
                    }
                    skill.AnimEvents.Add(skillEvent as AnimEvent);
                }
                AssetEditor.CreateAsset(skillEvent, FixedPath + skillId + "/" + name, name);
                EditorUtility.SetDirty(skill);
            }

            ItemData itemData = new ItemData();
            itemData.resPath = ResPath + skillId + "/" + name + "/" + name;
            itemData.type    = ItemType.Event;

            TreeViewItem item = parent.AddItem(name);
            item.Header      = name;
            item.DataContext = itemData;
            AddEvents(item);

            return(item);
        }
        catch (Exception e)
        {
            this.ShowNotification(new GUIContent(e.Message));
        }
        return(null);
    }
Example #9
0
    public void PopulateItem(TreeViewItem attachTo, string itemName,
                             System.Collections.Generic.List <AkWwiseProjectData.AkInfoWorkUnit> workUnits)
    {
        var attachPoint = attachTo.AddItem(itemName, false, GetExpansionStatus("/" + RootItem.Header + "/" + itemName),
                                           new AkTreeInfo(WwiseObjectType.PhysicalFolder));

        foreach (var wwu in workUnits)
        {
            foreach (var akInfo in wwu.List)
            {
                AddHandlerEvents(AddPathToTreeItem(attachPoint, akInfo));
            }
        }

        AddHandlerEvents(attachPoint);
    }
Example #10
0
    public void PopulateItem(TreeViewItem attachTo, string itemName, List <AkWwiseProjectData.GroupValWorkUnit> GroupWorkUnits)
    {
        TreeViewItem attachPoint = attachTo.AddItem(itemName, false, GetExpansionStatus("/" + RootItem.Header + "/" + itemName), new AkTreeInfo(0, AkWwiseProjectData.WwiseObjectType.PHYSICALFOLDER));

        foreach (AkWwiseProjectData.GroupValWorkUnit wwu in GroupWorkUnits)
        {
            foreach (AkWwiseProjectData.GroupValue group in wwu.List)
            {
                TreeViewItem groupItem = AddPathToTreeItem(attachPoint, group);
                AddHandlerEvents(groupItem);

                for (int i = 0; i < group.values.Count; i++)
                {
                    TreeViewItem item = groupItem.AddItem(group.values[i], true, false, new AkTreeInfo(group.valueIDs[i], group.ValueGuids[i].bytes, group.ValueIcons[i].ObjectType));
                    AddHandlerEvents(item);
                }
            }
        }

        AddHandlerEvents(attachPoint);
    }
Example #11
0
        public static void CreateSkill()
        {
            var id    = SelectedItem.ChildItemCount;
            var skill = ScriptableObject.CreateInstance <Skill>();

            skill.Id = id;

            var newItem = SelectedItem.AddItem(id.ToString());
            var path    = Path + "/" + skill.Id + "/" + "Skill" + ".asset";

            newItem.DataContext = new ItemData()
            {
                SelectedType = SelectedType.Skill,
                Path         = path,
                Name         = skill.Id.ToString(),
                Data         = skill
            };
            AddEvents(newItem);

            CreateFolder(Path, skill.Id.ToString());
            AssetDatabase.CreateAsset(skill, path);
        }
Example #12
0
        public static void CreateActionAsset(TreeViewItem parentItem, ActionBase action)
        {
            var newItem = parentItem.AddItem(action.GetType().Name + (parentItem.ChildItemCount + 1));
            var data    = parentItem.DataContext as ItemData;
            var path    = Path + "/" + data.Name;
            var Skill   = data.Data as Skill;

            Skill.Actions.Add(action);

            newItem.DataContext = new ItemData()
            {
                SelectedType = SelectedType.Action,
                Path         = path + "/Actions/" + action.GetType().Name + parentItem.ChildItemCount + ".asset"
            };
            AddEvents(newItem);

            CreateFolder(path, "Actions");
            AssetDatabase.CreateAsset(action,
                                      path + "/Actions/" + action.GetType().Name + parentItem.ChildItemCount + ".asset");

            EditorUtility.SetDirty(Skill);
        }
Example #13
0
    public void PopulateItem(TreeViewItem attachTo, string itemName,
                             System.Collections.Generic.List <AkWwiseProjectData.GroupValWorkUnit> GroupWorkUnits)
    {
        var attachPoint = attachTo.AddItem(itemName, false, GetExpansionStatus("/" + RootItem.Header + "/" + itemName),
                                           new AkTreeInfo(WwiseObjectType.PhysicalFolder));

        foreach (var wwu in GroupWorkUnits)
        {
            foreach (var group in wwu.List)
            {
                var groupItem = AddPathToTreeItem(attachPoint, group);
                AddHandlerEvents(groupItem);

                foreach (var child in group.values)
                {
                    var item = groupItem.AddItem(child.Name, true, false, new AkTreeInfo(child.Guid, child.PathAndIcons[0].ObjectType));
                    AddHandlerEvents(item);
                }
            }
        }

        AddHandlerEvents(attachPoint);
    }
    public void PopulateItem(TreeViewItem attachTo, string itemName, List<AkWwiseProjectData.GroupValWorkUnit> GroupWorkUnits)
    {
        TreeViewItem attachPoint = attachTo.AddItem(itemName, false, GetExpansionStatus("/" + RootItem.Header + "/" + itemName), new AkTreeInfo(0, AkWwiseProjectData.WwiseObjectType.PHYSICALFOLDER));

        foreach (AkWwiseProjectData.GroupValWorkUnit wwu in GroupWorkUnits)
        {
            foreach(AkWwiseProjectData.GroupValue group in wwu.List)
            {
                TreeViewItem groupItem = AddPathToTreeItem(attachPoint, group);
                AddHandlerEvents(groupItem);

                for (int i = 0; i < group.values.Count; i++)
                {
                    TreeViewItem item = groupItem.AddItem(group.values[i], true, false, new AkTreeInfo(group.valueIDs[i], group.ValueGuids[i].bytes, group.ValueIcons[i].ObjectType));
                    AddHandlerEvents(item);
                }
            }
        }

        AddHandlerEvents(attachPoint);
    }
    public void PopulateItem(TreeViewItem attachTo, string itemName, List<AkWwiseProjectData.AkInfoWorkUnit> workUnits)
    {
        TreeViewItem attachPoint = attachTo.AddItem(itemName, false, GetExpansionStatus("/" + RootItem.Header + "/" + itemName), new AkTreeInfo(0, AkWwiseProjectData.WwiseObjectType.PHYSICALFOLDER));

        foreach (AkWwiseProjectData.AkInfoWorkUnit wwu in workUnits)
        {
            foreach(AkWwiseProjectData.AkInformation akInfo in wwu.List)
            {
                AddHandlerEvents(AddPathToTreeItem(attachPoint, akInfo));
            }
        }

        AddHandlerEvents(attachPoint);
    }
Example #16
0
    /// <summary>
    /// 添加技能
    /// </summary>
    TreeViewItem AddSkill(TreeViewItem parent, int skillId, bool createAsset = false)
    {
        try
        {
            //技能节点的数据
            ItemData itemData = new ItemData();
            itemData.resPath = ResPath + skillId + "/Skill";
            itemData.type = ItemType.Skill;

            //增加技能节点
            TreeViewItem item = parent.AddItem(skillId.ToString());
            item.DataContext = itemData;
            AddEvents(item);

            if (createAsset)
            {
                Skill skill = ScriptableObject.CreateInstance<Skill>();
                skill.ID = skillId;
                skillTable.Add(skill.ID, skill);
                AssetEditor.CreateAsset(skill, FixedPath + skillId, "Skill");
                TreeViewItem activeEventItem = AddEvent(item, "ActiveEvent", true);
                AddAction(activeEventItem, "AnimationAction", true);
                AddAction(activeEventItem, "FinishAction", true);
                AddEvent(item, "AnimEvent", true);
            }

            return item;
        }
        catch (Exception e)
        {
            this.ShowNotification(new GUIContent(e.Message));
        }

        return null;
    }
Example #17
0
    TreeViewItem AddEvent(TreeViewItem parent, string type, bool createAsset = false)
    {
        try
        {
            int skillId = (parent.DataContext as ItemData).skillId;
            string name = type;
            if (createAsset)
            {
                Skill skill = skillTable[skillId];
                Assembly ass = typeof(SkillEvent).Assembly;
                SkillEvent skillEvent = System.Activator.CreateInstance(ass.GetType(type)) as SkillEvent;
                if (skillEvent is ActiveEvent)
                {
                    name = "ActiveEvent";
                    skill.ActiveEvents.Add(skillEvent as ActiveEvent);

                }
                else
                {
                    if (skill.AnimEvents.Count > 0)
                        name = type + skill.AnimEvents.Count;
                    else
                        name = type;
                    skill.AnimEvents.Add(skillEvent as AnimEvent);

                }
                AssetEditor.CreateAsset(skillEvent, FixedPath + skillId + "/" + name, name);
                EditorUtility.SetDirty(skill);
            }

            ItemData itemData = new ItemData();
            itemData.resPath = ResPath + skillId + "/" + name + "/" + name;
            itemData.type = ItemType.Event;

            TreeViewItem item = parent.AddItem(name);
            item.Header = name;
            item.DataContext = itemData;
            AddEvents(item);

            return item;
        }
        catch (Exception e)
        {
            this.ShowNotification(new GUIContent(e.Message));
        }
        return null;
    }
Example #18
0
    TreeViewItem AddAction(TreeViewItem parent, string type, bool createAsset = false)
    {
        try
        {
            ItemData parentData = parent.DataContext as ItemData;
            string name = type;
            string[] arr = parentData.resPath.Split('/');
            string actionResPath = "";
            for (int i = 0; i < arr.Length - 1; i++)
            {
                actionResPath += arr[i];
                actionResPath += "/";
            }

            if (createAsset)
            {
                Assembly ass = typeof(SkillAction).Assembly;
                SkillAction skillAction = System.Activator.CreateInstance(ass.GetType(type)) as SkillAction;

                SkillEvent parentEvent = Resources.Load<SkillEvent>(parentData.resPath);
                parentEvent.actions.Add(skillAction);

                int count = 0;
                foreach (var act in parentEvent.actions)
                {
                    if (act.name.StartsWith(type))
                        count++;
                }

                if (count > 0)
                    skillAction.name = type + count.ToString();
                else
                    skillAction.name = type;
                name = skillAction.name;

                AssetEditor.CreateAsset(skillAction, "Assets/Resources/" + actionResPath + "Actions", name);
                EditorUtility.SetDirty(parentEvent);
            }

            ItemData itemData = new ItemData();
            itemData.resPath = actionResPath + "Actions/" + name;
            itemData.type = ItemType.Aciton;

            TreeViewItem item = parent.AddItem(name);
            item.Header = name;
            item.DataContext = itemData;
            AddEvents(item);

            return item;
        }
        catch (Exception e)
        {
            this.ShowNotification(new GUIContent(e.Message));
        }
        return null;
    }
Example #19
0
    TreeViewItem AddAction(TreeViewItem parent, string type, bool createAsset = false)
    {
        try
        {
            ItemData parentData    = parent.DataContext as ItemData;
            string   name          = type;
            string[] arr           = parentData.resPath.Split('/');
            string   actionResPath = "";
            for (int i = 0; i < arr.Length - 1; i++)
            {
                actionResPath += arr[i];
                actionResPath += "/";
            }

            if (createAsset)
            {
                Assembly    ass         = typeof(SkillAction).Assembly;
                SkillAction skillAction = System.Activator.CreateInstance(ass.GetType(type)) as SkillAction;

                SkillEvent parentEvent = Resources.Load <SkillEvent>(parentData.resPath);
                parentEvent.actions.Add(skillAction);

                int count = 0;
                foreach (var act in parentEvent.actions)
                {
                    if (act.name.StartsWith(type))
                    {
                        count++;
                    }
                }

                if (count > 0)
                {
                    skillAction.name = type + count.ToString();
                }
                else
                {
                    skillAction.name = type;
                }
                name = skillAction.name;

                AssetEditor.CreateAsset(skillAction, "Assets/Resources/" + actionResPath + "Actions", name);
                EditorUtility.SetDirty(parentEvent);
            }

            ItemData itemData = new ItemData();
            itemData.resPath = actionResPath + "Actions/" + name;
            itemData.type    = ItemType.Aciton;

            TreeViewItem item = parent.AddItem(name);
            item.Header      = name;
            item.DataContext = itemData;
            AddEvents(item);



            return(item);
        }
        catch (Exception e)
        {
            this.ShowNotification(new GUIContent(e.Message));
        }
        return(null);
    }