Project

General

Profile

« Previous | Next » 

Revision 2318a72a

Added by Leszek Koltunski 9 months ago

Lots of new tutorials; change the order of the objects.

View differences:

src/main/java/org/distorted/objectlib/main/ObjectSignatures.java
37 37
  public static final int PYRA_3 = ObjectType.PYRA_3.ordinal();
38 38
  public static final int PYRA_4 = ObjectType.PYRA_4.ordinal();
39 39
  public static final int PYRA_5 = ObjectType.PYRA_5.ordinal();
40
  public static final int PYRA_6 = ObjectType.PYRA_6.ordinal();
40 41
  public static final int TRAJ_3 = ObjectType.TRAJ_3.ordinal();
41 42
  public static final int TRAJ_4 = ObjectType.TRAJ_4.ordinal();
42 43
  public static final int DIAM_2 = ObjectType.DIAM_2.ordinal();
src/main/java/org/distorted/objectlib/main/ObjectType.java
46 46
  CU_232 ( TwistyCuboid.class         , 16, R.drawable.cu_232, true,     0, 1,1, new InitData(new int[] {2,3,2})),
47 47
  CU_343 ( TwistyCuboid.class         , 23, R.drawable.cu_343, true,    50, 1,1, new InitData(new int[] {3,4,3})),
48 48

  
49
  MORP_2 ( TwistyMorphix.class        , 12, R.drawable.morp_2, true,     0, 1,1, new InitData(new int[] {2,2,2})),
50
  MORP_3 ( TwistyMorphix.class        , 17, R.drawable.morp_3, true ,   60, 1,1, new InitData(new int[] {3,3,3})),
51
  MORP_4 ( TwistyMorphix.class        , 24, R.drawable.morp_4, true ,   70, 1,1, new InitData(new int[] {4,4,4})),
52
  JING_2 ( TwistyJing.class           , 11, R.drawable.jing_2, true,    50, 1,1, new InitData(new int[] {2,2,2,2}, TwistyJing.JING_2) ),
49
  PYRA_3 ( TwistyPyraminx.class       , 11, R.drawable.pyra_3, true,     0, 1,1, new InitData(new int[] {3,3,3,3})),
50
  PYRA_4 ( TwistyPyraminx.class       , 20, R.drawable.pyra_4, true,    50, 1,1, new InitData(new int[] {4,4,4,4})),
51
  PYRA_5 ( TwistyPyraminx.class       , 26, R.drawable.pyra_5, true,    60, 1,1, new InitData(new int[] {5,5,5,5})),
52
  PYRA_6 ( TwistyPyraminx.class       , 33, R.drawable.pyra_6, true,    70, 1,1, new InitData(new int[] {6,6,6,6})),
53 53
  PDUO_2 ( TwistyPyraminxDuo.class    ,  4, R.drawable.pduo_2, true,     0, 1,1, new InitData(new int[] {2,2,2,2})),
54 54

  
55
  PYRA_3 ( TwistyPyraminx.class       , 11, R.drawable.pyra_3, true,     0, 1,1, new InitData(new int[] {3,3,3,3})),
56
  PYRA_4 ( TwistyPyraminx.class       , 17, R.drawable.pyra_4, true,    50, 1,1, new InitData(new int[] {4,4,4,4})),
57
  PYRA_5 ( TwistyPyraminx.class       , 23, R.drawable.pyra_5, true,    70, 1,1, new InitData(new int[] {5,5,5,5})),
58
  ICOS_2 ( TwistyIcosamate.class      , 30, R.drawable.icos_2, true,    60, 1,1, new InitData(new int[] {2,2,2,2,2,2})),
59
  ICOS_3 ( TwistyIcosamate.class      , 40, R.drawable.icos_3, true,    70, 1,1, new InitData(new int[] {3,3,3,3,3,3})),
55
  JING_2 ( TwistyJing.class           , 11, R.drawable.jing_2, true,    50, 1,1, new InitData(new int[] {2,2,2,2}, TwistyJing.JING_2) ),
56
  JING_3 ( TwistyJing.class           , 20, R.drawable.jing_3, true,    50, 1,1, new InitData(new int[] {3,3,3,3}, TwistyJing.JING_3)),
57
  JING_4 ( TwistyJing.class           , 27, R.drawable.jing_4, true,    55, 1,1, new InitData(new int[] {3,3,3,3}, TwistyJing.JING_4)),
58
  JING_5 ( TwistyJing.class           , 35, R.drawable.jing_5, true,    60, 1,1, new InitData(new int[] {4,4,4,4}, TwistyJing.JING_5)),
59
  COIN_3 ( TwistyCoinTetrahedron.class, 15, R.drawable.coin_3, true,    40, 2,1, new InitData(new int[] {3,3,3,3})),
60

  
61
  MORP_2 ( TwistyMorphix.class        , 12, R.drawable.morp_2, true,     0, 1,1, new InitData(new int[] {2,2,2})),
62
  MORP_3 ( TwistyMorphix.class        , 17, R.drawable.morp_3, true,    60, 1,1, new InitData(new int[] {3,3,3})),
63
  MORP_4 ( TwistyMorphix.class        , 24, R.drawable.morp_4, true,    70, 1,1, new InitData(new int[] {4,4,4})),
64
  MIXU_3 ( TwistyMixup3x3.class       , 24, R.drawable.mixu_3, true,    70, 1,1, new InitData(new int[] {3,3,3})),
65
  MIXP_3 ( TwistyMixup3x3Plus.class   , 28, R.drawable.mixp_3, true,    70, 1,1, new InitData(new int[] {3,3,3})),
60 66

  
61 67
  CRYS_3 ( TwistyCrystal.class        , 27, R.drawable.crys_3, true,    70, 1,1, new InitData(new int[] {3,3,3,3,3,3})),
62 68
  STAR_3 ( TwistyStarminx.class       , 27, R.drawable.star_3, true,    80, 1,1, new InitData(new int[] {3,3,3,3,3,3})),
......
67 73
  MEGA_3 ( TwistyMegaminx.class       , 21, R.drawable.mega_3, true,     0, 1,1, new InitData(new int[] {3,3,3,3,3,3})),
68 74
  KILO_5 ( TwistyKilominx.class       , 33, R.drawable.kilo_5, true,    80, 1,1, new InitData(new int[] {5,5,5,5,5,5})),
69 75
  MEGA_5 ( TwistyMegaminx.class       , 40, R.drawable.mega_5, true,   100, 1,1, new InitData(new int[] {5,5,5,5,5,5})),
70
  MIXU_3 ( TwistyMixup3x3.class       , 24, R.drawable.mixu_3, true,    70, 1,1, new InitData(new int[] {3,3,3})),
71
  MIXP_3 ( TwistyMixup3x3Plus.class   , 28, R.drawable.mixp_3, true,    70, 1,1, new InitData(new int[] {3,3,3})),
76
  ICOS_2 ( TwistyIcosamate.class      , 30, R.drawable.icos_2, true,    60, 1,1, new InitData(new int[] {2,2,2,2,2,2})),
77
  ICOS_3 ( TwistyIcosamate.class      , 40, R.drawable.icos_3, true,    70, 1,1, new InitData(new int[] {3,3,3,3,3,3})),
72 78

  
73 79
  TRAJ_3 ( TwistyTrajber.class        , 17, R.drawable.traj_3, true,    50, 1,1, new InitData(new int[] {3,3,3})),
74 80
  TRAJ_4 ( TwistyTrajber.class        , 24, R.drawable.traj_4, true,    60, 1,1, new InitData(new int[] {4,4,4})),
......
82 88
  SQU1_3 ( TwistySquare1.class        , 24, R.drawable.squ1_3, true,    70, 1,1, new InitData(new int[] {3,2,3})),
83 89
  SQU2_3 ( TwistySquare2.class        , 24, R.drawable.squ2_3, true,    70, 1,1, new InitData(new int[] {3,2,3})),
84 90

  
85
  CRA1_2 ( TwistyCrazy2x2.class       , 16, R.drawable.cra1_2, true ,   50, 1,1, new InitData(new int[] {2,2,2})),
86
  CRA1_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra1_3, true ,   50, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.CRAZY  )),
87
  CRA2_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra2_3, true ,   80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.MERCURY)),
88
  CRA3_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra3_3, true ,   80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.VENUS  )),
89
  CRA4_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra4_3, true ,   80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.EARTH  )),
91
  CRA1_2 ( TwistyCrazy2x2.class       , 16, R.drawable.cra1_2, true,    50, 1,1, new InitData(new int[] {2,2,2})),
92
  CRA1_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra1_3, true,    50, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.CRAZY  )),
93
  CRA2_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra2_3, true,    80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.MERCURY)),
94
  CRA3_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra3_3, true,    80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.VENUS  )),
95
  CRA4_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra4_3, true,    80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.EARTH  )),
90 96

  
91
  CRA5_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra5_3, true ,   80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.MARS   )),
92
  CRA6_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra6_3, true ,   60, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.JUPITER)),
93
  CRA7_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra7_3, true ,   80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.SATURN )),
94
  CRA8_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra8_3, true ,   60, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.URANUS )),
95
  CRA9_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra9_3, true ,   80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.NEPTUNE)),
97
  CRA5_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra5_3, true,    80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.MARS   )),
98
  CRA6_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra6_3, true,    60, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.JUPITER)),
99
  CRA7_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra7_3, true,    80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.SATURN )),
100
  CRA8_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra8_3, true,    60, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.URANUS )),
101
  CRA9_3 ( TwistyCrazy3x3.class       , 22, R.drawable.cra9_3, true,    80, 1,1, new InitData(new int[] {3,3,3}, TwistyCrazy3x3.NEPTUNE)),
96 102

  
97 103
  MIRR_2 ( TwistyMirror.class         , 12, R.drawable.mirr_2, true,     0, 1,1, new InitData(new int[] {2,2,2})),
98 104
  MIRR_3 ( TwistyMirror.class         , 17, R.drawable.mirr_3, true,    50, 1,1, new InitData(new int[] {3,3,3})),
99 105
  MIRR_4 ( TwistyMirror.class         , 24, R.drawable.mirr_4, true,    60, 1,1, new InitData(new int[] {4,4,4})),
100
  IVY_2  ( TwistyIvy.class            ,  9, R.drawable.ivy_2 , true,     0, 1,1, new InitData(new int[] {2,2,2,2})),
101
  REX_3  ( TwistyRex.class            , 19, R.drawable.rex_3 , true,    70, 1,1, new InitData(new int[] {3,3,3,3})),
102 106

  
103 107
  REDI_3 ( TwistyRedi.class           , 16, R.drawable.redi_3, true,     0, 1,1, new InitData(new int[] {3,3,3,3})),
104 108
  HELI_3 ( TwistyHelicopter.class     , 20, R.drawable.heli_3, true,    80, 1,1, new InitData(new int[] {3,3,3,3,3,3})),
......
108 112

  
109 113
  DINO_3 ( TwistyDino6.class          , 10, R.drawable.dino_3, true,     0, 1,1, new InitData(new int[] {3,3,3,3})),
110 114
  DIN4_3 ( TwistyDino4.class          ,  9, R.drawable.din4_3, true,    30, 1,1, new InitData(new int[] {3,3,3,3})),
115
  IVY_2  ( TwistyIvy.class            ,  9, R.drawable.ivy_2 , true,     0, 1,1, new InitData(new int[] {2,2,2,2})),
116
  REX_3  ( TwistyRex.class            , 19, R.drawable.rex_3 , true,    70, 1,1, new InitData(new int[] {3,3,3,3})),
117
  COIH_3 ( TwistyCoinHexahedron.class , 35, R.drawable.coih_3, true,    50, 1,1, new InitData(new int[] {3,3,3,3,3,3,3})),
111 118

  
112
  COIH_3 ( TwistyCoinHexahedron.class , 35, R.drawable.coih_3, false,   50, 1,1, new InitData(new int[] {3,3,3,3,3,3,3})),
113
  COIN_3 ( TwistyCoinTetrahedron.class, 15, R.drawable.coin_3, false,   40, 2,1, new InitData(new int[] {3,3,3,3})),
114
  TINS_5 ( TwistyTins.class           , 28, R.drawable.tins_5, false,   60, 1,1, new InitData(new int[] {5,5,5,5})),
115
  O2_2   ( TwistyO2.class             ,  2, R.drawable.o2_2  , false,   20, 1,1, new InitData(new int[] {2,2,2})),
116
  JING_3 ( TwistyJing.class           , 20, R.drawable.jing_3, false,   50, 1,1, new InitData(new int[] {3,3,3,3}, TwistyJing.JING_3)),
117
  JING_4 ( TwistyJing.class           , 27, R.drawable.jing_4, false,   55, 1,1, new InitData(new int[] {3,3,3,3}, TwistyJing.JING_4)),
118
  JING_5 ( TwistyJing.class           , 35, R.drawable.jing_5, false,   60, 1,1, new InitData(new int[] {4,4,4,4}, TwistyJing.JING_5)),
119
  DSKE_3 ( TwistyDinoSkewb.class      , 25, R.drawable.dske_3, false,   50, 1,1, new InitData(new int[] {3,3,3,3})),
119
  TINS_5 ( TwistyTins.class           , 28, R.drawable.tins_5, true,    60, 1,1, new InitData(new int[] {5,5,5,5})),
120
  O2_2   ( TwistyO2.class             ,  2, R.drawable.o2_2  , true,    20, 1,1, new InitData(new int[] {2,2,2})),
121
  DSKE_3 ( TwistyDinoSkewb.class      , 25, R.drawable.dske_3, true,    50, 1,1, new InitData(new int[] {3,3,3,3})),
120 122
  ;
121 123

  
122 124
  public static int NUM_OBJECTS;
src/main/java/org/distorted/objectlib/objects/TwistyAxis.java
576 576
                          {"br","5HoM4_fQOM8","Como resolver o axis cube ","Gabriel Sihnel"},
577 577
                          {"kr","8KjHoNOGWLE","엑시스 큐브 해법","듀나메스 큐브 해법연구소"},
578 578
                          {"vn","ESdOqn7Tikg","Tutorial N.17 - Axis Cube","Duy Thích Rubik"},
579
                          {"tw","2ANall515_E","變幻金剛 教學","不正常魔術方塊研究中心"},
579 580
                         };
580 581
    }
581 582
}
src/main/java/org/distorted/objectlib/objects/TwistyBandagedCuboid.java
821 821
                            {"pl","0PcUoGxQa6s","Bandaged 3x3 v.A cube","MrUK"},
822 822
                            {"kr","1RePOLrzJNE","밴디지 타입 A 해법","듀나메스 큐브 해법연구소"},
823 823
                            {"vn","vg4J0U0n1oA","Tutorial N.1 - Bandaged VA","Duy Thích Rubik"},
824
                            {"tw","N2LuxPS4EhU","三階綑綁方塊(A款) 教學","不正常魔術方塊研究中心"},
824 825
                           };
825 826
      }
826 827
    if( mPosition==POS_2 )
......
839 840
                            {"pl","sKfdFLm79Zs","Bandaged 3x3 v.C cube","MrUK"},
840 841
                            {"kr","BcCFgeFy6Ec","밴디지 타입 C 해법","듀나메스 큐브 해법연구소"},
841 842
                            {"vn","9674LLkPSog","Tutorial N.2 - Bandaged VC","Duy Thích Rubik"},
843
                            {"tw","o1DqhDRaZt4","三階綑綁方塊-三方 教學","不正常魔術方塊研究中心"},
842 844
                           };
843 845
      }
844 846
    if( mPosition==POS_4 )
......
852 854
                            {"pl","XcHzTvVR6Po","Bandaged 3x3 v.B cube","MrUK"},
853 855
                            {"kr","1gsoijF_5q0","BiCube Tutorial (해법)","듀나메스 큐브 해법연구소"},
854 856
                            {"vn","ZCJDaF4jEbc","Tutorial N.3 - BiCube","Duy Thích Rubik"},
857
                            {"tw","J8XnfMHkFC8","三階綑綁 Bicube 教學","不正常魔術方塊研究中心"},
855 858
                           };
856 859
      }
857 860
    if( mPosition==POS_5 )
src/main/java/org/distorted/objectlib/objects/TwistyCoinHexahedron.java
734 734
                          {"es","rK0_IsjoZqM","Ancient Coin Cube","R de Rubik"},
735 735
                          {"ru","HVZj2vBxD5A","Как собрать Коин Куб","Алексей Ярыгин"},
736 736
                          {"pl","yaNeIw4C5Uk","Ancient coin cube TUTORIAL PL","MrUK"},
737
                          {"tw","B7oD3pAXBVY","銅幣魔方教學","不正常魔術方塊研究中心"},
737 738
                         };
738 739
    }
739 740
}
src/main/java/org/distorted/objectlib/objects/TwistyCoinTetrahedron.java
760 760
                          {"es","5pTfSCsHPWs","Tutorial Coin Pyraminx","Kubekings"},
761 761
                          {"ru","qUMQsn8kg1A","Как собрать Коин Пираминкс","Алексей Ярыгин"},
762 762
                          {"vn","TOaiOcEE0lk","Hướng Dẫn Giải Pyraminx Coin","Rubik Cube"},
763
                          {"tw","ofVag-kYgQ4","圓盤金字塔 ","1hrBLD"},
763 764
                         };
764 765
    }
765 766
}
src/main/java/org/distorted/objectlib/objects/TwistyContainer.java
419 419
                          {"br","44JnUyGTAD8","Tutorial do Cubo Container","Cubo vicio"},
420 420
                          {"kr","6HJKHLxaIPk","컨테이너 큐브 해법 강좌","굿맨's 큐브 이야기"},
421 421
                          {"vn","RLD9srIrDcI","Tutorial N.97 - Container","Duy Thích Rubik"},
422
                          {"tw","w8waAaHnxVY","Container Cube Tutorial","不正常魔術方塊研究中心"},
422 423
                         };
423 424
    }
424 425
}
src/main/java/org/distorted/objectlib/objects/TwistyCrazy2x2.java
641 641
                            {"es","Wq9lwfDfg4E","Resolucion del 2x2 Crazy","RUBIKworld"},
642 642
                            {"es","K4bFs4BFdXc","Tutorial Crazy 2x2 de Sengso","Manzacuber"},
643 643
                            {"vn","TlT5MYiz4RY","Tutorial N.216 Circular 2x2","Duy Thích Rubik"},
644
                            {"tw","LlwyltKnq88","聖手二階魔中魔教學-由外而內","不正常魔術方塊研究中心"},
644 645
                           };
645 646
    }
646 647
}
src/main/java/org/distorted/objectlib/objects/TwistyCuboid.java
815 815
                          {"br","42W6SM17EuM","Como resolver cubo 2x2","Pedro Filho"},
816 816
                          {"kr","wTMsdWKq6No","2x2 큐브 공식을 이해하는 해법","듀나메스 큐브 해법연구소"},
817 817
                          {"vn","hZ4Do8BbOPk","Tutorial N.84 - Cube 2x2x2","Duy Thích Rubik"},
818
                     //   {"tw","CfOCXxhCb8U","2x2魔術方塊復原","1hrBLD"},
818
                          {"tw","CfOCXxhCb8U","2x2魔術方塊復原","1hrBLD"},
819 819
                         };
820 820
                case 3: return new String[][] {
821 821
                          {"gb","6dYOrUgFCsc","How to Solve the 2x2x3","Z3"},
......
827 827
                          {"br","W6cp_1Q9SeY","Como resolver o cubóide 2x2x3","Pedro Filho"},
828 828
                          {"kr","DIaUaxQbJhw","2x2x3 해법","듀나메스 큐브 해법연구소"},
829 829
                          {"vn","MObar8ebkzg","Tutorial N.135 - 2x2x3 Cuboid","Duy Thích Rubik"},
830
                          {"tw","MOtpD79VeqY","2X2X3 教學","不正常魔術方塊研究中心"},
830 831
                         };
831 832
                }
832 833
      case 3: switch(y)
......
841 842
                          {"br","RnjJBXOp9DA","Como resolver o cubóide 3x3x2","Pedro Filho"},
842 843
                          {"kr","E3Oj8bKcTO4","2x3x3 큐보이드해법","듀나메스 큐브 해법연구소"},
843 844
                          {"vn","XnJJkniJhFM","Hướng Dẫn Giải Rubik 3x3x2","Rubik Cube"},
845
                          {"tw","tf8Lfb4kvB8","3X3X2 教學","不正常魔術方塊研究中心"},
844 846
                         };
845 847
                case 3: return new String[][] {
846 848
                          {"gb","-8ohoCKN0Zw","How to Solve a Rubik's Cube","Z3"},
......
854 856
                          {"kr","vbvyjs4Vmoc","3x3 큐브 기초해법 (파트2)","듀나메스 큐브 해법연구소"},
855 857
                          {"kr","V5eeKu9abCc","3x3 큐브 기초해법 (파트3)","듀나메스 큐브 해법연구소"},
856 858
                          {"vn","q_ZAmUVX8vM","Hướng Dẫn Giải Rubik 3x3","Rubik Cube"},
857
                     //   {"tw","76NmRQx5CLA","魔術方塊教學","1hrBLD"},
859
                          {"tw","76NmRQx5CLA","魔術方塊教學","1hrBLD"},
858 860
                         };
859 861
                case 4: return new String[][] {
860 862
                          {"gb","nh8DqpMM3Ro","How to solve the 3x3x4","BeardedCubing"},
......
866 868
                          {"br","nfeJ1q_OoHU","Cuboid 3x3x4 Tutorial","Cubo da Loucura"},
867 869
                          {"kr","-kp5r7iXV0M","3x3x4 큐보이드해법","듀나메스 큐브 해법연구소"},
868 870
                          {"vn","FbI4Xbs88YU","Tutorial N.72 - 3x3x4 Cuboid","Duy Thích Rubik"},
871
                          {"tw","S01Cq7U0bGg","3X3X4 教學","不正常魔術方塊研究中心"},
869 872
                         };
870 873
                }
871 874
      case 4: return new String[][] {
......
878 881
                          {"br","DQydZR0EHdo","Como resolver cubo 4x4","Pedro Filho"},
879 882
                          {"kr","5g4QORteCsk","원리로 이해하는 444 큐브 기초 해법","듀나메스 큐브 해법연구소"},
880 883
                          {"vn","D7F10BGdJ_E","Tutorial N.37 - Cube 4x4x4","Duy Thích Rubik"},
881
                      //    {"tw","HuyaNIUaSqo","4x4魔術方塊復原#1","1hrBLD"},
882
                      //    {"tw","gHho4gJQMXw","4x4魔術方塊復原#2","1hrBLD"},
883
                      //    {"tw","7pbNgXMQxCE","4x4魔術方塊復原#3","1hrBLD"},
884
                      //    {"tw","PZvc5XJ2bLY","4x4魔術方塊復原#4","1hrBLD"},
885
                      //    {"tw","97vDE29lu2o","4x4魔術方塊復原#5","1hrBLD"},
884
                          {"tw","HuyaNIUaSqo","4x4魔術方塊復原#1","1hrBLD"},
885
                          {"tw","gHho4gJQMXw","4x4魔術方塊復原#2","1hrBLD"},
886
                          {"tw","7pbNgXMQxCE","4x4魔術方塊復原#3","1hrBLD"},
887
                          {"tw","PZvc5XJ2bLY","4x4魔術方塊復原#4","1hrBLD"},
888
                          {"tw","97vDE29lu2o","4x4魔術方塊復原#5","1hrBLD"},
886 889
                         };
887 890
      case 5: return new String[][] {
888 891
                          {"gb","zMkNkXHzQts","How to Solve the 5x5 Rubik's Cube","Z3"},
......
894 897
                          {"br","WQospjKXfvQ","Como resolver cubo 5x5","Pedro Filho"},
895 898
                          {"kr","D46qDaBFWNM","[555큐브]믿고보는영상!","Playon U온돌차"},
896 899
                          {"vn","vwmC_vRb_4s","Hướng Dẫn Giải Rubik 5x5","Rubik Cube"},
900
                          {"tw","mtgGDb9SmnA","五階降階法速解教學","1hrBLD"},
897 901
                         };
898 902
      case 6: return new String[][] {
899 903
                          {"gb","SkZ9UadAOvQ","How to Solve the 6x6 Rubik's Cube","JPerm"},
src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java
607 607
                          {"pl","61_Z4TpLMBc","Diamond Skewb TUTORIAL PL","MrUk"},
608 608
                          {"br","UapwpXMYtH4","Como resolver o Octaedro Diamond","Rafael Cinoto"},
609 609
                          {"kr","hVBSlfHVTME","공식 하나만 사용 - 다이아몬드 스큐브","Denzel Washington"},
610
                          {"tw","tu9KzT4G4rQ","四軸八面體魔術方塊","1hrBLD"},
610 611
                         };
611 612
      case 3: return new String[][] {
612 613
                          {"gb","n_mBSUDLUZw","Face Turning Octahedron Tutorial","SuperAntoniovivaldi"},
src/main/java/org/distorted/objectlib/objects/TwistyDino6.java
112 112
                          {"br","jAwjAF8dpOM","Como resolver o Dino Cube","Rafael Cinoto"},
113 113
                          {"kr","imbrqGPSXWQ","(엑스큐브)완전 정복하기!","초등취미생활"},
114 114
                          {"vn","GrcZ_Ct2iYI","Tutorial N.7 - Dino","Duy Thích Rubik"},
115
                          {"tw","YsXEQseQ_0c","恐龍魔方 教學","不正常魔術方塊研究中心"},
115 116
                         };
116 117
    }
117 118
}
src/main/java/org/distorted/objectlib/objects/TwistyDinoSkewb.java
442 442
                            {"br","aVhl4vAB15w","Como resolver o Dino Skewb (2/3)","Rafael Cinoto"},
443 443
                            {"br","5nKwAkxu2Pg","Como resolver o Dino Skewb (3/3)","Rafael Cinoto"},
444 444
                            {"vn","STg0nMd18cQ","Dino F-Skewb tutorial","VĂN CÔNG TÙNG"},
445
                            {"tw","EoQFcqRGVdw","四階斜轉方塊 教學","不正常魔術方塊研究中心"},
445 446
                         };
446 447
    }
447 448
}
src/main/java/org/distorted/objectlib/objects/TwistyFisher.java
460 460
                          {"br","S4En0RXDIbs","Como resolver o Fisher Cube","Pedro Filho"},
461 461
                          {"kr","x9SySGU_iqE","피셔 큐브 맞추는 방법","iamzoone"},
462 462
                          {"vn","pW3nmZtkfwk","Hướng Dẫn Giải Rubik Fisher","Rubik Cube"},
463
                          {"tw","pAgUEf3ut88","異形魔術方塊復原教學","1hrBLD"},
463 464
                         };
464 465
    }
465 466
}
src/main/java/org/distorted/objectlib/objects/TwistyIvy.java
522 522
                          {"pl","8s_0VxNvFA8","Jak ułożyć Ivy Cube","DubiCube"},
523 523
                          {"kr","TmSPgjtSFac","15분만에 아이비큐브 완전정복하기!","초등취미생활"},
524 524
                          {"vn","Ktx9KQr_8qo","Tutorial N.29 - Ivy Cube","Duy Thích Rubik"},
525
                          {"tw","Gbq_KAc0ii0","楓葉方塊 (方圓方塊) 教學","不正常魔術方塊研究中心"},
525 526
                         };
526 527
    }
527 528
}
src/main/java/org/distorted/objectlib/objects/TwistyJing.java
1023 1023
                          {"gb","FYHdSpeMdqA","Four Layer Tetrahedral Solve","Superantoniovivaldi"},
1024 1024
                          {"es","NH0x_zn8xtU","Tutorial: Magic Tower 4x4","QBAndo"},
1025 1025
                          {"ru","E1O5KauTBeI","Как собрать Magic Tower 4x4","Алексей Ярыгин"},
1026
                          {"tw","DFJ6q11B03Q","四階魔塔 教學","不正常魔術方塊研究中心"},
1026 1027
                         };
1027 1028
    else if( getObjectType()==JING_4 )
1028 1029
      return new String[][]
......
1031 1032
                          {"es","JRojNv32amY","Tutorial: Magic Tower 5x5","Víctor Martínez"},
1032 1033
                          {"ru","wHwG6dqjwh0","Как собрать Magic Tower 5x5","Алексей Ярыгин"},
1033 1034
                          {"vn","DWZbEydn98E","Tutorial N.143 - 5x5 Pyramid","Duy Thích Rubik"},
1035
                          {"tw","w7rCoRsgsA0","五階魔塔 教學","不正常魔術方塊研究中心"},
1034 1036
                         };
1035 1037
    else if( getObjectType()==JING_5 )
1036 1038
      return new String[][]
1037 1039
                         {
1038 1040
                          {"gb","bNJ-SJ1uUrE","6 Layer Jing Pyraminx Tutorial","Sassy Monk"},
1039 1041
                          {"vn","rP3GPrSs35g","Tutorial N.162 - 6x6 Pyramid","Duy Thích Rubik"},
1042
                          {"tw","eHbvOZDv4D8","六階魔塔 教學","不正常魔術方塊研究中心"},
1040 1043
                         };
1041 1044
    else
1042 1045
      return null;
src/main/java/org/distorted/objectlib/objects/TwistyKilominx.java
653 653
                          {"pl","tdWh8f8qpq4","Kilominx TUTORIAL PL","MrUK"},
654 654
                          {"kr","8-X4GhQnE5I","2X2 킬로밍크스 TUTORIAL","큐브놀이터"},
655 655
                          {"vn","eW7RLayPPmA","Tutorial N.11 - Kilominx","Duy Thích Rubik"},
656
                          {"tw","iDueAHkim4g","二階五魔方進階解法","不正常魔術方塊研究中心"},
656 657
                         };
657 658
      case 5: return new String[][] {
658 659
                          {"gb","VAnzC2SYVc4","How To Solve A Master Kilominx","Grizz Media"},
......
668 669
                          {"kr","dvy-GxCjm5c","마스터 킬로밍크스 배우기 1","vincentcube"},
669 670
                          {"kr","Jm0B12vNxsE","마스터 킬로밍크스 배우기 2","vincentcube"},
670 671
                          {"kr","H1I18FVpr6g","마스터 킬로밍크스 배우기 3","vincentcube"},
672
                          {"tw","nVrtIVu_avo","四階五魔方 教學","不正常魔術方塊研究中心"},
671 673
                         };
672 674
      }
673 675
    return null;
src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java
570 570
                          {"br","VVHzZI73BN0","Como resolver o Megaminx 2/2","Pedro Filho"},
571 571
                          {"kr","2NUsMclrD-0","메가밍크스 예시솔빙","iamzoone"},
572 572
                          {"vn","wRN3t91vD8w","Tutorial N.9 - Megaminx","Duy Thích Rubik"},
573
                          {"tw","u1h8V5mLubk","五魔方 教學 (LBL+8355)","不正常魔術方塊研究中心"},
573 574
                         };
574 575
      case 5: return new String[][] {
575 576
                          {"gb","MNBMm8BnHtQ","Solve the Gigaminx Part 1","BeardedCubing"},
......
586 587
                          {"pl","jlyRrJjH4qQ","Jak ułożyć Gigaminxa cz.4","chomik19751"},
587 588
                          {"kr","HfPFrWuz6z4","기가밍크스 gigaminx","큐브놀이터"},
588 589
                          {"vn","yJzejHqZscY","Tutorial N.49 - Gigaminx","Duy Thích Rubik"},
590
                          {"tw","ofUxh8mL80M","五階五魔方 教學","不正常魔術方塊研究中心"},
589 591
                         };
590 592
      }
591 593
    return null;
src/main/java/org/distorted/objectlib/objects/TwistyMirror.java
438 438
                          {"pl","ERUtLe30vXA","Jak ułożyć kostkę mirror 2x2","Korzuu"},
439 439
                          {"kr","9S4QTkyNm4Y","2x2 Mirror Cube","큐브놀이터"},
440 440
                          {"vn","6zENEJlv5gA","Hướng Dẫn Giải Mirror 2x2","Rubik Cube"},
441
                          {"tw","DWCEO8OeSIA","奇藝二階鏡面方塊 教學","不正常魔術方塊研究中心"},
441 442
                         };
442 443
      case 3: return new String[][] {
443 444
                          {"gb","YkzXIWnqbSw","How to Solve the Mirror Cube","Z3"},
......
449 450
                          {"br","HWGGpIKRT_I","Como resolver o Mirror Blocks","Pedro Filho"},
450 451
                          {"kr","p3OJSbWopqg","미러블럭 해법","듀나메스 큐브 해법연구소"},
451 452
                          {"vn","F3Gh6JxW1VI","Tutorial N.15 - Mirror Block","Duy Thích Rubik"},
453
                          {"tw","60r2DaRZO14","鏡面方塊教學","不正常魔術方塊研究中心"},
452 454
                         };
453 455
      case 4: return new String[][] {
454 456
                          {"gb","6gyQ5qBK8GU","4x4 Mirror: Introduction","SuperAntoniovivaldi"},
src/main/java/org/distorted/objectlib/objects/TwistyMorphix.java
775 775
                          {"br","wByfDxTrbC8","Como resolver o Pyramorphix","Rafael Cinoto"},
776 776
                          {"kr","WIy5ZvTXsOY","피라몰픽스 쉽게 맞추기","큐브놀이터"},
777 777
                          {"vn","6CuTRLjKHho","Tutorial N.14 - Pyramorphix","Duy Thích Rubik"},
778
                          {"tw","-pvYOJN9u6U","二階魔粽 直覺式解法","不正常魔術方塊研究中心"},
778 779
                         };
779 780
      case 3: return new String[][] {
780 781
                          {"gb","Q1DXmDGyebc","How to Solve the Mastermorphix","Z3"},
......
786 787
                          {"br","bFJjjWPsDoY","Mastermorphix - tutorial","Cubo da Loucura"},
787 788
                          {"kr","yKW48BaE91M","마스터 몰픽스 해법","듀나메스 큐브 해법연구소"},
788 789
                          {"vn","QcJ7E8_Duws","Giải Rubik - Mastermorphix","Duy Thích Rubik"},
790
                          {"tw","KEOzJpVkGcw","三階粽子方塊","不正常魔術方塊研究中心"},
789 791
                         };
790 792
      case 4: return new String[][] {
791 793
                          {"gb","su4ELv85wiY","Megamorphix Tutorial","CrazyBadCuber"},
src/main/java/org/distorted/objectlib/objects/TwistyO2.java
516 516

  
517 517
  public String[][] getTutorials()
518 518
    {
519
    return new String[][] { };
519
    return new String[][] {
520
                    {"gb","m1nHBUnGsZc","1x1x1 O2 Cube","Richie's EZCubing"},
521
                    {"tw","mcgD9iN4NHU","一階方塊 介紹+教學","不正常魔術方塊研究中心"},
522
                 };
520 523
    }
521 524
}
src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java
411 411
      case 3: return ObjectType.PYRA_3.name();
412 412
      case 4: return ObjectType.PYRA_4.name();
413 413
      case 5: return ObjectType.PYRA_5.name();
414
      case 6: return ObjectType.PYRA_6.name();
414 415
      }
415 416

  
416 417
    return ObjectType.PYRA_3.name();
......
425 426
      case 3: return new ObjectSignature(ObjectSignatures.PYRA_3);
426 427
      case 4: return new ObjectSignature(ObjectSignatures.PYRA_4);
427 428
      case 5: return new ObjectSignature(ObjectSignatures.PYRA_5);
429
      case 6: return new ObjectSignature(ObjectSignatures.PYRA_6);
428 430
      }
429 431

  
430 432
    return null;
......
439 441
      case 3: return "Pyraminx";
440 442
      case 4: return "Master Pyraminx";
441 443
      case 5: return "Professor's Pyraminx";
444
      case 6: return "Royal Pyraminx";
442 445
      }
443 446
    return null;
444 447
    }
......
451 454
      {
452 455
      case 3: return "Uwe Meffert";
453 456
      case 4: return "Katsuhiko Okamoto";
454
      case 5: return "Timur Evbatyrov";
457
      case 5:
458
      case 6: return "Timur Evbatyrov";
455 459
      }
456 460
    return null;
457 461
    }
......
464 468
      {
465 469
      case 3: return 1970;
466 470
      case 4: return 2002;
467
      case 5: return 2011;
471
      case 5:
472
      case 6: return 2011;
468 473
      }
469 474
    return 1970;
470 475
    }
......
477 482
      {
478 483
      case 3: return 1;
479 484
      case 4: return 2;
480
      case 5: return 3;
485
      case 5:
486
      case 6: return 3;
481 487
      }
482 488
    return 4;
483 489
    }
......
500 506
                          {"br","dtC0GNGyXqw","Como resolver o Pyraminx","Pedro Filho"},
501 507
                          {"kr","mO3excjvvoA","피라밍크스 맞추는 방법","iamzoone"},
502 508
                          {"vn","p9LUWUW5iYg","Tutorial N.4 - Pyraminx","Duy Thích Rubik"},
503
                    //    {"tw","YS3cDcP6Aro","金字塔方塊解法","1hrBLD"},
509
                          {"tw","wZu3OAuNY5Q","金字塔方塊 教學","不正常魔術方塊研究中心"},
504 510
                         };
505 511
      case 4: return new String[][] {
506 512
                          {"gb","tGQDqDcSa6U","How to Solve the Master Pyraminx","Z3"},
......
514 520
                          {"br","j8_-s4rd8mw","Como resolver o Pyraminx 4x4 3/3","Rafael Cinoto"},
515 521
                          {"kr","JlmBKaHESyY","마스터 피라밍크스 해법","주누후누"},
516 522
                          {"vn","AMCll82WcJY","Tutorial N.13 - Master Pyraminx","Duy Thích Rubik"},
523
                          {"tw","Tghr4ow9Ckk","四階金字塔 教學","不正常魔術方塊研究中心"},
517 524
                         };
518 525
      case 5: return new String[][] {
519 526
                          {"gb","2nsPEECDdN0","Professor Pyraminx Solve","RedKB"},
......
526 533
                          {"br","0HoOp6JlLSs","Resolver o Professor Pyraminx 3/4","Rafael Cinoto"},
527 534
                          {"br","Xg1jnCRsw_I","Resolver o Professor Pyraminx 4/4","Rafael Cinoto"},
528 535
                          {"vn","OHwPqp3kQdE","Professor Pyraminx làm chậm","TRẦN QUANG HÙNG"},
536
                          {"tw","X3NxqT8bt8s","五階金字塔 教學","不正常魔術方塊研究中心"},
537
                         };
538
      case 6: return new String[][] {
539
                          {"gb","1u6FPbkp0-c","Royal Pyraminx: a Tutorial","Superantoniovivaldi"},
540
                          {"es","7px2uG7zhVk","Royal Pyraminx Tutorial","Gadi Rubik"},
541
                          {"tw","hbK2L28hEvM","六階金字塔 教學","不正常魔術方塊研究中心"},
529 542
                         };
530 543
      }
531 544
    return null;
src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDiamond.java
434 434
                           {"es","006L2qc1XoA","el Pyraminx Diamond","Spartan626"},
435 435
                           {"pl","AVRRHVgIeh4","Pyraminx Diamond TUTORIAL PL","MrUK"},
436 436
                           {"br","6SWwZUAK4U0","Pyraminx Diamond Solve","Cubo vicio"},
437
                           {"tw","76M-RMl70w0","Pyraminx Diamond","不正常魔術方塊研究中心"},
437 438
                          };
438 439
    }
439 440
}
src/main/java/org/distorted/objectlib/objects/TwistyPyraminxDuo.java
393 393
                          {"ru","pTaHQOqp4L8","Как собрать Pyraminx Duo","GCubing"},
394 394
                          {"pl","r9pW0933vz4","Poradnik mini - Pyraminx Duo","Speedcubing Nation"},
395 395
                          {"vn","F2XahC2fYuk","Hướng dẫn giải Pyraminx Duo","Rubik For Everyone"},
396
                          {"tw","xNn5bnYOGjA","金字塔二重奏 \"最少步法\" 教學","不正常魔術方塊研究中心"},
396 397
                         };
397 398
    }
398 399
}
src/main/java/org/distorted/objectlib/objects/TwistyRedi.java
447 447
                          {"br","muQ8U_G4LmM","Como resolver o Redi Cube","Rafael Cinoto"},
448 448
                          {"kr","a5CzDMbRzbY","레디큐브를 배우기","vincentcube"},
449 449
                          {"vn","2JZxtmrKUn4","Tutorial N.6 - Redi","Duy Thích Rubik"},
450
                          {"tw","LBKPL01IHD8","Redi Cube盲解教學","1hrBLD"},
450 451
                         };
451 452
    }
452 453
}
src/main/java/org/distorted/objectlib/objects/TwistyRex.java
455 455
                          {"pl","ffbFRnHglWY","Rex Cube TUTORIAL PL","MrUk"},
456 456
                          {"kr","B3ftZzHRQyU","렉스 큐브 해법","듀나메스 큐브 해법연구소"},
457 457
                          {"vn","5nE9Q7QmOP4","Tutorial N.87 - Rex Cube","Duy Thích Rubik"},
458
                          {"tw","XZYHm28qiHE","八軸魔星 教學","不正常魔術方塊研究中心"},
458 459
                         };
459 460
    }
460 461
}
src/main/java/org/distorted/objectlib/objects/TwistySkewb.java
612 612
                          {"br","mNycauwshWs","Como resolver o Skewb","Pedro Filho"},
613 613
                          {"kr","5R3sU-_bMAI","SKEWB 초보 공식","iamzoone"},
614 614
                          {"vn","Db5mXuqgQP8","Tutorial N.5 - Skewb","Duy Thích Rubik"},
615
                     //   {"tw","8srf9xhsS9k","Skewb斜轉方塊解法","1hrBLD"},
615
                          {"tw","XtZL9WFMkA8","斜轉魔方教學","不正常魔術方塊研究中心"},
616 616
                         };
617 617
      case 3: return new String[][] {
618 618
                          {"gb","Jiuf7zQyPYI","Master Skewb Cube Tutorial","Bearded Cubing"},
......
626 626
                          {"pl","Y7l3AYFvDJI","Master Skewb TUTORIAL PL","MrUk"},
627 627
                          {"kr","ycR-WmXJCG0","마스터 스큐브 3번째 해법","듀나메스 큐브 해법연구소"},
628 628
                          {"vn","uG8H0ZQTZgw","Tutorial N.35 - Master Skewb","Duy Thích Rubik"},
629
                          {"tw","PAPa069Y92M","大師斜轉方塊 教學","不正常魔術方塊研究中心"},
629 630
                         };
630 631
      }
631 632
    return null;
src/main/java/org/distorted/objectlib/objects/TwistySquare1.java
351 351
                          {"br","geT7SvX0DEw","Tutorial do Square-1","Pedro Filho"},
352 352
                          {"kr","NcB50lWdQzE","스퀘어1 맞추는 방법","iamzoone"},
353 353
                          {"vn","YvCZXkbZnNs","Tutorial N.120 - Square 1","Duy Thích Rubik"},
354
                          {"tw","5XsmL2ex5G8","SQ1\"單一公式法\"教學","不正常魔術方塊研究中心"},
354 355
                         };
355 356
    }
356 357
}
src/main/java/org/distorted/objectlib/objects/TwistySquare2.java
378 378
                          {"br","4wwWE5Ni0Fw","Tutorial do Square-2 2/2","Rafael Cinoto"},
379 379
                          {"kr","psG9Ar4pBrc","초보자를 위한 스퀘어2 해법","SlowCuberToumai"},
380 380
                          {"vn","_37Pc8Y_-Hs","Square-2 Tutorial","VĂN CÔNG TÙNG"},
381
                          {"tw","hye02xzNAZk","Square-2(SQ-2) 教學","不正常魔術方塊研究中心"},
381 382
                         };
382 383
    }
383 384
}
src/main/java/org/distorted/objectlib/objects/TwistyVoid.java
519 519
                          {"de","1mh-jRrcP0w","Void Cube: Parity intuitiv lösen","rofrisch"},
520 520
                          {"br","uTC01oMGBJ8","3x3 Void cube Tutorial","Cubo vicio"},
521 521
                          {"kr","eCfepw1gVBA","보이드 큐브(홀큐브)","듀나메스 큐브 해법연구소"},
522
                          {"tw","rb6GyuOBUNE","空心方塊 教學","不正常魔術方塊研究中心"},
522 523
                         };
523 524
    }
524 525
}
src/main/java/org/distorted/objectlib/objects/TwistyWindmill.java
470 470
                          {"br","TXNVMp70lVE","Resolução do Windmill Cube","Pedro Filho"},
471 471
                          {"kr","gELuvKW2Itw","윈드밀  큐브 해법 강좌","굿맨's 큐브 이야기"},
472 472
                          {"vn","diiy8OqqtrE","Tutorial N.16 - Windmill Cube","Duy Thích Rubik"},
473
                          {"tw","g50bcKo0RoQ","風火輪方塊解法","1hrBLD"},
473 474
                         };
474 475
    }
475 476
}

Also available in: Unified diff