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; }
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; }
private AnimGraphNode GetNode(IAnimGraphNode node) { foreach (AnimGraphNode n in m_nodeList) { if (n == node) { return n; } } return null; }
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 } }
// TODO: why would i remove a transition? is there an anim graph editor? public void RemoveTransition(IAnimGraphNode start, MessageType msg, IAnimGraphNode end) { }
// 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 }
public bool Contains(IAnimGraphNode node) { bool containsNode = false; foreach (AnimGraphNode n in m_nodeList) { if (n == node) { containsNode = true; } } return containsNode; }