Project

General

Profile

« Previous | Next » 

Revision 8e3898c8

Added by Leszek Koltunski about 4 years ago

Each object size now has its own number of levels (not always 18!)

View differences:

src/main/java/org/distorted/objects/RubikObjectList.java
33 33
  {
34 34
  CUBE (
35 35
         new int[][] {
36
                       {2 , R.drawable.cube2} ,
37
                       {3 , R.drawable.cube3} ,
38
                       {4 , R.drawable.cube4} ,
39
                       {5 , R.drawable.cube5}
36
                       {2 , 12, R.drawable.cube2} ,
37
                       {3 , 16, R.drawable.cube3} ,
38
                       {4 , 20, R.drawable.cube4} ,
39
                       {5 , 24, R.drawable.cube5}
40 40
                     },
41 41
         RubikCube.class,
42 42
         new RubikCubeMovement()
......
44 44

  
45 45
  PYRA (
46 46
         new int[][] {
47
                       {3 , R.drawable.pyra3} ,
48
                       {4 , R.drawable.pyra4} ,
49
                       {5 , R.drawable.pyra5}
47
                       {3 , 10, R.drawable.pyra3} ,
48
                       {4 , 15, R.drawable.pyra4} ,
49
                       {5 , 20, R.drawable.pyra5}
50 50
                     },
51 51
         RubikPyraminx.class,
52 52
         new RubikPyraminxMovement()
......
55 55

  
56 56
  public static final int NUM_OBJECTS = values().length;
57 57
  public static final int MAX_SIZE;
58
  public static final int MAX_LEVEL;
58 59

  
59
  private final int[] mObjectSizes, mIconIDs;
60
  private final int[] mObjectSizes, mMaxLevels, mIconIDs;
60 61
  private final Class<? extends RubikObject> mObjectClass;
61 62
  private final RubikObjectMovement mObjectMovementClass;
62 63
  private static final RubikObjectList[] objects;
......
67 68
    mNumAll = 0;
68 69
    int size, i = 0;
69 70
    objects = new RubikObjectList[NUM_OBJECTS];
70
    int maxsize = Integer.MIN_VALUE;
71
    int maxSize  = Integer.MIN_VALUE;
72
    int maxLevel = Integer.MIN_VALUE;
71 73

  
72 74
    for(RubikObjectList object: RubikObjectList.values())
73 75
      {
......
75 77
      i++;
76 78
      size = object.mObjectSizes.length;
77 79
      mNumAll += size;
78
      if( size> maxsize ) maxsize = size;
80
      if( size> maxSize ) maxSize = size;
81

  
82
      for(int j=0; j<size; j++)
83
        {
84
        if( object.mMaxLevels[j] > maxLevel ) maxLevel = object.mMaxLevels[j];
85
        }
79 86
      }
80 87

  
81
    MAX_SIZE = maxsize;
88
    MAX_SIZE = maxSize;
89
    MAX_LEVEL= maxLevel;
82 90
    }
83 91

  
84 92
///////////////////////////////////////////////////////////////////////////////////////////////////
......
100 108

  
101 109
///////////////////////////////////////////////////////////////////////////////////////////////////
102 110

  
103
  public static int unpackSize(int number)
111
  public static int unpackSizeIndex(int number)
104 112
    {
105 113
    int num;
106 114

  
......
189 197
    return mNumAll;
190 198
    }
191 199

  
200
///////////////////////////////////////////////////////////////////////////////////////////////////
201

  
202
  public static int getMaxLevel(int ordinal, int sizeIndex)
203
    {
204
    if( ordinal>=0 && ordinal<NUM_OBJECTS )
205
      {
206
      int num = objects[ordinal].mObjectSizes.length;
207
      return sizeIndex>=0 && sizeIndex<num ? objects[ordinal].mMaxLevels[sizeIndex] : 0;
208
      }
209

  
210
    return 0;
211
    }
212

  
192 213
///////////////////////////////////////////////////////////////////////////////////////////////////
193 214

  
194 215
  public static int getOrdinal(String name)
......
249 270
    int length = info.length;
250 271

  
251 272
    mObjectSizes= new int[length];
273
    mMaxLevels  = new int[length];
252 274
    mIconIDs    = new int[length];
253 275

  
254 276
    for(int i=0; i<length; i++)
255 277
      {
256 278
      mObjectSizes[i] = info[i][0];
257
      mIconIDs[i]     = info[i][1];
279
      mMaxLevels[i]   = info[i][1];
280
      mIconIDs[i]     = info[i][2];
258 281
      }
259 282

  
260 283
    mObjectClass         = object;
......
263 286

  
264 287
///////////////////////////////////////////////////////////////////////////////////////////////////
265 288

  
266
  public int[] getIconIDs()
289
  public int[] getSizes()
267 290
    {
268
    return mIconIDs;
291
    return mObjectSizes;
269 292
    }
270 293

  
271 294
///////////////////////////////////////////////////////////////////////////////////////////////////
272 295

  
273
  public int[] getSizes()
296
  public int[] getMaxLevels()
274 297
    {
275
    return mObjectSizes;
298
    return mMaxLevels;
299
    }
300

  
301
///////////////////////////////////////////////////////////////////////////////////////////////////
302

  
303
  public int[] getIconIDs()
304
    {
305
    return mIconIDs;
276 306
    }
277 307

  
278 308
///////////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff