Пример #1
0
        public bool AddTransitionOnAnimEnd(IAnimGraphNode startNode, IAnimGraphNode endNode)
        {
            AnimGraphNode internalStartNode = GetNode(startNode);
            AnimGraphNode internalEndNode = GetNode(endNode);

            bool added = false;

            if ((internalStartNode != null) && (internalEndNode != null))
            {
                if (internalStartNode.AddTransitionOnAnimEnd(internalEndNode) == true)
                {
                    added = true;
                }
            }
            return added;
        }
Пример #2
0
        public bool AddTransition(IAnimGraphNode iStartNode, MessageType msgType, IAnimGraphNode iEndNode)
        {
            AnimGraphNode startNode = GetNode(iStartNode);
            AnimGraphNode endNode = GetNode(iEndNode);

            bool added = false;

            if ((startNode != null) && (endNode != null))
            {
                startNode.AddTransition(msgType, endNode);
                added = true;
            }
            else
            {
                // TODO: error!
            }

            return added;
        }
Пример #3
0
        private AnimGraphNode GetNode(IAnimGraphNode node)
        {
            foreach (AnimGraphNode n in m_nodeList)
            {
                if (n == node)
                {
                    return n;
                }
            }

            return null;
        }
Пример #4
0
        public void SetCurrentNode(IAnimGraphNode iNode)
        {
            AnimGraphNode node = GetNode(iNode);

            // set node to current node
            if (node != null)
            {
                if (m_currentNode != null)
                {
                    //IvyGame.Get().ConsoleStr += "Change Node: " + m_currentNode.Anim.Name + " -> " + node.Anim.Name + "\n";
                    m_currentNode.Anim.Stop();

                    // a hack for syncing animations
                    // TODO: expose some way of turning this sync 'off'
                    //if (m_currentNode.Anim != node.Anim)
                    {
                        node.Anim.Reset();
                    }
                }

                m_currentNode = node;
                m_currentNode.Anim.Play();
            }
            else
            {
                // TODO: error
            }
        }
Пример #5
0
 // TODO: why would i remove a transition?  is there an anim graph editor?
 public void RemoveTransition(IAnimGraphNode start, MessageType msg, IAnimGraphNode end)
 {
 }
Пример #6
0
 // TODO: why would i remove a node?  is there an anim graph editor?
 public void RemoveNode(IAnimGraphNode node)
 {
     // find node and remove it
     // find all references to node in other nodes, and remove it
 }
Пример #7
0
        public bool Contains(IAnimGraphNode node)
        {
            bool containsNode = false;
            foreach (AnimGraphNode n in m_nodeList)
            {
                if (n == node)
                {
                    containsNode = true;
                }
            }

            return containsNode;
        }