Esempio n. 1
0
        public void Save()
        {
            _Editor.Tree.Clear();

            foreach (var item in this._Panel.Controls)
            {
                if (item is AnimNodeItem)
                {
                    ((AnimNodeItem)item).Save();
                    _Editor.Tree.Add(((AnimNodeItem)item).Data);
                }
            }

            List <Skill.Editor.UI.Connection> connections = new List <UI.Connection>();

            foreach (var item in this.Controls)
            {
                if (item is Skill.Editor.UI.Connection)
                {
                    connections.Add((Skill.Editor.UI.Connection)item);
                }
            }

            _Editor.Tree.Connections = new ConnectionData[connections.Count];
            for (int i = 0; i < connections.Count; i++)
            {
                Skill.Editor.UI.Connection c = connections[i];
                AnimNodeItem start           = (AnimNodeItem)c.Start.UserData;
                AnimNodeItem end             = (AnimNodeItem)c.End.UserData;

                if (c.Start.ConnectorType == UI.ConnectorType.Output)
                {
                    _Editor.Tree.Connections[i] = new ConnectionData(start.Data, end.Data, end.GetConnectorIndex(c.End));
                }
                else
                {
                    _Editor.Tree.Connections[i] = new ConnectionData(end.Data, start.Data, start.GetConnectorIndex(c.Start));
                }
            }
            _Editor.Tree.Zoom = this._Panel.ZoomFactor;
            _Editor.Tree.PanX = this._Panel.PanPosition.x;
            _Editor.Tree.PanY = this._Panel.PanPosition.y;
        }
Esempio n. 2
0
        internal void Remove(AnimNodeItem item)
        {
            _Panel.Controls.Remove(item);
            item.RemoveAllConnections();
            List <Skill.Editor.UI.Connection> connectionList = new List <UI.Connection>();

            foreach (var c in Controls)
            {
                if (c is Skill.Editor.UI.Connection)
                {
                    Skill.Editor.UI.Connection connection = (Skill.Editor.UI.Connection)c;
                    if (connection.Start.UserData == item || connection.End.UserData == item)
                    {
                        connectionList.Add(connection);
                    }
                }
            }

            foreach (var c in connectionList)
            {
                c.Break();
            }
            connectionList.Clear();
        }