Project

General

Profile

Download (3.34 KB) Statistics
| Branch: | Revision:

distorted-objectlib / src / main / java / org / distorted / objectlib / patterns / RubikPatternList.java @ 33ba467a

1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2020 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6
// 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
///////////////////////////////////////////////////////////////////////////////////////////////////
9

    
10
package org.distorted.objectlib.patterns;
11

    
12
///////////////////////////////////////////////////////////////////////////////////////////////////
13

    
14
import org.distorted.objectlib.metadata.MetadataCUBE_2;
15
import org.distorted.objectlib.metadata.MetadataCUBE_3;
16
import org.distorted.objectlib.metadata.MetadataCUBE_4;
17
import org.distorted.objectlib.metadata.MetadataCUBE_5;
18
import org.distorted.objectlib.metadata.MetadataMEGA_3;
19
import org.distorted.objectlib.metadata.MetadataMEGA_5;
20
import org.distorted.objectlib.metadata.MetadataPYRA_3;
21
import org.distorted.objectlib.metadata.MetadataPYRA_4;
22
import org.distorted.objectlib.metadata.MetadataPYRA_5;
23

    
24
public enum RubikPatternList
25
  {
26
  CUBE2 (MetadataCUBE_2.INDEX, PatternCube2.patterns),
27
  CUBE3 (MetadataCUBE_3.INDEX, PatternCube3.patterns),
28
  CUBE4 (MetadataCUBE_4.INDEX, PatternCube4.patterns),
29
  CUBE5 (MetadataCUBE_5.INDEX, PatternCube5.patterns),
30
  PYRA3 (MetadataPYRA_3.INDEX, PatternPyraminx3.patterns),
31
  PYRA4 (MetadataPYRA_4.INDEX, PatternPyraminx4.patterns),
32
  PYRA5 (MetadataPYRA_5.INDEX, PatternPyraminx5.patterns),
33
  MEGA3 (MetadataMEGA_3.INDEX, PatternMegaminx.patterns),
34
  MEGA5 (MetadataMEGA_5.INDEX, PatternGigaminx.patterns),
35
  ;
36

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

    
41
  private static final RubikPatternList[] objects;
42

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

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

    
54
///////////////////////////////////////////////////////////////////////////////////////////////////
55

    
56
  RubikPatternList(int object, String[][] patterns)
57
    {
58
    mObject   = object;
59
    mPatterns = patterns;
60
    }
61

    
62
///////////////////////////////////////////////////////////////////////////////////////////////////
63
// PUBLIC API
64
///////////////////////////////////////////////////////////////////////////////////////////////////
65

    
66
  public static String[][] getPatterns(int ordinal)
67
    {
68
    return ordinal>=0 && ordinal<NUM_OBJECTS ? objects[ordinal].mPatterns : null;
69
    }
70

    
71
///////////////////////////////////////////////////////////////////////////////////////////////////
72

    
73
  public static int getOrdinal(int objectOrdinal)
74
    {
75
    for(int i=0; i<NUM_OBJECTS; i++)
76
      if( objects[i].mObject == objectOrdinal ) return i;
77

    
78
    return -1;
79
    }
80

    
81
///////////////////////////////////////////////////////////////////////////////////////////////////
82

    
83
  public static int getObject(int ordinal)
84
    {
85
    return objects[ordinal].mObject;
86
    }
87
  }
(11-11/11)