/// <summary> /// merges two borders together /// the ccwBorder is kept, all connections to the cwBorder are re-set /// </summary> /// <param name="ccwBorder">the ccw border of the merge, this border remains</param> /// <param name="cwBorder">the cw border of the merge, this border is knocked out</param> public void MergeBorders(Border ccwBorder, Border cwBorder) { Debug.Log("MERGING: " + ccwBorder.transform + " and " + cwBorder.transform); // set to the angle between the merged borders ccwBorder.SetAngle(ccwBorder.currentAngle - ((ccwBorder.currentAngle - cwBorder.currentAngle) / 2)); // update screen border for missing one foreach (Screen screen in allScreens) { if (screen.ccwBorder == cwBorder) { screen.ccwBorder = ccwBorder; } } // update border list allBorders.Remove(cwBorder); // fix border neighbors for the one that's been merged ccwBorder.cwBorder = cwBorder.cwBorder; cwBorder.cwBorder.ccwBorder = ccwBorder; // turn off merged border cwBorder.gameObject.SetActive(false); }