diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LeverSwitch.java b/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LeverSwitch.java index 41a53854..597db8c8 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LeverSwitch.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/guitar/LeverSwitch.java @@ -226,11 +226,16 @@ public class LeverSwitch extends AbstractAngledComponent= 6 ? terminalSpacing : 0)); } break; + case _6P5T: + controlPoints = new Point2D[36]; + for (int i = 0; i < controlPoints.length / 3; i++) { + controlPoints[i] = new Point2D.Double(x, y + i * terminalSpacing + (i >= 6 ? terminalSpacing : 0)); + controlPoints[i + 12] = new Point2D.Double(x + waferSpacing, y + i * terminalSpacing + (i >= 6 ? terminalSpacing : 0)); + controlPoints[i + 24] = new Point2D.Double(x + waferSpacing * 2, y + i * terminalSpacing + (i >= 6 ? terminalSpacing : 0)); + } + break; } // Rotate if needed @@ -447,7 +460,10 @@ public class LeverSwitch extends AbstractAngledComponent implements ISwi double dy = 0; if (i % 3 == 1) { - dy = -1; - } else if (i % 3 == 0) { dy = 1; + } else if (i % 3 == 0) { + dy = -1; } Stroke stroke = g2d.getStroke(); diff --git a/diylc/diylc-library/src/test/java/org/diylc/netlist/LeverSwitchTests.java b/diylc/diylc-library/src/test/java/org/diylc/netlist/LeverSwitchTests.java index 5ca30928..644dffe0 100644 --- a/diylc/diylc-library/src/test/java/org/diylc/netlist/LeverSwitchTests.java +++ b/diylc/diylc-library/src/test/java/org/diylc/netlist/LeverSwitchTests.java @@ -28,6 +28,21 @@ public class LeverSwitchTests extends AbstractSwitchTests { leverSwitch.setValue(LeverSwitchType._4P5T); testSwitch(leverSwitch, validCombinations); } + + @Test + public void testLeverSwitch6P5T() { + LeverSwitch leverSwitch = new LeverSwitch(); + + String[] validCombinations = new String[] { + "0,0,1", "0,6,11", "0,12,13", "0,18,23", "0,24,25", "0,30,35", + "1,0,2", "1,7,11", "1,12,14", "1,19,23", "1,24,26", "1,31,35", + "2,0,3", "2,8,11", "2,12,15", "2,20,23", "2,24,27", "2,32,35", + "3,0,4", "3,9,11", "3,12,16", "3,21,23", "3,24,28", "3,33,35", + "4,0,5", "4,10,11", "4,12,17", "4,22,23", "4,24,29", "4,34,35" + }; + leverSwitch.setValue(LeverSwitchType._6P5T); + testSwitch(leverSwitch, validCombinations); + } @Test public void testLeverSwitchImport() { diff --git a/diylc/diylc-swing/dict.txt b/diylc/diylc-swing/dict.txt index 712013cd..f3d6ab14 100644 --- a/diylc/diylc-swing/dict.txt +++ b/diylc/diylc-swing/dict.txt @@ -182,6 +182,7 @@ DP3T (Standard 5-Position Strat) DP4T (4-Position Tele) DP4T (6-Position Oak Grigsby) DP5T +6P5T DPDT DPDT (On/Off/On) DPDT (On/On) diff --git a/knowledge/component_types.sql b/knowledge/component_types.sql index 7f5470b7..6aff52f4 100644 --- a/knowledge/component_types.sql +++ b/knowledge/component_types.sql @@ -129,7 +129,7 @@ INSERT INTO diylc_knowledge_base (category, section, content) ('Component Types' "type" : "java.lang.Boolean" }, { "name" : "Type", - "type" : "org.diylc.components.guitar.LeverSwitch$LeverSwitchType(DP3T (Standard 3-Position Strat),DP3T (Standard 5-Position Strat),DP3T (Import 5-Position Strat),4P5T (Super/Mega),DP4T (4-Position Tele),DP4T (6-Position Oak Grigsby),DP5T)" + "type" : "org.diylc.components.guitar.LeverSwitch$LeverSwitchType(DP3T (Standard 3-Position Strat),DP3T (Standard 5-Position Strat),DP3T (Import 5-Position Strat),4P5T (Super/Mega),DP4T (4-Position Tele),DP4T (6-Position Oak Grigsby),DP5T,6P5T (5-Position 6 Pole AxLabs))" }, { "name" : "Angle", "type" : "org.diylc.core.Angle"