Project

General

Profile

« Previous | Next » 

Revision 47ba5ddc

Added by Leszek Koltunski over 4 years ago

RubikCube: further fixes

View differences:

src/main/java/org/distorted/effect/sizechange/SizeChangeEffect.java
96 96
    mCube               = new RubikCube[NUM_PHASES];
97 97
    }
98 98

  
99
///////////////////////////////////////////////////////////////////////////////////////////////////
100

  
101
  public static String[] getNames()
102
    {
103
    String[] names = new String[NUM_EFFECTS];
104

  
105
    for( int i=0; i<NUM_EFFECTS; i++)
106
      {
107
      names[i] = types[i].name();
108
      }
109

  
110
    return names;
111
    }
112

  
113
///////////////////////////////////////////////////////////////////////////////////////////////////
114

  
115
  public static SizeChangeEffect create(int ordinal) throws InstantiationException, IllegalAccessException
116
    {
117
    return types[ordinal].effect.newInstance();
118
    }
119

  
120 99
///////////////////////////////////////////////////////////////////////////////////////////////////
121 100

  
122 101
  abstract int createEffectsPhase0(int duration);
123 102
  abstract int createEffectsPhase1(int duration);
124 103

  
125
///////////////////////////////////////////////////////////////////////////////////////////////////
126

  
127
  public void effectFinished(final long effectID)
128
    {
129
    if( mPhaseActive[0] ) effectFinishedPhase(effectID,0);
130
    if( mPhaseActive[1] ) effectFinishedPhase(effectID,1);
131
    }
132

  
133 104
///////////////////////////////////////////////////////////////////////////////////////////////////
134 105

  
135 106
  private void effectFinishedPhase(final long effectID, int phase)
......
190 161
      }
191 162
    }
192 163

  
193
///////////////////////////////////////////////////////////////////////////////////////////////////
194

  
195
  public long start(int duration, RubikRenderer renderer)
196
    {
197
    mScreen   = renderer.getScreen();
198
    mCube[0]  = renderer.getOldCube();
199
    mCube[1]  = renderer.getCube();
200
    mListener = renderer;
201
    mDuration = duration;
202

  
203
    if( mCube[0]!=null )
204
      {
205
      mPhaseActive[0] = true;
206
      mEffectFinished[0] = createEffectsPhase0(mDuration);
207
      assignEffects(0);
208
      }
209
    else
210
      {
211
      mPhaseActive[1] = true;
212
      mEffectFinished[1] = createEffectsPhase1(mDuration);
213
      assignEffects(1);
214
      mScreen.attach(mCube[1]);
215
      }
216

  
217
    return FAKE_EFFECT_ID;
218
    }
219

  
220 164
///////////////////////////////////////////////////////////////////////////////////////////////////
221 165

  
222 166
  private void assignEffects(int phase)
......
244 188
      }
245 189
    }
246 190

  
191
///////////////////////////////////////////////////////////////////////////////////////////////////
192
// PUBLIC API
193
///////////////////////////////////////////////////////////////////////////////////////////////////
194

  
195
  public void effectFinished(final long effectID)
196
    {
197
    if( mPhaseActive[0] ) effectFinishedPhase(effectID,0);
198
    if( mPhaseActive[1] ) effectFinishedPhase(effectID,1);
199
    }
200

  
201
///////////////////////////////////////////////////////////////////////////////////////////////////
202

  
203
  @SuppressWarnings("unused")
204
  public static String[] getNames()
205
    {
206
    String[] names = new String[NUM_EFFECTS];
207

  
208
    for( int i=0; i<NUM_EFFECTS; i++)
209
      {
210
      names[i] = types[i].name();
211
      }
212

  
213
    return names;
214
    }
215

  
216
///////////////////////////////////////////////////////////////////////////////////////////////////
217

  
218
  @SuppressWarnings("unused")
219
  public static SizeChangeEffect create(int ordinal) throws InstantiationException, IllegalAccessException
220
    {
221
    return types[ordinal].effect.newInstance();
222
    }
223

  
224
///////////////////////////////////////////////////////////////////////////////////////////////////
225

  
226
  @SuppressWarnings("unused")
227
  public long start(int duration, RubikRenderer renderer)
228
    {
229
    mScreen   = renderer.getScreen();
230
    mCube[0]  = renderer.getOldCube();
231
    mCube[1]  = renderer.getCube();
232
    mListener = renderer;
233
    mDuration = duration;
234

  
235
    if( mCube[0]!=null )
236
      {
237
      mPhaseActive[0] = true;
238
      mEffectFinished[0] = createEffectsPhase0(mDuration);
239
      assignEffects(0);
240
      }
241
    else
242
      {
243
      mPhaseActive[1] = true;
244
      mEffectFinished[1] = createEffectsPhase1(mDuration);
245
      assignEffects(1);
246
      mScreen.attach(mCube[1]);
247
      }
248

  
249
    return FAKE_EFFECT_ID;
250
    }
251

  
247 252
///////////////////////////////////////////////////////////////////////////////////////////////////
248 253

  
254
  @SuppressWarnings("unused")
249 255
  public static void enableEffects()
250 256
    {
251 257
    Method method;

Also available in: Unified diff