Project

General

Profile

Download (4.24 KB) Statistics
| Branch: | Tag: | Revision:

magiccube / src / main / java / org / distorted / object / RubikObjectList.java @ 27a70eae

1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2020 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6
// Magic Cube is free software: you can redistribute it and/or modify                            //
7
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11
// Magic Cube is distributed in the hope that it will be useful,                                 //
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17
// along with Magic Cube.  If not, see <http://www.gnu.org/licenses/>.                           //
18
///////////////////////////////////////////////////////////////////////////////////////////////////
19

    
20
package org.distorted.object;
21

    
22
import org.distorted.library.main.DistortedEffects;
23
import org.distorted.library.main.DistortedTexture;
24
import org.distorted.library.mesh.MeshFlat;
25
import org.distorted.library.type.Static4D;
26
import org.distorted.magic.R;
27

    
28
///////////////////////////////////////////////////////////////////////////////////////////////////
29

    
30
public enum RubikObjectList
31
  {
32
  CUBE2 ( 2, R.drawable.button2 , RubikCube.class, RubikCubeMovement.class),
33
  CUBE3 ( 3, R.drawable.button3 , RubikCube.class, RubikCubeMovement.class),
34
  CUBE4 ( 4, R.drawable.button4 , RubikCube.class, RubikCubeMovement.class),
35
  CUBE5 ( 5, R.drawable.button5 , RubikCube.class, RubikCubeMovement.class),
36
  ;
37

    
38
  public static final int VECTX = 0;  //
39
  public static final int VECTY = 1;  // don't change this
40
  public static final int VECTZ = 2;  //
41

    
42
  public static final int LENGTH = values().length;
43
  private final int mObjectSize, mIconID;
44
  final Class<? extends RubikObject> mObjectClass;
45
  final Class<? extends RubikObjectMovement> mObjectMovementClass;
46
  private static final RubikObjectList[] objects;
47

    
48
  static
49
    {
50
    int i = 0;
51
    objects = new RubikObjectList[LENGTH];
52

    
53
    for(RubikObjectList size: RubikObjectList.values())
54
      {
55
      objects[i] = size;
56
      i++;
57
      }
58
    }
59

    
60
///////////////////////////////////////////////////////////////////////////////////////////////////
61

    
62
  public static RubikObjectList getObject(int ordinal)
63
    {
64
    return objects[ordinal];
65
    }
66

    
67
///////////////////////////////////////////////////////////////////////////////////////////////////
68

    
69
  RubikObjectList(int size, int iconID, Class<? extends RubikObject > object, Class<? extends RubikObjectMovement> movement)
70
    {
71
    mObjectSize = size;
72
    mIconID     = iconID;
73
    mObjectClass= object;
74
    mObjectMovementClass = movement;
75
    }
76

    
77
///////////////////////////////////////////////////////////////////////////////////////////////////
78

    
79
  public int getIconID()
80
    {
81
    return mIconID;
82
    }
83

    
84
///////////////////////////////////////////////////////////////////////////////////////////////////
85

    
86
  public RubikObject create(Static4D quatCur, Static4D quatAcc, DistortedTexture texture, MeshFlat mesh, DistortedEffects effects)
87
    {
88
    return new RubikCube(mObjectSize, quatCur, quatAcc, texture, mesh, effects);
89
    }
90

    
91
///////////////////////////////////////////////////////////////////////////////////////////////////
92

    
93
  public RubikObjectMovement getObjectMovementClass()
94
    {
95
    return new RubikCubeMovement();
96
    }
97
  }
(4-4/5)