Project

General

Profile

« Previous | Next » 

Revision 27a70eae

Added by Leszek Koltunski about 4 years ago

Make RubikCube and RubikCubeMovement generic and not visible outside of their package.

View differences:

src/main/java/org/distorted/effect/scramble/ScrambleEffect.java
23 23
import org.distorted.library.effect.Effect;
24 24
import org.distorted.library.main.DistortedEffects;
25 25
import org.distorted.library.message.EffectListener;
26
import org.distorted.object.RubikCube;
27 26
import org.distorted.magic.RubikRenderer;
27
import org.distorted.object.RubikObject;
28 28

  
29 29
import java.lang.reflect.Method;
30 30
import java.util.Random;
31 31

  
32
import static org.distorted.object.RubikObjectList.VECTX;
33
import static org.distorted.object.RubikObjectList.VECTY;
34
import static org.distorted.object.RubikObjectList.VECTZ;
35

  
32 36
///////////////////////////////////////////////////////////////////////////////////////////////////
33 37

  
34 38
public abstract class ScrambleEffect extends BaseEffect implements EffectListener
......
69 73
  private int mLastVector;
70 74
  private long mDurationSingleTurn;
71 75
  private Random mRnd;
72
  private RubikCube mCube;
76
  private RubikObject mObject;
73 77

  
74 78
  Effect[] mNodeEffects;
75 79
  int[] mNodeEffectPosition;
......
123 127
        {
124 128
        switch(mRnd.nextInt(3))
125 129
          {
126
          case 0: mLastVector = RubikCube.VECTX; break;
127
          case 1: mLastVector = RubikCube.VECTY; break;
128
          case 2: mLastVector = RubikCube.VECTZ; break;
130
          case 0: mLastVector = VECTX; break;
131
          case 1: mLastVector = VECTY; break;
132
          case 2: mLastVector = VECTZ; break;
129 133
          }
130 134
        }
131 135
      else
......
134 138

  
135 139
        switch(mLastVector)
136 140
          {
137
          case RubikCube.VECTX: mLastVector = (newVector==0 ? RubikCube.VECTY: RubikCube.VECTZ); break;
138
          case RubikCube.VECTY: mLastVector = (newVector==0 ? RubikCube.VECTX: RubikCube.VECTZ); break;
139
          case RubikCube.VECTZ: mLastVector = (newVector==0 ? RubikCube.VECTX: RubikCube.VECTY); break;
141
          case VECTX: mLastVector = (newVector==0 ? VECTY: VECTZ); break;
142
          case VECTY: mLastVector = (newVector==0 ? VECTX: VECTZ); break;
143
          case VECTZ: mLastVector = (newVector==0 ? VECTX: VECTY); break;
140 144
          }
141 145
        }
142 146

  
143
      int row  = mRnd.nextInt(mCube.getSize());
147
      int row  = mRnd.nextInt(mObject.getSize());
144 148
      int angle= randomizeAngle();
145 149
      int absAngle = (angle<0 ? -angle : angle);
146 150
      long durationMillis =  absAngle*mDurationSingleTurn;
......
153 157
        android.util.Log.e("effect", "ERROR: "+mNumDoubleScramblesLeft);
154 158
        }
155 159

  
156
      mCurrentBaseEffectID = mCube.addNewRotation(mLastVector, row, angle*90, durationMillis, this );
160
      mCurrentBaseEffectID = mObject.addNewRotation(mLastVector, row, angle*90, durationMillis, this );
157 161
      }
158 162
    else
159 163
      {
......
183 187
    {
184 188
    for(int i=0; i<mCubeEffectNumber; i++)
185 189
      {
186
      mCube.apply(mCubeEffects[i],mCubeEffectPosition[i]);
190
      mObject.apply(mCubeEffects[i],mCubeEffectPosition[i]);
187 191
      mCubeEffects[i].notifyWhenFinished(this);
188 192
      }
189 193

  
190
    DistortedEffects nodeEffects = mCube.getEffects();
194
    DistortedEffects nodeEffects = mObject.getEffects();
191 195

  
192 196
    for(int i=0; i<mNodeEffectNumber; i++)
193 197
      {
......
202 206
    {
203 207
    for(int i=0; i<mCubeEffectNumber; i++)
204 208
      {
205
      mCube.remove(mCubeEffects[i].getID());
209
      mObject.remove(mCubeEffects[i].getID());
206 210
      }
207 211

  
208
    DistortedEffects nodeEffects = mCube.getEffects();
212
    DistortedEffects nodeEffects = mObject.getEffects();
209 213

  
210 214
    for(int i=0; i<mNodeEffectNumber; i++)
211 215
      {
......
244 248
    {
245 249
    if( effectID == mCurrentBaseEffectID )
246 250
      {
247
      mCube.removeRotationNow();
251
      mObject.removeRotationNow();
248 252
      addNewScramble();
249 253
      return;
250 254
      }
......
301 305
  @SuppressWarnings("unused")
302 306
  public long start(int duration, RubikRenderer renderer)
303 307
    {
304
    mCube     = renderer.getCube();
308
    mObject   = renderer.getObject();
305 309
    mListener = renderer;
306 310

  
307
    mCube.solve();
311
    mObject.solve();
308 312

  
309 313
    int numScrambles = renderer.getNumScrambles();
310 314
    int dura = (int)(duration*Math.pow(numScrambles,0.6f));

Also available in: Unified diff