Project

General

Profile

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

magiccube / src / main / java / org / distorted / object / RubikObjectList.java @ b32444ee

1 27a70eae Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
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 97c012ae Leszek Koltunski
import org.distorted.library.mesh.MeshRectangles;
25 27a70eae Leszek Koltunski
import org.distorted.library.type.Static4D;
26
import org.distorted.magic.R;
27
28 74686c71 Leszek Koltunski
import static org.distorted.magic.RubikRenderer.TEXTURE_SIZE;
29
30 27a70eae Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
31
32
public enum RubikObjectList
33
  {
34
  CUBE2 ( 2, R.drawable.button2 , RubikCube.class, RubikCubeMovement.class),
35
  CUBE3 ( 3, R.drawable.button3 , RubikCube.class, RubikCubeMovement.class),
36
  CUBE4 ( 4, R.drawable.button4 , RubikCube.class, RubikCubeMovement.class),
37
  CUBE5 ( 5, R.drawable.button5 , RubikCube.class, RubikCubeMovement.class),
38
  ;
39
40
  public static final int LENGTH = values().length;
41
  private final int mObjectSize, mIconID;
42
  final Class<? extends RubikObject> mObjectClass;
43
  final Class<? extends RubikObjectMovement> mObjectMovementClass;
44
  private static final RubikObjectList[] objects;
45
46
  static
47
    {
48
    int i = 0;
49
    objects = new RubikObjectList[LENGTH];
50
51
    for(RubikObjectList size: RubikObjectList.values())
52
      {
53
      objects[i] = size;
54
      i++;
55
      }
56
    }
57
58
///////////////////////////////////////////////////////////////////////////////////////////////////
59
60
  public static RubikObjectList getObject(int ordinal)
61
    {
62
    return objects[ordinal];
63
    }
64
65
///////////////////////////////////////////////////////////////////////////////////////////////////
66
67
  RubikObjectList(int size, int iconID, Class<? extends RubikObject > object, Class<? extends RubikObjectMovement> movement)
68
    {
69
    mObjectSize = size;
70
    mIconID     = iconID;
71
    mObjectClass= object;
72
    mObjectMovementClass = movement;
73
    }
74
75
///////////////////////////////////////////////////////////////////////////////////////////////////
76
77
  public int getIconID()
78
    {
79
    return mIconID;
80
    }
81
82
///////////////////////////////////////////////////////////////////////////////////////////////////
83 74686c71 Leszek Koltunski
// TODO - currently all objects in the list are RubikCubes of various sizes
84 27a70eae Leszek Koltunski
85 74686c71 Leszek Koltunski
  public RubikObject create(Static4D quatCur, Static4D quatAcc)
86 27a70eae Leszek Koltunski
    {
87 74686c71 Leszek Koltunski
    DistortedTexture texture = new DistortedTexture(TEXTURE_SIZE,TEXTURE_SIZE);
88
    DistortedEffects effects = new DistortedEffects();
89 b32444ee Leszek Koltunski
    MeshRectangles mesh      = new MeshRectangles(20,20);   // mesh of the node, not of the cubits
90 74686c71 Leszek Koltunski
91 27a70eae Leszek Koltunski
    return new RubikCube(mObjectSize, quatCur, quatAcc, texture, mesh, effects);
92
    }
93
94
///////////////////////////////////////////////////////////////////////////////////////////////////
95 74686c71 Leszek Koltunski
// TODO - currently all objects in the list are RubikCubes of various sizes
96 27a70eae Leszek Koltunski
97
  public RubikObjectMovement getObjectMovementClass()
98
    {
99
    return new RubikCubeMovement();
100
    }
101
  }