Revision 59c20632
Added by Leszek Koltunski over 2 years ago
src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java | ||
---|---|---|
19 | 19 |
|
20 | 20 |
package org.distorted.objectlib.objects; |
21 | 21 |
|
22 |
import static org.distorted.objectlib.main.Movement.MOVEMENT_DODECAHEDRON; |
|
22 | 23 |
import static org.distorted.objectlib.main.Movement.TYPE_NOT_SPLIT; |
23 | 24 |
|
24 | 25 |
import android.content.res.Resources; |
... | ... | |
30 | 31 |
import org.distorted.library.type.Static4D; |
31 | 32 |
|
32 | 33 |
import org.distorted.objectlib.R; |
33 |
import org.distorted.objectlib.main.Movement; |
|
34 | 34 |
import org.distorted.objectlib.main.Movement12; |
35 | 35 |
import org.distorted.objectlib.main.ObjectControl; |
36 | 36 |
import org.distorted.objectlib.main.ObjectType; |
... | ... | |
59 | 59 |
new Static3D( 0,C,-B) |
60 | 60 |
}; |
61 | 61 |
|
62 |
private static final int[][][] ENABLED = new int[][][] |
|
63 |
{ |
|
64 |
{{2,3}},{{1,3}},{{1,3}},{{2,3}},{{0,3}},{{0,2}},{{0,2}},{{0,3}},{{1,2}},{{0,1}},{{0,1}},{{1,2}} |
|
65 |
}; |
|
66 |
|
|
67 | 62 |
private ScrambleState[] mStates; |
68 | 63 |
private int[] mBasicAngle; |
69 | 64 |
private Static4D[] mQuats; |
70 | 65 |
private float[][] mCuts; |
71 |
private boolean[][] mLayerRotatable; |
|
72 | 66 |
private int[][] mFaceMap; |
73 | 67 |
private float[][] mCenters; |
74 | 68 |
private int[] mQuatIndex; |
75 | 69 |
private ObjectSticker[] mStickers; |
76 |
private Movement mMovement; |
|
77 | 70 |
|
78 | 71 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
79 | 72 |
|
... | ... | |
374 | 367 |
|
375 | 368 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
376 | 369 |
|
377 |
protected int getSolvedFunctionIndex()
|
|
370 |
public int getSolvedFunctionIndex()
|
|
378 | 371 |
{ |
379 | 372 |
return 0; |
380 | 373 |
} |
... | ... | |
394 | 387 |
|
395 | 388 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
396 | 389 |
|
397 |
private void getLayerRotatable(int[] numLayers)
|
|
390 |
public boolean[][] getLayerRotatable(int[] numLayers)
|
|
398 | 391 |
{ |
399 |
if( mLayerRotatable==null ) |
|
400 |
{ |
|
401 |
int numAxis = ROT_AXIS.length; |
|
402 |
mLayerRotatable = new boolean[numAxis][]; |
|
392 |
int numAxis = ROT_AXIS.length; |
|
393 |
boolean[][] layerRotatable = new boolean[numAxis][]; |
|
403 | 394 |
|
404 |
for(int i=0; i<numAxis; i++) |
|
405 |
{ |
|
406 |
mLayerRotatable[i] = new boolean[numLayers[i]]; |
|
407 |
for(int j=0; j<numLayers[i]; j++) mLayerRotatable[i][j] = true; |
|
408 |
} |
|
395 |
for(int i=0; i<numAxis; i++) |
|
396 |
{ |
|
397 |
layerRotatable[i] = new boolean[numLayers[i]]; |
|
398 |
for(int j=0; j<numLayers[i]; j++) layerRotatable[i][j] = true; |
|
409 | 399 |
} |
400 |
|
|
401 |
return layerRotatable; |
|
402 |
} |
|
403 |
|
|
404 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
405 |
|
|
406 |
public int getMovementType() |
|
407 |
{ |
|
408 |
return MOVEMENT_DODECAHEDRON; |
|
409 |
} |
|
410 |
|
|
411 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
412 |
|
|
413 |
public int getMovementSplit() |
|
414 |
{ |
|
415 |
return TYPE_NOT_SPLIT; |
|
416 |
} |
|
417 |
|
|
418 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
419 |
|
|
420 |
public int[][][] getEnabled() |
|
421 |
{ |
|
422 |
return new int[][][] |
|
423 |
{ |
|
424 |
{{2,3}},{{1,3}},{{1,3}},{{2,3}},{{0,3}},{{0,2}},{{0,2}},{{0,3}},{{1,2}},{{0,1}},{{0,1}},{{1,2}} |
|
425 |
}; |
|
426 |
} |
|
427 |
|
|
428 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
429 |
|
|
430 |
public float[] getDist3D(int[] numLayers) |
|
431 |
{ |
|
432 |
return null; |
|
410 | 433 |
} |
411 | 434 |
|
412 | 435 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
431 | 454 |
return ROT_AXIS; |
432 | 455 |
} |
433 | 456 |
|
434 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
435 |
|
|
436 |
public Movement getMovement() |
|
437 |
{ |
|
438 |
if( mMovement==null ) |
|
439 |
{ |
|
440 |
int[] numLayers = getNumLayers(); |
|
441 |
if( mCuts==null ) getCuts(numLayers); |
|
442 |
getLayerRotatable(numLayers); |
|
443 |
mMovement = new Movement12(ROT_AXIS,mCuts,mLayerRotatable,numLayers[0],TYPE_NOT_SPLIT,ENABLED); |
|
444 |
} |
|
445 |
return mMovement; |
|
446 |
} |
|
447 |
|
|
448 | 457 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
449 | 458 |
|
450 | 459 |
public int[] getBasicAngle() |
... | ... | |
474 | 483 |
return R.string.ulti2_inventor; |
475 | 484 |
} |
476 | 485 |
|
486 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
487 |
|
|
488 |
public int getYearOfInvention(int[] numLayers) |
|
489 |
{ |
|
490 |
return 2000; |
|
491 |
} |
|
492 |
|
|
477 | 493 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
478 | 494 |
|
479 | 495 |
public int getComplexity(int[] numLayers) |
Also available in: Unified diff
Reorg for writing the JSON