public override void Reset() { int rectCount = (m_gridRect.maxX - m_gridRect.minX) * (m_gridRect.maxY - m_gridRect.minY); if (m_nodePool.Nodes.Count > rectCount) { GridPos travPos = new GridPos(0, 0); for (int xTrav = m_gridRect.minX; xTrav <= m_gridRect.maxX; xTrav++) { travPos.x = xTrav; for (int yTrav = m_gridRect.minY; yTrav <= m_gridRect.maxY; yTrav++) { travPos.y = yTrav; Node curNode = m_nodePool.GetNode(travPos); if (curNode != null) { curNode.Reset(); } } } } else { foreach (KeyValuePair <GridPos, Node> keyValue in m_nodePool.Nodes) { keyValue.Value.Reset(); } } }