public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[2]; Vector3 directionVector = direction.ToVector3(); connectionPoints[0] = new ConnectorCrossPin(direction, directionVector); connectionPoints[1] = new ConnectorCrossPin(direction.Opposite(), new Vector3(0f, 0f, 0f)); return(connectionPoints); }
public override Connectionpoint[] GetConnectionpoints(PartDirection direction, PartRotation rotation) { Connectionpoint[] connectionPoints = new Connectionpoint[8]; Vector3 directionVector = direction.ToVector3(); connectionPoints[0] = new ConnectorCrossPin(direction, directionVector * 7); connectionPoints[1] = new ConnectorCrossPin(direction, directionVector * 6); connectionPoints[2] = new ConnectorCrossPin(direction, directionVector * 5); connectionPoints[3] = new ConnectorCrossPin(direction, directionVector * 4); connectionPoints[4] = new ConnectorCrossPin(direction, directionVector * 3); connectionPoints[5] = new ConnectorCrossPin(direction, directionVector * 2); connectionPoints[6] = new ConnectorCrossPin(direction, directionVector); connectionPoints[7] = new ConnectorCrossPin(direction.Opposite(), new Vector3(0f, 0f, 0f)); 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; }