Project

General

Profile

« Previous | Next » 

Revision e1a86bf2

Added by Leszek Koltunski over 2 years ago

Move the main app to the 'J1M1' object creation mode, i.e. create them from the Json files and using the Dmesh fiels as well.

Make it possible for any app descending from the 'objectlib' to use any of the J0M0, J0M1, J1M0, J1M1 modes.

View differences:

src/main/java/org/distorted/objectlib/main/ObjectType.java
31 31

  
32 32
public enum ObjectType
33 33
  {
34
  CUBE_2 ( new int[] {2,2,2}      , 12, R.raw.json_cube_2, R.raw.cube_2, R.drawable.cube_2s, R.drawable.cube_2m, R.drawable.cube_2b, R.drawable.cube_2h),
35
  CUBE_3 ( new int[] {3,3,3}      , 17, R.raw.json_cube_3, R.raw.cube_3, R.drawable.cube_3s, R.drawable.cube_3m, R.drawable.cube_3b, R.drawable.cube_3h),
36
  CUBE_4 ( new int[] {4,4,4}      , 24, R.raw.json_cube_4, R.raw.cube_4, R.drawable.cube_4s, R.drawable.cube_4m, R.drawable.cube_4b, R.drawable.cube_4h),
37
  CUBE_5 ( new int[] {5,5,5}      , 28, R.raw.json_cube_5, R.raw.cube_5, R.drawable.cube_5s, R.drawable.cube_5m, R.drawable.cube_5b, R.drawable.cube_5h),
38
  CUBE_6 ( new int[] {6,6,6}      , 35, R.raw.json_cube_6, R.raw.cube_6, R.drawable.cube_6s, R.drawable.cube_6m, R.drawable.cube_6b, R.drawable.cube_6h),
39
  DIAM_2 ( new int[] {2,2,2,2}    , 12, R.raw.json_diam_2, R.raw.diam_2, R.drawable.diam_2s, R.drawable.diam_2m, R.drawable.diam_2b, R.drawable.diam_2h),
40
  DIAM_3 ( new int[] {3,3,3,3}    , 24, R.raw.json_diam_3, R.raw.diam_3, R.drawable.diam_3s, R.drawable.diam_3m, R.drawable.diam_3b, R.drawable.diam_3h),
41
  DIAM_4 ( new int[] {4,4,4,4}    , 32, R.raw.json_diam_4, R.raw.diam_4, R.drawable.diam_4s, R.drawable.diam_4m, R.drawable.diam_4b, R.drawable.diam_4h),
42
  JING_2 ( new int[] {2,2,2,2}    , 11, R.raw.json_jing_2, R.raw.jing_2, R.drawable.jing_2s, R.drawable.jing_2m, R.drawable.jing_2b, R.drawable.jing_2h),
43
  PYRA_3 ( new int[] {3,3,3,3}    , 10, R.raw.json_pyra_3, R.raw.pyra_3, R.drawable.pyra_3s, R.drawable.pyra_3m, R.drawable.pyra_3b, R.drawable.pyra_3h),
44
  PYRA_4 ( new int[] {4,4,4,4}    , 17, R.raw.json_pyra_4, R.raw.pyra_4, R.drawable.pyra_4s, R.drawable.pyra_4m, R.drawable.pyra_4b, R.drawable.pyra_4h),
45
  PYRA_5 ( new int[] {5,5,5,5}    , 23, R.raw.json_pyra_5, R.raw.pyra_5, R.drawable.pyra_5s, R.drawable.pyra_5m, R.drawable.pyra_5b, R.drawable.pyra_5h),
46
  KILO_3 ( new int[] {3,3,3,3,3,3}, 18, R.raw.json_kilo_3, R.raw.kilo_3, R.drawable.kilo_3s, R.drawable.kilo_3m, R.drawable.kilo_3b, R.drawable.kilo_3h),
47
  KILO_5 ( new int[] {5,5,5,5,5,5}, 33, R.raw.json_kilo_5, R.raw.kilo_5, R.drawable.kilo_5s, R.drawable.kilo_5m, R.drawable.kilo_5b, R.drawable.kilo_5h),
48
  MEGA_3 ( new int[] {3,3,3,3,3,3}, 21, R.raw.json_mega_3, R.raw.mega_3, R.drawable.mega_3s, R.drawable.mega_3m, R.drawable.mega_3b, R.drawable.mega_3h),
49
  MEGA_5 ( new int[] {5,5,5,5,5,5}, 37, R.raw.json_mega_5, R.raw.mega_5, R.drawable.mega_5s, R.drawable.mega_5m, R.drawable.mega_5b, R.drawable.mega_5h),
50
  ULTI_2 ( new int[] {2,2,2,2}    , 18, R.raw.json_ulti_2, R.raw.ulti_2, R.drawable.ulti_2s, R.drawable.ulti_2m, R.drawable.ulti_2b, R.drawable.ulti_2h),
51
  DINO_3 ( new int[] {3,3,3,3}    , 10, R.raw.json_dino_3, R.raw.dino_3, R.drawable.dino_3s, R.drawable.dino_3m, R.drawable.dino_3b, R.drawable.dino_3h),
52
  DIN4_3 ( new int[] {3,3,3,3}    ,  7, R.raw.json_din4_3, R.raw.dino_3, R.drawable.din4_3s, R.drawable.din4_3m, R.drawable.din4_3b, R.drawable.din4_3h),
53
  REDI_3 ( new int[] {3,3,3,3}    , 16, R.raw.json_redi_3, R.raw.redi_3, R.drawable.redi_3s, R.drawable.redi_3m, R.drawable.redi_3b, R.drawable.redi_3h),
54
  SKEW_2 ( new int[] {2,2,2,2}    , 11, R.raw.json_skew_2, R.raw.skew_2, R.drawable.skew_2s, R.drawable.skew_2m, R.drawable.skew_2b, R.drawable.skew_2h),
55
  SKEW_3 ( new int[] {3,3,3,3}    , 21, R.raw.json_skew_3, R.raw.skew_3, R.drawable.skew_3s, R.drawable.skew_3m, R.drawable.skew_3b, R.drawable.skew_3h),
56
  IVY_2  ( new int[] {2,2,2,2}    ,  8, R.raw.json_ivy_2 , R.raw.ivy_2 , R.drawable.ivy_2s , R.drawable.ivy_2m , R.drawable.ivy_2b , R.drawable.ivy_2h ),
57
  REX_3  ( new int[] {3,3,3,3}    , 19, R.raw.json_rex_3 , R.raw.rex_3 , R.drawable.rex_3s , R.drawable.rex_3m , R.drawable.rex_3b , R.drawable.rex_3h ),
58
  BAN1_3 ( new int[] {3,3,3}      , 16, R.raw.json_ban1_3, R.raw.ban1_3, R.drawable.ban1_3s, R.drawable.ban1_3m, R.drawable.ban1_3b, R.drawable.ban1_3h),
59
  BAN2_3 ( new int[] {3,3,3}      , 16, R.raw.json_ban2_3, R.raw.ban2_3, R.drawable.ban2_3s, R.drawable.ban2_3m, R.drawable.ban2_3b, R.drawable.ban2_3h),
60
  BAN3_3 ( new int[] {3,3,3}      , 16, R.raw.json_ban3_3, R.raw.ban3_3, R.drawable.ban3_3s, R.drawable.ban3_3m, R.drawable.ban3_3b, R.drawable.ban3_3h),
61
  BAN4_3 ( new int[] {3,3,3}      , 16, R.raw.json_ban4_3, R.raw.ban4_3, R.drawable.ban4_3s, R.drawable.ban4_3m, R.drawable.ban4_3b, R.drawable.ban4_3h),
62
  SQU1_3 ( new int[] {3,2,3}      , 24, R.raw.json_squ1_3, R.raw.squ1_3, R.drawable.squ1_3s, R.drawable.squ1_3m, R.drawable.squ1_3b, R.drawable.squ1_3h),
63
  SQU2_3 ( new int[] {3,2,3}      , 24, R.raw.json_squ2_3, R.raw.squ2_3, R.drawable.squ2_3s, R.drawable.squ2_3m, R.drawable.squ2_3b, R.drawable.squ2_3h),
64
  MIRR_2 ( new int[] {2,2,2}      , 12, R.raw.json_mirr_2, R.raw.mirr_2, R.drawable.mirr_2s, R.drawable.mirr_2m, R.drawable.mirr_2b, R.drawable.mirr_2h),
65
  MIRR_3 ( new int[] {3,3,3}      , 17, R.raw.json_mirr_3, R.raw.mirr_3, R.drawable.mirr_3s, R.drawable.mirr_3m, R.drawable.mirr_3b, R.drawable.mirr_3h),
66
  CU_323 ( new int[] {3,2,3}      , 15, R.raw.json_cu_323, R.raw.cu_323, R.drawable.cu_323s, R.drawable.cu_323m, R.drawable.cu_323b, R.drawable.cu_323h),
67
  CU_232 ( new int[] {2,3,2}      , 16, R.raw.json_cu_232, R.raw.cu_232, R.drawable.cu_232s, R.drawable.cu_232m, R.drawable.cu_232b, R.drawable.cu_232h),
68
  CU_343 ( new int[] {3,4,3}      , 23, R.raw.json_cu_343, R.raw.cu_343, R.drawable.cu_343s, R.drawable.cu_343m, R.drawable.cu_343b, R.drawable.cu_343h),
69
  HELI_3 ( new int[] {3,3,3,3,3,3}, 20, R.raw.json_heli_3, R.raw.heli_3, R.drawable.heli_3s, R.drawable.heli_3m, R.drawable.heli_3b, R.drawable.heli_3h),
34
  CUBE_2 ( new int[] {2,2,2}      , 12, R.drawable.cube_2s, R.drawable.cube_2m, R.drawable.cube_2b, R.drawable.cube_2h),
35
  CUBE_3 ( new int[] {3,3,3}      , 17, R.drawable.cube_3s, R.drawable.cube_3m, R.drawable.cube_3b, R.drawable.cube_3h),
36
  CUBE_4 ( new int[] {4,4,4}      , 24, R.drawable.cube_4s, R.drawable.cube_4m, R.drawable.cube_4b, R.drawable.cube_4h),
37
  CUBE_5 ( new int[] {5,5,5}      , 28, R.drawable.cube_5s, R.drawable.cube_5m, R.drawable.cube_5b, R.drawable.cube_5h),
38
  CUBE_6 ( new int[] {6,6,6}      , 35, R.drawable.cube_6s, R.drawable.cube_6m, R.drawable.cube_6b, R.drawable.cube_6h),
39
  DIAM_2 ( new int[] {2,2,2,2}    , 12, R.drawable.diam_2s, R.drawable.diam_2m, R.drawable.diam_2b, R.drawable.diam_2h),
40
  DIAM_3 ( new int[] {3,3,3,3}    , 24, R.drawable.diam_3s, R.drawable.diam_3m, R.drawable.diam_3b, R.drawable.diam_3h),
41
  DIAM_4 ( new int[] {4,4,4,4}    , 32, R.drawable.diam_4s, R.drawable.diam_4m, R.drawable.diam_4b, R.drawable.diam_4h),
42
  JING_2 ( new int[] {2,2,2,2}    , 11, R.drawable.jing_2s, R.drawable.jing_2m, R.drawable.jing_2b, R.drawable.jing_2h),
43
  PYRA_3 ( new int[] {3,3,3,3}    , 10, R.drawable.pyra_3s, R.drawable.pyra_3m, R.drawable.pyra_3b, R.drawable.pyra_3h),
44
  PYRA_4 ( new int[] {4,4,4,4}    , 17, R.drawable.pyra_4s, R.drawable.pyra_4m, R.drawable.pyra_4b, R.drawable.pyra_4h),
45
  PYRA_5 ( new int[] {5,5,5,5}    , 23, R.drawable.pyra_5s, R.drawable.pyra_5m, R.drawable.pyra_5b, R.drawable.pyra_5h),
46
  KILO_3 ( new int[] {3,3,3,3,3,3}, 18, R.drawable.kilo_3s, R.drawable.kilo_3m, R.drawable.kilo_3b, R.drawable.kilo_3h),
47
  KILO_5 ( new int[] {5,5,5,5,5,5}, 33, R.drawable.kilo_5s, R.drawable.kilo_5m, R.drawable.kilo_5b, R.drawable.kilo_5h),
48
  MEGA_3 ( new int[] {3,3,3,3,3,3}, 21, R.drawable.mega_3s, R.drawable.mega_3m, R.drawable.mega_3b, R.drawable.mega_3h),
49
  MEGA_5 ( new int[] {5,5,5,5,5,5}, 37, R.drawable.mega_5s, R.drawable.mega_5m, R.drawable.mega_5b, R.drawable.mega_5h),
50
  ULTI_2 ( new int[] {2,2,2,2}    , 18, R.drawable.ulti_2s, R.drawable.ulti_2m, R.drawable.ulti_2b, R.drawable.ulti_2h),
51
  DINO_3 ( new int[] {3,3,3,3}    , 10, R.drawable.dino_3s, R.drawable.dino_3m, R.drawable.dino_3b, R.drawable.dino_3h),
52
  DIN4_3 ( new int[] {3,3,3,3}    ,  7, R.drawable.din4_3s, R.drawable.din4_3m, R.drawable.din4_3b, R.drawable.din4_3h),
53
  REDI_3 ( new int[] {3,3,3,3}    , 16, R.drawable.redi_3s, R.drawable.redi_3m, R.drawable.redi_3b, R.drawable.redi_3h),
54
  SKEW_2 ( new int[] {2,2,2,2}    , 11, R.drawable.skew_2s, R.drawable.skew_2m, R.drawable.skew_2b, R.drawable.skew_2h),
55
  SKEW_3 ( new int[] {3,3,3,3}    , 21, R.drawable.skew_3s, R.drawable.skew_3m, R.drawable.skew_3b, R.drawable.skew_3h),
56
  IVY_2  ( new int[] {2,2,2,2}    ,  8, R.drawable.ivy_2s , R.drawable.ivy_2m , R.drawable.ivy_2b , R.drawable.ivy_2h ),
57
  REX_3  ( new int[] {3,3,3,3}    , 19, R.drawable.rex_3s , R.drawable.rex_3m , R.drawable.rex_3b , R.drawable.rex_3h ),
58
  BAN1_3 ( new int[] {3,3,3}      , 16, R.drawable.ban1_3s, R.drawable.ban1_3m, R.drawable.ban1_3b, R.drawable.ban1_3h),
59
  BAN2_3 ( new int[] {3,3,3}      , 16, R.drawable.ban2_3s, R.drawable.ban2_3m, R.drawable.ban2_3b, R.drawable.ban2_3h),
60
  BAN3_3 ( new int[] {3,3,3}      , 16, R.drawable.ban3_3s, R.drawable.ban3_3m, R.drawable.ban3_3b, R.drawable.ban3_3h),
61
  BAN4_3 ( new int[] {3,3,3}      , 16, R.drawable.ban4_3s, R.drawable.ban4_3m, R.drawable.ban4_3b, R.drawable.ban4_3h),
62
  SQU1_3 ( new int[] {3,2,3}      , 24, R.drawable.squ1_3s, R.drawable.squ1_3m, R.drawable.squ1_3b, R.drawable.squ1_3h),
63
  SQU2_3 ( new int[] {3,2,3}      , 24, R.drawable.squ2_3s, R.drawable.squ2_3m, R.drawable.squ2_3b, R.drawable.squ2_3h),
64
  MIRR_2 ( new int[] {2,2,2}      , 12, R.drawable.mirr_2s, R.drawable.mirr_2m, R.drawable.mirr_2b, R.drawable.mirr_2h),
65
  MIRR_3 ( new int[] {3,3,3}      , 17, R.drawable.mirr_3s, R.drawable.mirr_3m, R.drawable.mirr_3b, R.drawable.mirr_3h),
66
  CU_323 ( new int[] {3,2,3}      , 15, R.drawable.cu_323s, R.drawable.cu_323m, R.drawable.cu_323b, R.drawable.cu_323h),
67
  CU_232 ( new int[] {2,3,2}      , 16, R.drawable.cu_232s, R.drawable.cu_232m, R.drawable.cu_232b, R.drawable.cu_232h),
68
  CU_343 ( new int[] {3,4,3}      , 23, R.drawable.cu_343s, R.drawable.cu_343m, R.drawable.cu_343b, R.drawable.cu_343h),
69
  HELI_3 ( new int[] {3,3,3,3,3,3}, 20, R.drawable.heli_3s, R.drawable.heli_3m, R.drawable.heli_3b, R.drawable.heli_3h),
70 70
  ;
71 71

  
72 72
  public static final int NUM_OBJECTS = values().length;
73
  private static final ObjectType[] objects;
73 74

  
74 75
  private final int[] mNumLayers;
75 76
  private final int mNumScrambles;
76 77
  private final int mSmallIcon, mMediumIcon, mBigIcon, mHugeIcon;
77
  private final int mMeshID, mJsonID;
78

  
79
  private static final ObjectType[] objects;
80 78

  
81 79
  static
82 80
    {
......
106 104

  
107 105
///////////////////////////////////////////////////////////////////////////////////////////////////
108 106

  
109
  ObjectType(int[] numLayers, int scrambles, int jsonID, int meshID, int sIcon, int mIcon, int bIcon, int hIcon)
107
  ObjectType(int[] numLayers, int scrambles, int sIcon, int mIcon, int bIcon, int hIcon)
110 108
    {
111 109
    mNumLayers   = numLayers;
112 110
    mNumScrambles= scrambles;
113
    mJsonID      = jsonID;
114
    mMeshID      = meshID;
115 111
    mSmallIcon   = sIcon;
116 112
    mMediumIcon  = mIcon;
117 113
    mBigIcon     = bIcon;
118 114
    mHugeIcon    = hIcon;
119 115
    }
120 116

  
121
///////////////////////////////////////////////////////////////////////////////////////////////////
122

  
123
  public int getNumScramble()
124
    {
125
    return mNumScrambles;
126
    }
127

  
128 117
///////////////////////////////////////////////////////////////////////////////////////////////////
129 118

  
130 119
  public int getIconID(int size)
......
142 131

  
143 132
///////////////////////////////////////////////////////////////////////////////////////////////////
144 133

  
145
  public int getMeshID()
146
    {
147
    return mMeshID;
148
    }
149

  
150
///////////////////////////////////////////////////////////////////////////////////////////////////
151

  
152
  public int getJsonID()
134
  public int getNumScramble()
153 135
    {
154
    return mJsonID;
136
    return mNumScrambles;
155 137
    }
156 138

  
157 139
///////////////////////////////////////////////////////////////////////////////////////////////////
158 140

  
159
  public TwistyObject create(Static4D quat, Static3D move, InputStream stream)
141
  public static TwistyObject create(int ordinal, Static4D quat, Static3D move, InputStream meshStream)
160 142
    {
161
    int ord = ordinal();
162
    int[] numL= objects[ord].mNumLayers;
143
    int[] numL= objects[ordinal].mNumLayers;
163 144

  
164
    switch(ord)
145
    switch(ordinal)
165 146
      {
166 147
      case  0:
167 148
      case  1:
168 149
      case  2:
169 150
      case  3:
170
      case  4: return new TwistyCuboid        (numL, quat, move, stream);
151
      case  4: return new TwistyCuboid        (numL, quat, move, meshStream);
171 152
      case  5:
172 153
      case  6:
173
      case  7: return new TwistyDiamond       (numL, quat, move, stream);
174
      case  8: return new TwistyJing          (numL, quat, move, stream);
154
      case  7: return new TwistyDiamond       (numL, quat, move, meshStream);
155
      case  8: return new TwistyJing          (numL, quat, move, meshStream);
175 156
      case  9:
176 157
      case 10:
177
      case 11: return new TwistyPyraminx      (numL, quat, move, stream);
158
      case 11: return new TwistyPyraminx      (numL, quat, move, meshStream);
178 159
      case 12:
179
      case 13: return new TwistyKilominx      (numL, quat, move, stream);
160
      case 13: return new TwistyKilominx      (numL, quat, move, meshStream);
180 161
      case 14:
181
      case 15: return new TwistyMegaminx      (numL, quat, move, stream);
182
      case 16: return new TwistyUltimate      (numL, quat, move, stream);
183
      case 17: return new TwistyDino6         (numL, quat, move, stream);
184
      case 18: return new TwistyDino4         (numL, quat, move, stream);
185
      case 19: return new TwistyRedi          (numL, quat, move, stream);
162
      case 15: return new TwistyMegaminx      (numL, quat, move, meshStream);
163
      case 16: return new TwistyUltimate      (numL, quat, move, meshStream);
164
      case 17: return new TwistyDino6         (numL, quat, move, meshStream);
165
      case 18: return new TwistyDino4         (numL, quat, move, meshStream);
166
      case 19: return new TwistyRedi          (numL, quat, move, meshStream);
186 167
      case 20:
187
      case 21: return new TwistySkewb         (numL, quat, move, stream);
188
      case 22: return new TwistyIvy           (numL, quat, move, stream);
189
      case 23: return new TwistyRex           (numL, quat, move, stream);
190
      case 24: return new TwistyBandagedFused (numL, quat, move, stream);
191
      case 25: return new TwistyBandaged2Bar  (numL, quat, move, stream);
192
      case 26: return new TwistyBandaged3Plate(numL, quat, move, stream);
193
      case 27: return new TwistyBandagedEvil  (numL, quat, move, stream);
194
      case 28: return new TwistySquare1       (numL, quat, move, stream);
195
      case 29: return new TwistySquare2       (numL, quat, move, stream);
168
      case 21: return new TwistySkewb         (numL, quat, move, meshStream);
169
      case 22: return new TwistyIvy           (numL, quat, move, meshStream);
170
      case 23: return new TwistyRex           (numL, quat, move, meshStream);
171
      case 24: return new TwistyBandagedFused (numL, quat, move, meshStream);
172
      case 25: return new TwistyBandaged2Bar  (numL, quat, move, meshStream);
173
      case 26: return new TwistyBandaged3Plate(numL, quat, move, meshStream);
174
      case 27: return new TwistyBandagedEvil  (numL, quat, move, meshStream);
175
      case 28: return new TwistySquare1       (numL, quat, move, meshStream);
176
      case 29: return new TwistySquare2       (numL, quat, move, meshStream);
196 177
      case 30:
197
      case 31: return new TwistyMirror        (numL, quat, move, stream);
178
      case 31: return new TwistyMirror        (numL, quat, move, meshStream);
198 179
      case 32:
199 180
      case 33:
200
      case 34: return new TwistyCuboid        (numL, quat, move, stream);
201
      case 35: return new TwistyHelicopter    (numL, quat, move, stream);
181
      case 34: return new TwistyCuboid        (numL, quat, move, meshStream);
182
      case 35: return new TwistyHelicopter    (numL, quat, move, meshStream);
202 183
      }
203 184

  
204 185
    return null;

Also available in: Unified diff