private void Traverse(ChunkNode o, ISet <ChunkNode> search, ISet <ChunkNode> visited)
        {
            if (search.Contains(o) && visited.Contains(o) == false)
            {
                visited.Add(o);

                for (var i = 0; i < o.NeighboursArray.Length; i++)
                {
                    var neighbour = o.NeighboursArray[i];
                    Traverse(neighbour, search, visited);
                }
            }
        }
 private void Remove(ChunkNode chunkNode)
 {
     ChunkToJoint.Remove(chunkNode);
     Neighbours.Remove(chunkNode);
     NeighboursArray = Neighbours.ToArray();
 }
 private bool Contains(ChunkNode chunkNode)
 {
     return(Neighbours.Contains(chunkNode));
 }