Project

General

Profile

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

magiccube / src / main / java / org / distorted / patterns / RubikPatternList.java @ 8ab435b9

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.patterns;
21

    
22
import org.distorted.objectlib.main.ObjectType;
23

    
24
///////////////////////////////////////////////////////////////////////////////////////////////////
25

    
26
public enum RubikPatternList
27
  {
28
  CUBE2 (ObjectType.CUBE_2, PatternCube2.patterns),
29
  CUBE3 (ObjectType.CUBE_3, PatternCube3.patterns),
30
  CUBE4 (ObjectType.CUBE_4, PatternCube4.patterns),
31
  CUBE5 (ObjectType.CUBE_5, PatternCube5.patterns),
32
  PYRA3 (ObjectType.PYRA_3, PatternPyraminx3.patterns),
33
  PYRA4 (ObjectType.PYRA_4, PatternPyraminx4.patterns),
34
  PYRA5 (ObjectType.PYRA_5, PatternPyraminx5.patterns),
35
  MEGA3 (ObjectType.MEGA_3, PatternMegaminx.patterns),
36
  MEGA5 (ObjectType.MEGA_5, PatternGigaminx.patterns),
37
  ;
38

    
39
  public static final int NUM_OBJECTS = values().length;
40
  private final ObjectType mObject;
41
  private final String[][] mPatterns;
42

    
43
  private static final RubikPatternList[] objects;
44

    
45
  static
46
    {
47
    objects = new RubikPatternList[NUM_OBJECTS];
48
    int i=0;
49

    
50
    for(RubikPatternList object: RubikPatternList.values())
51
      {
52
      objects[i++] = object;
53
      }
54
    }
55

    
56
///////////////////////////////////////////////////////////////////////////////////////////////////
57

    
58
  static String[][] getPatterns(int ordinal)
59
    {
60
    return objects[ordinal].mPatterns;
61
    }
62

    
63
///////////////////////////////////////////////////////////////////////////////////////////////////
64

    
65
  RubikPatternList(ObjectType object, String[][] patterns)
66
    {
67
    mObject   = object;
68
    mPatterns = patterns;
69
    }
70

    
71
///////////////////////////////////////////////////////////////////////////////////////////////////
72
// PUBLIC API
73
///////////////////////////////////////////////////////////////////////////////////////////////////
74

    
75
  public static int getOrdinal(ObjectType object)
76
    {
77
    for(int i=0; i<NUM_OBJECTS; i++)
78
      {
79
      if( objects[i].mObject == object )
80
        {
81
        return i;
82
        }
83
      }
84

    
85
    return -1;
86
    }
87

    
88
///////////////////////////////////////////////////////////////////////////////////////////////////
89

    
90
  public static ObjectType getObject(int ordinal)
91
    {
92
    return objects[ordinal].mObject;
93
    }
94
  }
(11-11/11)