--CONNECT BEHAVIORS
-- INFO
--- These are very slow compared to placing stars.
---  They add a cool effect, but can slow the server
---  if they are used often enough.
--- If you want to use these, you should definitely
---  use the Connect_Interval option so the server
---  doesn't stall completely.
-- FUNCTIONS
--- createConnectLine(part1, part2)
----- Creates a new cylinder-shaped part.  The
-----  Part's X length is based on the distance
-----  between part1 and part2.  A SpecialMesh is
-----  used to thin (or thicken) the part to the
-----  Connect_Line_Width.
--- distanceSort(parts, originpart)
----- Uses table.sort and a specialized function
-----  to sort the parts based on distance from
-----  the originpart.  The originpart itself is
-----  excluded from the search if it is included
-----  in the parts list.  As you can imagine,
-----  with a high number of stars (> ~30), this
-----  function can become very slow.
--- getClosestPart(parts, originpart)
----- Iterates through each of the parts and if
-----  the distance from the originpart is smaller
-----  than the current closest then that part is
-----  stored.  At the end of the function, the
-----  part is then returned.  If the part's
-----  position is exacly the same as the originpart's
-----  position, and the part isn't the originpart
-----  itself, then the part is immediately returned.
--- getPartsInRange(parts, originpart, min, max)
----- Iterates through the parts, measuring the 
-----  distance between each one and the originpart.
-----  If the part is between the min and max, it
-----  is added to an array of parts, which is
-----  returned at the end of the function.
-- BEHAVIORS
--- EVERYOTHER
----- For each star generated, a table of all
-----  unused (stars that have not been iterated on)
-----  stars is generated and then sorted with the
-----  distanceSort() function.  The second closest 
-----  star (or the closest if there are too few
-----  stars) is used to place a line with
-----  createConnectLine().
----- This behavior has the worst performance
-----  due to the liberal use of the distanceSort()
-----  function, but arguably looks the best.
--- RANDOM
----- For each star generated, a random number of
-----  lines (between 0 and 2, including) is chosen.
-----  Each line is then placed with createConnectLine()
-----  between a random star in the mix.  Stars are
-----  not ignored after they have been used,
-----  leading to a large degree of chaos, and works
-----  best with a lower number of stars.
--- CLOSEST
----- Starts with the first star, finds the closest
-----  star with the getClosestPart() function, and
-----  then connects a line between them.
----- This behavior is the fastest, yet still gives
-----  good results.
--- CENTER
----- Uses getPartsInRange() to get the parts in
-----  6 individual "layers."  Starting from the center,
-----  the parts in each layer are connected to the 
-----  closest part in any layer before it.  The first
-----  layer is simply the star in the center, and
-----  gradually expanded outwards.
----- The result is that of "spider's legs."  This
-----  behavior is not terribly expensive.
--- CLUSTER
----- Uses the same layering technique as Center, but
-----  instead of connecting the parts to the nearest
-----  star in the layers before it, it connects them
-----  to the closest star possible.
----- As the name suggests, this creates a clustering
-----  of lines, which looks quite cool and is not
-----  very hard on performance.