Project

General

Profile

« Previous | Next » 

Revision aa171dee

Added by Leszek Koltunski about 4 years ago

More support for actual patterns!

View differences:

src/main/java/org/distorted/magic/RubikRenderer.java
61 61
    private RubikObject mOldObject, mNewObject;
62 62
    private int mScreenWidth, mScreenHeight;
63 63
    private SharedPreferences mPreferences;
64
    private String mNextMoves;
64 65

  
65 66
///////////////////////////////////////////////////////////////////////////////////////////////////
66 67

  
......
92 93

  
93 94
///////////////////////////////////////////////////////////////////////////////////////////////////
94 95

  
95
   private void createObjectNow(RubikObjectList object, int size)
96
   private void createObjectNow(RubikObjectList object, int size, String moves)
96 97
     {
97 98
     boolean firstTime = (mNewObject==null);
98 99

  
99 100
     if( mOldObject!=null ) mOldObject.releaseResources();
100 101
     mOldObject = mNewObject;
101 102

  
102
     mNewObject = object.create(size, mView.getQuatCurrent(), mView.getQuatAccumulated());
103
     mNewObject = object.create(size, mView.getQuatCurrent(), mView.getQuatAccumulated(), moves);
103 104
     mNewObject.createTexture();
104 105
     mView.setMovement(object.getObjectMovementClass());
105 106

  
......
161 162

  
162 163
///////////////////////////////////////////////////////////////////////////////////////////////////
163 164

  
164
   void createObject(RubikObjectList object, int size)
165
   void changeObject(RubikObjectList object, int size, String moves)
165 166
     {
166
     if( (object!=mNextObject || mNextSize!=size) && size>0 )
167
     if( size>0 )
167 168
       {
168 169
       mChangeObject = true;
169 170
       mNextObject = object;
170 171
       mNextSize   = size;
172
       mNextMoves  = moves;
171 173
       }
172 174
     }
173 175

  
......
192 194
       }
193 195
     }
194 196

  
195
///////////////////////////////////////////////////////////////////////////////////////////////////
196

  
197
   void setCanRotate(boolean can)
198
     {
199
     mCanRotate = can;
200
     }
201

  
202 197
///////////////////////////////////////////////////////////////////////////////////////////////////
203 198

  
204 199
   boolean canRotate()
......
307 302
       mCanDrag      = false;
308 303
       mCanRotate    = false;
309 304
       mCanUI        = false;
310
       createObjectNow(mNextObject, mNextSize);
311
       doEffectNow( BaseEffect.Type.SIZECHANGE );
305

  
306
       if( mNewObject==null )
307
         {
308
         createObjectNow(mNextObject, mNextSize, mNextMoves);
309
         doEffectNow( BaseEffect.Type.SIZECHANGE );
310
         }
311
       else
312
         {
313
         RubikObjectList list = mNewObject.getObjectList();
314
         int size = mNewObject.getSize();
315

  
316
         if (list!=mNextObject || mNextSize!=size)
317
           {
318
           createObjectNow(mNextObject, mNextSize, mNextMoves);
319
           doEffectNow( BaseEffect.Type.SIZECHANGE );
320
           }
321
         else
322
           {
323
           mNewObject.initializeObject(mNextMoves);
324
           }
325
         }
312 326
       }
313 327

  
314 328
     if( mSolveObject )

Also available in: Unified diff