private void ConnectPoints(NeighboringHex neighboringHex) { LocationPoints point1 = LocationPoints.BottomLeft; LocationPoints point2 = LocationPoints.BottomLeft; LocationPoints nPoint1 = LocationPoints.BottomLeft; LocationPoints nPoint2 = LocationPoints.BottomLeft; switch (neighboringHex) { case NeighboringHex.Bottom: point1 = LocationPoints.BottomLeft; nPoint1 = LocationPoints.TopLeft; point2 = LocationPoints.BottomRight; nPoint2 = LocationPoints.TopRight; break; case NeighboringHex.BottomLeft: point1 = LocationPoints.Left; nPoint1 = LocationPoints.TopRight; point2 = LocationPoints.BottomLeft; nPoint2 = LocationPoints.Right; break; case NeighboringHex.BottomRight: point1 = LocationPoints.Right; nPoint1 = LocationPoints.TopLeft; point2 = LocationPoints.BottomRight; nPoint2 = LocationPoints.Left; break; case NeighboringHex.Top: point1 = LocationPoints.TopLeft; nPoint1 = LocationPoints.BottomLeft; point2 = LocationPoints.TopRight; nPoint2 = LocationPoints.BottomRight; break; case NeighboringHex.TopLeft: point1 = LocationPoints.Left; nPoint1 = LocationPoints.BottomRight; point2 = LocationPoints.TopLeft; nPoint2 = LocationPoints.Right; break; case NeighboringHex.TopRight: point1 = LocationPoints.TopRight; nPoint1 = LocationPoints.Left; point2 = LocationPoints.Right; nPoint2 = LocationPoints.BottomLeft; break; } ConnectLocationPoints(neighboringHex, point1, nPoint1); ConnectLocationPoints(neighboringHex, point2, nPoint2); }
private void ConnectLocationPoints(NeighboringHex neighboringHex, LocationPoints thisLocation, LocationPoints neighboringLocation) { if (this.Points[thisLocation] == null) { if (this.neighboringHexes[(int)neighboringHex].Points[neighboringLocation] == null) { this.neighboringHexes[(int)neighboringHex].Points[neighboringLocation] = new LocationPoint(this.neighboringHexes[(int)neighboringHex]); } this.Points[thisLocation] = this.neighboringHexes[(int)neighboringHex].Points[neighboringLocation]; if (!this.neighboringHexes[(int)neighboringHex].Points[neighboringLocation].AttachedHex.Contains(this)) this.neighboringHexes[(int)neighboringHex].Points[neighboringLocation].AddToAttachedHexList(this); } else { if (this.neighboringHexes[(int)neighboringHex].Points[neighboringLocation] == null) { this.neighboringHexes[(int)neighboringHex].Points[neighboringLocation] = this.Points[thisLocation]; if (!this.Points[thisLocation].AttachedHex.Contains(this.neighboringHexes[(int)neighboringHex])) this.Points[thisLocation].AddToAttachedHexList(this.neighboringHexes[(int)neighboringHex]); } else { this.Points[(int)thisLocation] = this.neighboringHexes[(int)neighboringHex].Points[(int)neighboringLocation]; if (!this.neighboringHexes[(int)neighboringHex].Points[(int)neighboringLocation].AttachedHex.Contains(this)) this.neighboringHexes[(int)neighboringHex].Points[(int)neighboringLocation].AddToAttachedHexList(this); } } }