예제 #1
0
        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);
        }
예제 #2
0
 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);
         }
     }
 }