public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[2]; Vector3 directionVector = direction.ToVector3(); connectionPoints[0] = new ConnectorRoundPin(direction, directionVector); connectionPoints[1] = new ConnectorRoundPin(direction.Opposite(), new Vector3(0f, 0f, 0f)); 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[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[3]; 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 ConnectorRoundPin(secondHoleDirection.Opposite(), Vector3.zero); connectionPoints[1] = new ConnectorRoundPin(secondHoleDirection.Opposite(), directionToGoIn * 2); connectionPoints[2] = new ConnectorRoundPin(secondHoleDirection.Opposite(), directionToGoIn * -2); 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; }