Revision aa171dee
Added by Leszek Koltunski about 4 years ago
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
More support for actual patterns!