Project

General

Profile

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

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

1 b498f3f6 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2020 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6 f05e0259 Leszek Koltunski
// Magic Cube is proprietary software licensed under an EULA which you should have received      //
7
// along with the code. If not, check https://distorted.org/magic/License-Magic-Cube.html        //
8 b498f3f6 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
9
10
package org.distorted.patterns;
11
12 e4733ed7 Leszek Koltunski
import org.distorted.objectlib.main.ObjectSignatures;
13 b498f3f6 Leszek Koltunski
14
///////////////////////////////////////////////////////////////////////////////////////////////////
15
16
public enum RubikPatternList
17
  {
18 e4733ed7 Leszek Koltunski
  CUBE2 (ObjectSignatures.CUBE_2, PatternCube2.patterns),
19
  CUBE3 (ObjectSignatures.CUBE_3, PatternCube3.patterns),
20
  CUBE4 (ObjectSignatures.CUBE_4, PatternCube4.patterns),
21
  CUBE5 (ObjectSignatures.CUBE_5, PatternCube5.patterns),
22
  PYRA3 (ObjectSignatures.PYRA_3, PatternPyraminx3.patterns),
23
  PYRA4 (ObjectSignatures.PYRA_4, PatternPyraminx4.patterns),
24
  PYRA5 (ObjectSignatures.PYRA_5, PatternPyraminx5.patterns),
25
  MEGA3 (ObjectSignatures.MEGA_3, PatternMegaminx.patterns),
26
  MEGA5 (ObjectSignatures.MEGA_5, PatternGigaminx.patterns),
27 b498f3f6 Leszek Koltunski
  ;
28
29
  public static final int NUM_OBJECTS = values().length;
30 d433b50e Leszek Koltunski
  private final int mObject;
31 3c4495ac Leszek Koltunski
  private final String[][] mPatterns;
32 b498f3f6 Leszek Koltunski
33
  private static final RubikPatternList[] objects;
34
35
  static
36
    {
37
    objects = new RubikPatternList[NUM_OBJECTS];
38
    int i=0;
39
40
    for(RubikPatternList object: RubikPatternList.values())
41
      {
42
      objects[i++] = object;
43
      }
44
    }
45
46
///////////////////////////////////////////////////////////////////////////////////////////////////
47
48 d433b50e Leszek Koltunski
  RubikPatternList(int object, String[][] patterns)
49 b498f3f6 Leszek Koltunski
    {
50 d433b50e Leszek Koltunski
    mObject   = object;
51
    mPatterns = patterns;
52 b498f3f6 Leszek Koltunski
    }
53
54 d433b50e Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
55
// PUBLIC API
56 b498f3f6 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
57
58 d433b50e Leszek Koltunski
  public static String[][] getPatterns(int ordinal)
59 b498f3f6 Leszek Koltunski
    {
60 d433b50e Leszek Koltunski
    return ordinal>=0 && ordinal<NUM_OBJECTS ? objects[ordinal].mPatterns : null;
61 b498f3f6 Leszek Koltunski
    }
62
63
///////////////////////////////////////////////////////////////////////////////////////////////////
64
65 d433b50e Leszek Koltunski
  public static int getOrdinal(int objectOrdinal)
66 b498f3f6 Leszek Koltunski
    {
67
    for(int i=0; i<NUM_OBJECTS; i++)
68
      {
69 d433b50e Leszek Koltunski
      if( objects[i].mObject == objectOrdinal )
70 b498f3f6 Leszek Koltunski
        {
71
        return i;
72
        }
73
      }
74
75
    return -1;
76
    }
77
78
///////////////////////////////////////////////////////////////////////////////////////////////////
79
80 d433b50e Leszek Koltunski
  public static int getObject(int ordinal)
81 b498f3f6 Leszek Koltunski
    {
82
    return objects[ordinal].mObject;
83
    }
84
  }