public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[2]; Vector3 directionVector = direction.ToVector3(); connectionPoints[0] = new ConnectorCrossHole(direction.Opposite(), directionVector); connectionPoints[1] = new ConnectorCrossHole(direction, new Vector3(0f, 0f, 0f)); return(connectionPoints); }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[5]; Vector3 directionVector = direction.ToVector3(); connectionPoints[0] = new ConnectorCrossPin(direction, directionVector * 4); connectionPoints[1] = new ConnectorCrossPin(direction, directionVector * 3); connectionPoints[2] = new ConnectorCrossPin(direction, directionVector * 2); connectionPoints[3] = new ConnectorCrossPin(direction, directionVector); connectionPoints[4] = new ConnectorCrossPin(direction.Opposite(), new Vector3(0f, 0f, 0f)); return(connectionPoints); }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[9]; Vector3 directionVector = direction.ToVector3(); PartDirection firstHoleDirection = PartDirection.Down; PartDirection secondHoleDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.South; break; case PartRotation.Left: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.North; break; case PartRotation.Right: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.South; break; case PartRotation.Up: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.North; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.West; break; case PartRotation.Up: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.East; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.North; break; case PartRotation.Up: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.South; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; } connectionPoints[0] = new ConnectorCrossHole(direction, Vector3.zero); connectionPoints[1] = new ConnectorSolid(direction, firstHoleDirection.ToVector3() + secondHoleDirection.ToVector3()); connectionPoints[2] = new ConnectorSolid(direction, firstHoleDirection.ToVector3()); connectionPoints[3] = new ConnectorSolid(direction, firstHoleDirection.ToVector3() - secondHoleDirection.ToVector3()); connectionPoints[4] = new ConnectorSolid(direction, secondHoleDirection.ToVector3()); connectionPoints[5] = new ConnectorSolid(direction, -secondHoleDirection.ToVector3()); connectionPoints[6] = new ConnectorSolid(direction, -firstHoleDirection.ToVector3() + secondHoleDirection.ToVector3()); connectionPoints[7] = new ConnectorSolid(direction, -firstHoleDirection.ToVector3()); connectionPoints[8] = new ConnectorSolid(direction, -firstHoleDirection.ToVector3() - secondHoleDirection.ToVector3()); return(connectionPoints); }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[4]; Vector3 directionToGoIn = direction.ToVector3(); PartDirection firstHoleDirection = PartDirection.Down; PartDirection secondHoleDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.North; break; case PartRotation.Up: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.South; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.South; break; case PartRotation.Up: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.North; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; } connectionPoints[0] = new ConnectorCrossHole(firstHoleDirection, Vector3.zero); connectionPoints[1] = new ConnectorCrossHole(secondHoleDirection.Opposite(), -2f * directionToGoIn); connectionPoints[2] = new ConnectorCrossPin(secondHoleDirection.Opposite(), secondHoleDirection.Opposite().ToVector3()); connectionPoints[3] = new ConnectorCrossPin(secondHoleDirection, secondHoleDirection.ToVector3()); return(connectionPoints); //ConnectionpointInfos[] infos = new ConnectionpointInfos[10]; //for (int i = 0; i < infos.Length; i++) //{ // infos[i] = new ConnectionpointInfos(); // infos[i].connectorType = ConnectorType.ROUND_HOLE; // infos[i].size = new Vector3(1f, 1f, 1f); // if (i < 5) // { // infos[i].direction = PartDirection.East; // infos[i].relativePosition = new Vector3(-1f, 0.5f, 0.5f + i - 2.5f); // } // else // { // infos[i].direction = PartDirection.West; // infos[i].relativePosition = new Vector3(1f, 0.5f, 0.5f + i - 7.5f); // } //} // //return infos; }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[2]; Vector3 directionVector = direction.ToVector3(); PartDirection firstHoleDirection = PartDirection.Down; PartDirection secondHoleDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.North; break; case PartRotation.Up: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.South; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.South; break; case PartRotation.Up: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.North; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; } connectionPoints[0] = new ConnectorRoundHole(secondHoleDirection, directionVector); connectionPoints[1] = new ConnectorRoundHole(firstHoleDirection, new Vector3(0f, 0f, 0f)); return(connectionPoints); }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[13]; Vector3 directionToGoIn = direction.ToVector3(); PartDirection holesLookDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.West; break; case PartRotation.Left: holesLookDirection = PartDirection.North; break; case PartRotation.Up: holesLookDirection = PartDirection.East; break; case PartRotation.Right: holesLookDirection = PartDirection.South; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.West; break; case PartRotation.Left: holesLookDirection = PartDirection.South; break; case PartRotation.Up: holesLookDirection = PartDirection.East; break; case PartRotation.Right: holesLookDirection = PartDirection.North; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.North; break; case PartRotation.Left: holesLookDirection = PartDirection.Up; break; case PartRotation.Up: holesLookDirection = PartDirection.South; break; case PartRotation.Right: holesLookDirection = PartDirection.Down; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.East; break; case PartRotation.Left: holesLookDirection = PartDirection.Up; break; case PartRotation.Up: holesLookDirection = PartDirection.West; break; case PartRotation.Right: holesLookDirection = PartDirection.Down; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.South; break; case PartRotation.Left: holesLookDirection = PartDirection.Up; break; case PartRotation.Up: holesLookDirection = PartDirection.North; break; case PartRotation.Right: holesLookDirection = PartDirection.Down; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.West; break; case PartRotation.Left: holesLookDirection = PartDirection.Up; break; case PartRotation.Up: holesLookDirection = PartDirection.East; break; case PartRotation.Right: holesLookDirection = PartDirection.Down; break; } break; } for (int i = 0; i < connectionPoints.Length; i++) { connectionPoints[i] = new ConnectorRoundHole(holesLookDirection, new Vector3(directionToGoIn.x * (i - (((float)amountOfHoles) * 0.5f) + 0.5f), directionToGoIn.y * (i - (((float)amountOfHoles) * 0.5f) + 0.5f), directionToGoIn.z * (i - (((float)amountOfHoles) * 0.5f) + 0.5f))); } return(connectionPoints); //ConnectionpointInfos[] infos = new ConnectionpointInfos[10]; //for (int i = 0; i < infos.Length; i++) //{ // infos[i] = new ConnectionpointInfos(); // infos[i].connectorType = ConnectorType.ROUND_HOLE; // infos[i].size = new Vector3(1f, 1f, 1f); // if (i < 5) // { // infos[i].direction = PartDirection.East; // infos[i].relativePosition = new Vector3(-1f, 0.5f, 0.5f + i - 2.5f); // } // else // { // infos[i].direction = PartDirection.West; // infos[i].relativePosition = new Vector3(1f, 0.5f, 0.5f + i - 7.5f); // } //} // //return infos; }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { int lengthToBack = 5; Connectionpoint[] connectionPoints = new Connectionpoint[9 + (lengthToBack - 1) * 9]; Vector3 directionVector = direction.ToVector3(); Vector3 sideVector = Vector3.zero; PartDirection firstHoleDirection = PartDirection.Down; PartDirection secondHoleDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.North; break; case PartRotation.Up: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.South; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.South; break; case PartRotation.Up: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.North; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; } sideVector = firstHoleDirection.ToVector3(); Vector3 upVector = secondHoleDirection.ToVector3(); connectionPoints[0] = new ConnectorCrossPower(direction.Opposite(), Vector3.zero); connectionPoints[1] = new ConnectorRoundHole(direction.Opposite(), sideVector); connectionPoints[2] = new ConnectorRoundHole(direction.Opposite(), -sideVector); connectionPoints[3] = new ConnectorRoundHole(direction.Opposite(), upVector); connectionPoints[4] = new ConnectorRoundHole(direction.Opposite(), -upVector); connectionPoints[5] = new ConnectorSolid(direction, upVector + sideVector); connectionPoints[6] = new ConnectorSolid(direction, upVector - sideVector); connectionPoints[7] = new ConnectorSolid(direction, -upVector + sideVector); connectionPoints[8] = new ConnectorSolid(direction, -upVector - sideVector); for (int i = 1; i < lengthToBack; i++) { connectionPoints[i * 9] = new ConnectorSolid(direction, upVector + sideVector + directionVector * i); connectionPoints[i * 9 + 1] = new ConnectorSolid(direction, upVector - sideVector + directionVector * i); connectionPoints[i * 9 + 2] = new ConnectorSolid(direction, -upVector + sideVector + directionVector * i); connectionPoints[i * 9 + 3] = new ConnectorSolid(direction, -upVector - sideVector + directionVector * i); connectionPoints[i * 9 + 4] = new ConnectorSolid(direction, upVector + directionVector * i); connectionPoints[i * 9 + 5] = new ConnectorSolid(direction, -upVector + directionVector * i); connectionPoints[i * 9 + 6] = new ConnectorSolid(direction, sideVector + directionVector * i); connectionPoints[i * 9 + 7] = new ConnectorSolid(direction, -sideVector + directionVector * i); connectionPoints[i * 9 + 8] = new ConnectorSolid(direction, directionVector * i); } return(connectionPoints); //ConnectionpointInfos[] infos = new ConnectionpointInfos[10]; //for (int i = 0; i < infos.Length; i++) //{ // infos[i] = new ConnectionpointInfos(); // infos[i].connectorType = ConnectorType.ROUND_HOLE; // infos[i].size = new Vector3(1f, 1f, 1f); // if (i < 5) // { // infos[i].direction = PartDirection.East; // infos[i].relativePosition = new Vector3(-1f, 0.5f, 0.5f + i - 2.5f); // } // else // { // infos[i].direction = PartDirection.West; // infos[i].relativePosition = new Vector3(1f, 0.5f, 0.5f + i - 7.5f); // } //} // //return infos; }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[9]; Vector3 directionVector = direction.ToVector3(); Vector3 sideVector = Vector3.zero; PartDirection firstHoleDirection = PartDirection.Down; PartDirection secondHoleDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.North; break; case PartRotation.Up: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.South; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.South; break; case PartRotation.Up: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.North; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; } sideVector = firstHoleDirection.ToVector3(); Vector3 upVector = secondHoleDirection.ToVector3(); connectionPoints[0] = new ConnectorSolid(direction, sideVector + upVector); connectionPoints[1] = new ConnectorSolid(direction, sideVector); connectionPoints[2] = new ConnectorSolid(direction, sideVector - upVector); connectionPoints[3] = new ConnectorSolid(direction, upVector); connectionPoints[4] = new ConnectorCrossHole(direction, new Vector3(0, 0, 0)); connectionPoints[5] = new ConnectorSolid(direction, -upVector); connectionPoints[6] = new ConnectorSolid(direction, -sideVector + upVector); connectionPoints[7] = new ConnectorSolid(direction, -sideVector); connectionPoints[8] = new ConnectorSolid(direction, -sideVector - upVector); return(connectionPoints); //ConnectionpointInfos[] infos = new ConnectionpointInfos[10]; //for (int i = 0; i < infos.Length; i++) //{ // infos[i] = new ConnectionpointInfos(); // infos[i].connectorType = ConnectorType.ROUND_HOLE; // infos[i].size = new Vector3(1f, 1f, 1f); // if (i < 5) // { // infos[i].direction = PartDirection.East; // infos[i].relativePosition = new Vector3(-1f, 0.5f, 0.5f + i - 2.5f); // } // else // { // infos[i].direction = PartDirection.West; // infos[i].relativePosition = new Vector3(1f, 0.5f, 0.5f + i - 7.5f); // } //} // //return infos; }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[4]; Vector3 directionToGoIn = direction.ToVector3(); PartDirection firstHoleDirection = PartDirection.Down; PartDirection secondHoleDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.North; break; case PartRotation.Up: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.South; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.South; break; case PartRotation.Up: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.North; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; } connectionPoints[0] = new ConnectorSolid(direction, 3 * directionToGoIn + Vector3.zero); connectionPoints[1] = new ConnectorSolid(direction, 4 * directionToGoIn + Vector3.zero); connectionPoints[2] = new ConnectorSolid(direction, 5 * directionToGoIn + Vector3.zero); connectionPoints[3] = new ConnectorSolid(direction, 6 * directionToGoIn + Vector3.zero); return(connectionPoints); }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[26]; Vector3 directionToGoIn = direction.ToVector3(); PartDirection firstHoleDirection = PartDirection.Down; PartDirection secondHoleDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.North; break; case PartRotation.Up: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.South; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.South; break; case PartRotation.Up: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.North; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; } connectionPoints[0] = new ConnectorRoundHole(direction.Opposite(), firstHoleDirection.ToVector3() + secondHoleDirection.ToVector3()); connectionPoints[1] = new ConnectorRoundHole(direction.Opposite(), firstHoleDirection.ToVector3() - secondHoleDirection.ToVector3()); connectionPoints[2] = new ConnectorRoundHole(direction.Opposite(), -firstHoleDirection.ToVector3() + secondHoleDirection.ToVector3()); connectionPoints[3] = new ConnectorRoundHole(direction.Opposite(), -firstHoleDirection.ToVector3() - secondHoleDirection.ToVector3()); connectionPoints[4] = new ConnectorSolid(direction, Vector3.zero); connectionPoints[5] = new ConnectorSolid(direction, firstHoleDirection.ToVector3()); connectionPoints[6] = new ConnectorSolid(direction, -firstHoleDirection.ToVector3()); connectionPoints[7] = new ConnectorSolid(direction, secondHoleDirection.ToVector3()); connectionPoints[8] = new ConnectorSolid(direction, -secondHoleDirection.ToVector3()); connectionPoints[9] = new ConnectorSolid(direction, directionToGoIn + firstHoleDirection.ToVector3() + secondHoleDirection.ToVector3()); connectionPoints[10] = new ConnectorSolid(direction, directionToGoIn + firstHoleDirection.ToVector3() - secondHoleDirection.ToVector3()); connectionPoints[11] = new ConnectorSolid(direction, directionToGoIn - firstHoleDirection.ToVector3() + secondHoleDirection.ToVector3()); connectionPoints[12] = new ConnectorSolid(direction, directionToGoIn - firstHoleDirection.ToVector3() - secondHoleDirection.ToVector3()); connectionPoints[13] = new ConnectorSolid(direction, directionToGoIn + Vector3.zero); connectionPoints[14] = new ConnectorSolid(direction, directionToGoIn + firstHoleDirection.ToVector3()); connectionPoints[15] = new ConnectorSolid(direction, directionToGoIn - firstHoleDirection.ToVector3()); connectionPoints[16] = new ConnectorSolid(direction, directionToGoIn + secondHoleDirection.ToVector3()); connectionPoints[17] = new ConnectorSolid(direction, directionToGoIn - secondHoleDirection.ToVector3()); connectionPoints[18] = new ConnectorSolid(direction, 2 * directionToGoIn + firstHoleDirection.ToVector3() + secondHoleDirection.ToVector3()); connectionPoints[19] = new ConnectorSolid(direction, 2 * directionToGoIn + firstHoleDirection.ToVector3() - secondHoleDirection.ToVector3()); connectionPoints[20] = new ConnectorSolid(direction, 2 * directionToGoIn - firstHoleDirection.ToVector3() + secondHoleDirection.ToVector3()); connectionPoints[21] = new ConnectorSolid(direction, 2 * directionToGoIn - firstHoleDirection.ToVector3() - secondHoleDirection.ToVector3()); connectionPoints[22] = new ConnectorSolid(direction, 2 * directionToGoIn + Vector3.zero); connectionPoints[23] = new ConnectorSolid(direction, 2 * directionToGoIn + firstHoleDirection.ToVector3()); connectionPoints[24] = new ConnectorSolid(direction, 2 * directionToGoIn - firstHoleDirection.ToVector3()); connectionPoints[25] = new ConnectorSolid(direction, 2 * directionToGoIn + secondHoleDirection.ToVector3()); connectionPoints[26] = new ConnectorSolid(direction, 2 * directionToGoIn - secondHoleDirection.ToVector3()); return(connectionPoints); }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[3]; Vector3 directionVector = direction.ToVector3(); PartDirection firstHoleDirection = PartDirection.Down; PartDirection secondHoleDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.South; break; case PartRotation.Left: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.North; break; case PartRotation.Right: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.South; break; case PartRotation.Up: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.North; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.West; break; case PartRotation.Up: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.East; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.North; break; case PartRotation.Up: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.South; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; } connectionPoints[0] = new ConnectorRoundPin(secondHoleDirection.Opposite(), (-1 * secondHoleDirection.ToVector3()) + directionVector); connectionPoints[1] = new ConnectorCrossHole(firstHoleDirection.Opposite(), directionVector); connectionPoints[2] = new ConnectorSolid(direction, Vector3.zero); return(connectionPoints); }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[7]; Vector3 directionVector = direction.ToVector3(); Vector3 sideVector = Vector3.zero; PartDirection firstHoleDirection = PartDirection.Down; PartDirection secondHoleDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.North; break; case PartRotation.Left: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.West; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.South; break; case PartRotation.Right: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.East; break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.North; break; case PartRotation.Up: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.South; break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.South; secondHoleDirection = PartDirection.Down; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.South; break; case PartRotation.Up: firstHoleDirection = PartDirection.North; secondHoleDirection = PartDirection.Up; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.North; break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: firstHoleDirection = PartDirection.West; secondHoleDirection = PartDirection.Up; break; case PartRotation.Left: firstHoleDirection = PartDirection.Up; secondHoleDirection = PartDirection.East; break; case PartRotation.Up: firstHoleDirection = PartDirection.East; secondHoleDirection = PartDirection.Down; break; case PartRotation.Right: firstHoleDirection = PartDirection.Down; secondHoleDirection = PartDirection.West; break; } break; } sideVector = firstHoleDirection.ToVector3(); connectionPoints[0] = new ConnectorRoundHole(firstHoleDirection, Vector3.zero); connectionPoints[1] = new ConnectorRoundHole(secondHoleDirection, directionVector); connectionPoints[2] = new ConnectorRoundHole(secondHoleDirection, -1 * directionVector); connectionPoints[3] = new ConnectorRoundPin(firstHoleDirection, -1 * directionVector + sideVector); connectionPoints[4] = new ConnectorRoundPin(firstHoleDirection.Opposite(), -1 * directionVector - sideVector); connectionPoints[5] = new ConnectorRoundPin(firstHoleDirection, directionVector + sideVector); connectionPoints[6] = new ConnectorRoundPin(firstHoleDirection.Opposite(), directionVector - sideVector); return(connectionPoints); }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[7]; Vector3 directionToGoIn = direction.ToVector3(); Vector3 directionUp = direction.ToVector3(); PartDirection holesLookDirection = PartDirection.Down; switch (direction) { case PartDirection.Down: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.West; directionUp = new Vector3(0, 0, -1); break; case PartRotation.Left: holesLookDirection = PartDirection.North; directionUp = new Vector3(-1, 0, 0); break; case PartRotation.Up: holesLookDirection = PartDirection.East; directionUp = new Vector3(0, 0, 1); break; case PartRotation.Right: holesLookDirection = PartDirection.South; directionUp = new Vector3(1, 0, 0); break; } break; case PartDirection.Up: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.West; directionUp = new Vector3(0, 0, 1); break; case PartRotation.Left: holesLookDirection = PartDirection.South; directionUp = new Vector3(-1, 0, 0); break; case PartRotation.Up: holesLookDirection = PartDirection.East; directionUp = new Vector3(0, 0, -1); break; case PartRotation.Right: holesLookDirection = PartDirection.North; directionUp = new Vector3(1, 0, 0); break; } break; case PartDirection.East: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.North; directionUp = new Vector3(0, -1, 0); break; case PartRotation.Left: holesLookDirection = PartDirection.Up; directionUp = new Vector3(0, 0, 1); break; case PartRotation.Up: holesLookDirection = PartDirection.South; directionUp = new Vector3(0, 1, 0); break; case PartRotation.Right: holesLookDirection = PartDirection.Down; directionUp = new Vector3(0, 0, -1); break; } break; case PartDirection.South: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.East; directionUp = new Vector3(0, -1, 0); break; case PartRotation.Left: holesLookDirection = PartDirection.Up; directionUp = new Vector3(1, 0, 0); break; case PartRotation.Up: holesLookDirection = PartDirection.West; directionUp = new Vector3(0, 1, 0); break; case PartRotation.Right: holesLookDirection = PartDirection.Down; directionUp = new Vector3(-1, 0, 0); break; } break; case PartDirection.West: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.South; directionUp = new Vector3(0, -1, 0); break; case PartRotation.Left: holesLookDirection = PartDirection.Up; directionUp = new Vector3(0, 0, -1); break; case PartRotation.Up: holesLookDirection = PartDirection.North; directionUp = new Vector3(0, 1, 0); break; case PartRotation.Right: holesLookDirection = PartDirection.Down; directionUp = new Vector3(0, 0, 1); break; } break; case PartDirection.North: switch (rotation) { case PartRotation.Down: holesLookDirection = PartDirection.West; directionUp = new Vector3(0, -1, 0); break; case PartRotation.Left: holesLookDirection = PartDirection.Up; directionUp = new Vector3(-1, 0, 0); break; case PartRotation.Up: holesLookDirection = PartDirection.East; directionUp = new Vector3(0, 1, 0); break; case PartRotation.Right: holesLookDirection = PartDirection.Down; directionUp = new Vector3(1, 0, 0); break; } break; } connectionPoints[0] = new ConnectorRoundHole(holesLookDirection, directionUp * 2); connectionPoints[1] = new ConnectorRoundHole(holesLookDirection, directionUp); connectionPoints[2] = new ConnectorRoundHole(holesLookDirection, Vector3.zero); connectionPoints[3] = new ConnectorRoundHole(holesLookDirection, directionToGoIn); connectionPoints[4] = new ConnectorRoundHole(holesLookDirection, directionToGoIn * 2); connectionPoints[5] = new ConnectorRoundHole(holesLookDirection, directionToGoIn * 3); connectionPoints[6] = new ConnectorRoundHole(holesLookDirection, directionToGoIn * 4); return(connectionPoints); }