Project

General

Profile

« Previous | Next » 

Revision 302600e5

Added by Leszek Koltunski 24 days ago

compiles now

View differences:

src/main/java/org/distorted/dialogs/DialogPattern.java
18 18
import androidx.fragment.app.FragmentActivity;
19 19

  
20 20
import org.distorted.main.R;
21
import org.distorted.objectlib.helpers.ObjectMove;
21 22
import org.distorted.objectlib.main.ObjectControl;
22 23
import org.distorted.objectlib.patterns.RubikPattern;
23 24
import org.distorted.objectlib.patterns.RubikPatternList;
......
110 111
      public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id)
111 112
        {
112 113
        RubikPattern pattern = RubikPattern.getInstance();
113
        int[][] moves = pattern.reInitialize(mPatternOrdinal, groupPosition, childPosition);
114
        ObjectMove[] moves = pattern.reInitialize(mPatternOrdinal, groupPosition, childPosition);
114 115
        if( control!=null ) control.initializeObject(moves);
115 116

  
116 117
        ScreenPattern state = (ScreenPattern) ScreenList.PATT.getScreenClass();
src/main/java/org/distorted/patterns/ScreenPattern.java
21 21
import org.distorted.helpers.TransparentButton;
22 22
import org.distorted.helpers.TransparentImageButton;
23 23
import org.distorted.main.R;
24
import org.distorted.objectlib.helpers.ObjectMove;
24 25
import org.distorted.objectlib.main.ObjectControl;
25 26
import org.distorted.objectlib.patterns.RubikPattern;
26 27

  
......
315 316
        }
316 317
      }
317 318

  
318
    int[][] moves = patt.reInitialize(mPatternOrdinal, mCategory, mPattern);
319
    ObjectMove[] moves = patt.reInitialize(mPatternOrdinal, mCategory, mPattern);
319 320
    ObjectControl control = act.getControl();
320 321
    if( control!=null ) control.initializeObject(moves);
321 322
    }
......
345 346
        }
346 347
      }
347 348

  
348
    int[][] moves = patt.reInitialize(mPatternOrdinal, mCategory, mPattern);
349
    ObjectMove[] moves = patt.reInitialize(mPatternOrdinal, mCategory, mPattern);
349 350
    ObjectControl control = act.getControl();
350 351
    if( control!=null ) control.initializeObject(moves);
351 352
    }
src/main/java/org/distorted/solvers/ScreenSetupPosition.java
32 32
import org.distorted.helpers.TransparentImageButton;
33 33
import org.distorted.main.MainActivity;
34 34
import org.distorted.main.R;
35
import org.distorted.objectlib.helpers.ObjectMove;
35 36
import org.distorted.objectlib.helpers.OperatingSystemInterface;
36 37
import org.distorted.objectlib.main.ObjectControl;
37 38
import org.distorted.objectlib.main.TwistyObject;
......
535 536

  
536 537
///////////////////////////////////////////////////////////////////////////////////////////////////
537 538

  
538
  public void setSolved(final int[][] moves, final int phaseNumber, final int[][] subphases)
539
  public void setSolved(final ObjectMove[] moves, final int phaseNumber, final int[][] subphases)
539 540
    {
540 541
    final SolverActivity act = mWeakAct.get();
541 542

  
src/main/java/org/distorted/solvers/ScreenSolutionMultiphased.java
27 27
import org.distorted.library.type.Static4D;
28 28
import org.distorted.main.R;
29 29
import org.distorted.objectlib.helpers.MovesFinished;
30
import org.distorted.objectlib.helpers.ObjectMove;
30 31
import org.distorted.objectlib.main.ObjectControl;
31 32
import org.distorted.objectlib.main.TwistyObject;
32 33

  
......
48 49
  private TextView mMovesText, mMovesPhase;
49 50
  private String[] mPhaseNames;
50 51
  private int mNumPhases;
51
  private int[][][] mMoves;
52
  private ObjectMove[][] mMoves;
52 53
  private int[][] mCubitsNotInvolved;
53 54
  private int mNumMoves,mCurrMove,mCurrPhase;
54 55
  private boolean mCanMove;
......
255 256

  
256 257
    if( mCurrMove>0 )
257 258
      {
258
      int[][] moves = transformMoves(mMoves[mCurrPhase],0,mCurrMove, false);
259
      ObjectMove[] moves = transformMoves(mMoves[mCurrPhase],0,mCurrMove, false);
259 260
      control.applyScrambles(moves);
260 261
      mCurrMove = 0;
261 262
      }
......
264 265
      mCurrPhase--;
265 266
      mNumMoves = mMoves[mCurrPhase]==null ? 0 : mMoves[mCurrPhase].length;
266 267
      mCurrMove = 0;
267
      int[][] moves = transformMoves(mMoves[mCurrPhase],0,mNumMoves, false);
268
      ObjectMove[] moves = transformMoves(mMoves[mCurrPhase],0,mNumMoves, false);
268 269
      control.applyScrambles(moves);
269 270
      }
270 271
    else
......
272 273
      mCurrPhase = mNumPhases-1;
273 274
      mNumMoves = mMoves[mCurrPhase]==null ? 0 : mMoves[mCurrPhase].length;
274 275
      mCurrMove = mNumMoves;
275
      int[][] moves = transformMoves(mMoves, true);
276
      ObjectMove[] moves = transformMoves(mMoves, true);
276 277
      control.applyScrambles(moves);
277 278
      }
278 279

  
......
289 290
    if( mCurrPhase<mNumPhases-1 )
290 291
      {
291 292
      glowCubits(mCubitsNotInvolved[mCurrPhase]);
292
      int[][] moves = transformMoves(mMoves[mCurrPhase],mCurrMove,mNumMoves, true);
293
      ObjectMove[] moves = transformMoves(mMoves[mCurrPhase],mCurrMove,mNumMoves, true);
293 294
      control.applyScrambles(moves);
294 295
      mCurrPhase++;
295 296
      mNumMoves = mMoves[mCurrPhase]==null ? 0 : mMoves[mCurrPhase].length;
......
298 299
    else if( mCurrMove<mNumMoves )
299 300
      {
300 301
      glowCubits(mCubitsNotInvolved[mCurrPhase]);
301
      int[][] moves = transformMoves(mMoves[mCurrPhase],mCurrMove,mNumMoves, true);
302
      ObjectMove[] moves = transformMoves(mMoves[mCurrPhase],mCurrMove,mNumMoves, true);
302 303
      control.applyScrambles(moves);
303 304
      mCurrMove = mNumMoves;
304 305
      }
......
307 308
      mCurrPhase = 0;
308 309
      mNumMoves = mMoves[mCurrPhase]==null ? 0 : mMoves[mCurrPhase].length;
309 310
      mCurrMove = 0;
310
      int[][] moves = transformMoves(mMoves, false);
311
      ObjectMove[] moves = transformMoves(mMoves, false);
311 312
      control.applyScrambles(moves);
312 313
      }
313 314

  
......
344 345

  
345 346
///////////////////////////////////////////////////////////////////////////////////////////////////
346 347

  
347
  private int[][] transformMoves(int[][] moves, int start, int end, boolean front)
348
  private ObjectMove[] transformMoves(ObjectMove[] moves, int start, int end, boolean front)
348 349
    {
349
    int mult = front ? 1:-1;
350 350
    int len = end-start;
351
    int[][] ret = new int[len][];
351
    ObjectMove[] ret = new ObjectMove[len];
352 352

  
353 353
    for(int m=0; m<len; m++)
354 354
      {
355
      int[] mv = moves[front ? start+m : end-1-m];
356
      int[] rt = new int[3];
357
      rt[0] = mv[0];
358
      rt[1] = (1<<mv[1]);
359
      rt[2] = mult*mv[2];
360
      ret[m] = rt;
355
      ObjectMove mv = moves[front ? start+m : end-1-m];
356
      ret[m] = new ObjectMove( mv.getAxis(), mv.getRowBitmap(), front ? mv.getAngle() : -mv.getAngle() );
361 357
      }
362 358

  
363 359
    return ret;
......
365 361

  
366 362
///////////////////////////////////////////////////////////////////////////////////////////////////
367 363

  
368
  private int[][] transformMoves(int[][][] moves, boolean front)
364
  private ObjectMove[] transformMoves(ObjectMove[][] moves, boolean front)
369 365
    {
370 366
    int len = moves.length;
371 367
    int totalLen = 0;
372
    for (int[][] move : moves) totalLen += (move==null ? 0 : move.length);
368
    for( ObjectMove[] move : moves ) totalLen += (move==null ? 0 : move.length);
373 369

  
374
    int[][] ret = new int[totalLen][];
375
    int mult = front ? 1:-1;
370
    ObjectMove[] ret = new ObjectMove[totalLen];
376 371
    int index = 0;
377 372

  
378 373
    for(int m=0; m<len; m++)
379 374
      {
380
      int[][] mv = moves[front ? m : len-1-m];
375
      ObjectMove[] mv = moves[front ? m : len-1-m];
381 376
      int l = (mv==null ? 0 : mv.length);
382 377

  
383 378
      for(int p=0; p<l; p++)
384 379
        {
385
        int[] mve = mv[front ? p : l-1-p];
386
        int[] rt = new int[3];
387
        rt[0] = mve[0];
388
        rt[1] = (1<<mve[1]);
389
        rt[2] = mult*mve[2];
390
        ret[index++] = rt;
380
        ObjectMove mve = mv[front ? p : l-1-p];
381
        ret[index++] = new ObjectMove( mve.getAxis(), mve.getRowBitmap(), front ? mve.getAngle() : -mve.getAngle() );
391 382
        }
392 383
      }
393 384

  
......
451 442
      if( mCurrMove>0 )
452 443
        {
453 444
        mCanMove = false;
454
        int[] move = mMoves[mCurrPhase][--mCurrMove];
445
        ObjectMove move = mMoves[mCurrPhase][--mCurrMove];
455 446
        ObjectControl control = act.getControl();
456 447
        control.blockTouch(MOVES_PLACE_0);
457
        control.addRotation(this, move[0], (1<<move[1]), -move[2], MILLIS_PER_DEGREE);
448
        control.addRotation(this, move.getAxis(), move.getRowBitmap(), -move.getAngle(), MILLIS_PER_DEGREE);
458 449
        }
459 450
      else if( mCurrPhase>0 )
460 451
        {
......
468 459
        mCurrPhase = mNumPhases-1;
469 460
        mNumMoves = mMoves[mCurrPhase]==null ? 0 : mMoves[mCurrPhase].length;
470 461
        mCurrMove = mNumMoves;
471
        int[][] moves = transformMoves(mMoves, true);
462
        ObjectMove[] moves = transformMoves(mMoves, true);
472 463
        ObjectControl control = act.getControl();
473 464
        control.applyScrambles(moves);
474 465
        glowCubits(mCubitsNotInvolved[mCurrPhase]);
......
489 480
      if( mCurrMove<mNumMoves )
490 481
        {
491 482
        mCanMove = false;
492
        int[] move = mMoves[mCurrPhase][mCurrMove++];
483
        ObjectMove move = mMoves[mCurrPhase][mCurrMove++];
493 484
        ObjectControl control = act.getControl();
494 485
        control.blockTouch(MOVES_PLACE_1);
495
        control.addRotation(this, move[0], (1<<move[1]), move[2], MILLIS_PER_DEGREE);
486
        control.addRotation(this, move.getAxis(), move.getRowBitmap(), move.getAngle(), MILLIS_PER_DEGREE);
496 487
        if( mCurrMove==mNumMoves && mCurrPhase==mNumPhases-1 ) glowCubits(mCubitsNotInvolved[mCurrPhase]);
497 488
        }
498 489
      else if( mCurrPhase<mNumPhases-1 )
......
507 498
        mCurrPhase = 0;
508 499
        mNumMoves = mMoves[mCurrPhase]==null ? 0 : mMoves[mCurrPhase].length;
509 500
        mCurrMove = 0;
510
        int[][] moves = transformMoves(mMoves, false);
501
        ObjectMove[] moves = transformMoves(mMoves, false);
511 502
        ObjectControl control = act.getControl();
512 503
        control.applyScrambles(moves);
513 504
        }
......
522 513
    {
523 514
    mPhaseNames = names;
524 515
    mNumPhases = names.length;
525
    mMoves = new int[mNumPhases][][];
516
    mMoves = new ObjectMove[mNumPhases][];
526 517
    mCubitsNotInvolved = new int[mNumPhases][];
527 518
    mCanMove = true;
528 519
    if( mAct!=null ) setSolution(null,0,null);
......
530 521

  
531 522
///////////////////////////////////////////////////////////////////////////////////////////////////
532 523

  
533
  public void setSolution(int[][] moves, int phase, int[][] subphases)
524
  public void setSolution(ObjectMove[] moves, int phase, int[][] subphases)
534 525
    {
535 526
    SolverActivity act=mAct.get();
536 527

  
src/main/java/org/distorted/solvers/ScreenSolutionSinglephased.java
20 20
import org.distorted.helpers.TransparentImageButton;
21 21
import org.distorted.main.R;
22 22
import org.distorted.objectlib.helpers.MovesFinished;
23
import org.distorted.objectlib.helpers.ObjectMove;
23 24
import org.distorted.objectlib.main.ObjectControl;
24 25

  
25 26
import java.lang.ref.WeakReference;
......
32 33

  
33 34
  private TransparentImageButton mPrevButton, mNextButton, mBackButton;
34 35
  private TextView mMovesText;
35
  private int[][] mMoves;
36
  private ObjectMove[] mMoves;
36 37
  private int mCurrMove, mNumMoves;
37 38
  private boolean mCanRotate;
38 39
  private float mButtonSize;
......
190 191
        }
191 192
      else
192 193
        {
193
        int axis      = mMoves[mCurrMove-1][0];
194
		int rowBitmap = mMoves[mCurrMove-1][1];
195
		int bareAngle = mMoves[mCurrMove-1][2];
194
        int axis      = mMoves[mCurrMove-1].getAxis();
195
		int rowBitmap = mMoves[mCurrMove-1].getRowBitmap();
196
		int bareAngle = mMoves[mCurrMove-1].getAngle();
196 197

  
197 198
        if( bareAngle!=0 )
198 199
          {
......
226 227
        }
227 228
      else
228 229
        {
229
        int axis      = mMoves[mCurrMove][0];
230
	    int rowBitmap = mMoves[mCurrMove][1];
231
	    int bareAngle = mMoves[mCurrMove][2];
230
        int axis      = mMoves[mCurrMove].getAxis();
231
	    int rowBitmap = mMoves[mCurrMove].getRowBitmap();
232
	    int bareAngle = mMoves[mCurrMove].getAngle();
232 233

  
233 234
        if( bareAngle!=0 )
234 235
          {
......
249 250

  
250 251
///////////////////////////////////////////////////////////////////////////////////////////////////
251 252

  
252
  void setSolution(int[][] moves)
253
  void setSolution(ObjectMove[] moves)
253 254
    {
254 255
    mCanRotate= true;
255 256
    mCurrMove = 0;

Also available in: Unified diff