1 |
538ee7a6
|
Leszek Koltunski
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
2 |
|
|
// Copyright 2021 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.objects;
|
21 |
|
|
|
22 |
|
|
import android.content.res.Resources;
|
23 |
|
|
|
24 |
eaf87d1d
|
Leszek Koltunski
|
import org.distorted.helpers.BandagedState;
|
25 |
538ee7a6
|
Leszek Koltunski
|
import org.distorted.library.main.DistortedEffects;
|
26 |
|
|
import org.distorted.library.main.DistortedTexture;
|
27 |
|
|
import org.distorted.library.mesh.MeshSquare;
|
28 |
|
|
import org.distorted.library.type.Static4D;
|
29 |
|
|
import org.distorted.main.R;
|
30 |
|
|
|
31 |
eff371f4
|
Leszek Koltunski
|
import java.util.Random;
|
32 |
|
|
|
33 |
538ee7a6
|
Leszek Koltunski
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
34 |
|
|
|
35 |
|
|
class TwistyBandagedEvil extends TwistyBandagedAbstract
|
36 |
|
|
{
|
37 |
c0254421
|
Leszek Koltunski
|
private int mCurrState;
|
38 |
|
|
private boolean mUseX;
|
39 |
|
|
private boolean mUseY;
|
40 |
|
|
private boolean mUseZ;
|
41 |
|
|
|
42 |
|
|
// The list of all 'significant' states of the Evil Cube, just like in the 3Plate Cube class.
|
43 |
|
|
// This time the list got computed automatically - by the BandagedStateGraph.computeGraph().
|
44 |
|
|
|
45 |
|
|
private final BandagedState[] mStates = new BandagedState[]
|
46 |
|
|
{
|
47 |
|
|
new BandagedState( new int[] {2, 1, 1,2,-1, 2} , new int[] {2, 2,142,2,-1, 28} , new int[] {0, 1,114} ),
|
48 |
|
|
new BandagedState( new int[] {2, 2, 2} , new int[] {2,-1,143} , null ),
|
49 |
|
|
new BandagedState( new int[] {2, 2, 1} , null , new int[] {0, 1, 3,0, 2, 47} ),
|
50 |
|
|
new BandagedState( new int[] {2, 1, 4} , new int[] {2, 1,132,2,-1,131} , new int[] {0, 1, 47,0,-1, 2} ),
|
51 |
|
|
new BandagedState( new int[] {2,-1, 3} , new int[] {2, 1, 5,2,-1, 6} , null ),
|
52 |
|
|
new BandagedState( null , new int[] {2, 2, 6,2,-1, 4} , new int[] {0, 1, 51} ),
|
53 |
|
|
new BandagedState( null , new int[] {2, 1, 4,2, 2, 5} , new int[] {2, 2, 7,2,-1, 80} ),
|
54 |
|
|
new BandagedState( new int[] {2, 2, 8} , null , new int[] {2, 1, 80,2, 2, 6} ),
|
55 |
|
|
new BandagedState( new int[] {2, 2, 7} , null , new int[] {0,-1, 9} ),
|
56 |
|
|
new BandagedState( new int[] {2, 1, 10,2, 2, 11,2,-1, 12}, null , new int[] {0, 1, 8} ),
|
57 |
|
|
new BandagedState( new int[] {2, 1, 11,2, 2, 12,2,-1, 9}, null , new int[] {0,-1,118} ),
|
58 |
|
|
new BandagedState( new int[] {2, 1, 12,2, 2, 9,2,-1, 10}, null , new int[] {2, 1, 77} ),
|
59 |
|
|
new BandagedState( new int[] {2, 1, 9,2, 2, 10,2,-1, 11}, null , new int[] {2, 1, 13,2, 2,143} ),
|
60 |
|
|
new BandagedState( new int[] {2, 1, 14,2, 2, 15,2,-1, 16}, new int[] {2, 1, 57,2,-1, 58} , new int[] {2, 1,143,2,-1, 12} ),
|
61 |
|
|
new BandagedState( new int[] {2, 1, 15,2, 2, 16,2,-1, 13}, null , new int[] {2, 1, 41} ),
|
62 |
|
|
new BandagedState( new int[] {2, 1, 16,2, 2, 13,2,-1, 14}, null , new int[] {0, 1, 82} ),
|
63 |
|
|
new BandagedState( new int[] {2, 1, 13,2, 2, 14,2,-1, 15}, new int[] {2, 1, 17,2,-1, 18} , new int[] {0, 1,111,0,-1,115} ),
|
64 |
|
|
new BandagedState( null , new int[] {2, 2, 18,2,-1, 16} , new int[] {0,-1,139} ),
|
65 |
|
|
new BandagedState( new int[] {2, 1, 19,2,-1, 20} , new int[] {2, 1, 16,2, 2, 17} , new int[] {2, 1,142} ),
|
66 |
|
|
new BandagedState( new int[] {2, 2, 20,2,-1, 18} , null , new int[] {2, 1, 39,2, 2,140} ),
|
67 |
|
|
new BandagedState( new int[] {2, 1, 18,2, 2, 19} , new int[] {2, 1, 21} , null ),
|
68 |
|
|
new BandagedState( null , new int[] {2,-1, 20} , new int[] {0,-1, 22} ),
|
69 |
|
|
new BandagedState( new int[] {2, 2, 23,2,-1, 24} , null , new int[] {0, 1, 21} ),
|
70 |
|
|
new BandagedState( new int[] {2, 1, 24,2, 2, 22} , null , new int[] {2, 1, 92} ),
|
71 |
|
|
new BandagedState( new int[] {2, 1, 22,2,-1, 23} , null , new int[] {0, 1, 25} ),
|
72 |
|
|
new BandagedState( new int[] {2, 1, 26,2, 2, 27} , null , new int[] {0,-1, 24} ),
|
73 |
|
|
new BandagedState( new int[] {2, 1, 27,2,-1, 25} , new int[] {2, 1, 74} , null ),
|
74 |
|
|
new BandagedState( new int[] {2, 2, 25,2,-1, 26} , null , new int[] {2, 1, 28,2, 2,124} ),
|
75 |
|
|
new BandagedState( new int[] {2, 1, 29,2, 2, 30,2,-1, 31}, new int[] {2,-1,142} , new int[] {2, 1,124,2,-1, 27} ),
|
76 |
|
|
new BandagedState( new int[] {2, 1, 30,2, 2, 31,2,-1, 28}, null , new int[] {2, 1,141} ),
|
77 |
|
|
new BandagedState( new int[] {2, 1, 31,2, 2, 28,2,-1, 29}, null , new int[] {0, 1,130} ),
|
78 |
|
|
new BandagedState( new int[] {2, 1, 28,2, 2, 29,2,-1, 30}, new int[] {2, 1, 32,2,-1, 33} , new int[] {0, 1, 89,0,-1, 90} ),
|
79 |
|
|
new BandagedState( null , new int[] {2, 2, 33,2,-1, 31} , new int[] {0,-1,137} ),
|
80 |
|
|
new BandagedState( new int[] {2, 1, 34} , new int[] {2, 1, 31,2, 2, 32} , null ),
|
81 |
|
|
new BandagedState( new int[] {2,-1, 33} , null , new int[] {2, 1, 35} ),
|
82 |
|
|
new BandagedState( null , new int[] {2,-1, 36} , new int[] {2,-1, 34} ),
|
83 |
|
|
new BandagedState( null , new int[] {2, 1, 35} , new int[] {2,-1, 37} ),
|
84 |
|
|
new BandagedState( null , new int[] {2, 1, 38,2, 2, 93} , new int[] {2, 1, 36} ),
|
85 |
|
|
new BandagedState( new int[] {2, 1, 39} , new int[] {2, 1, 93,2,-1, 37} , null ),
|
86 |
|
|
new BandagedState( new int[] {2,-1, 38} , new int[] {2, 1, 40,2,-1, 64} , new int[] {2, 1,140,2,-1, 19} ),
|
87 |
|
|
new BandagedState( new int[] {2, 1, 41,2,-1, 42} , new int[] {2, 2, 64,2,-1, 39} , null ),
|
88 |
|
|
new BandagedState( new int[] {2, 2, 42,2,-1, 40} , null , new int[] {2,-1, 14} ),
|
89 |
|
|
new BandagedState( new int[] {2, 1, 40,2, 2, 41} , null , new int[] {0, 1, 43,0, 2,128} ),
|
90 |
|
|
new BandagedState( new int[] {2, 1, 44,2,-1, 45} , new int[] {2, 1,114,2, 2,113,2,-1, 86}, new int[] {0, 1,128,0,-1, 42} ),
|
91 |
|
|
new BandagedState( new int[] {2, 2, 45,2,-1, 43} , new int[] {2, 1, 48,2,-1,108} , new int[] {2,-1, 81} ),
|
92 |
|
|
new BandagedState( new int[] {2, 1, 43,2, 2, 44} , null , new int[] {0, 1, 46} ),
|
93 |
|
|
new BandagedState( null , new int[] {2, 1, 47} , new int[] {0,-1, 45} ),
|
94 |
|
|
new BandagedState( null , new int[] {2,-1, 46} , new int[] {0, 2, 2,0,-1, 3} ),
|
95 |
|
|
new BandagedState( new int[] {2,-1, 49} , new int[] {2, 2,108,2,-1, 44} , null ),
|
96 |
|
|
new BandagedState( new int[] {2, 1, 48} , null , new int[] {0, 1, 50} ),
|
97 |
|
|
new BandagedState( null , new int[] {2, 1, 51,2, 2, 52} , new int[] {0,-1, 49} ),
|
98 |
|
|
new BandagedState( null , new int[] {2, 1, 52,2,-1, 50} , new int[] {0,-1, 5} ),
|
99 |
|
|
new BandagedState( null , new int[] {2, 2, 50,2,-1, 51} , new int[] {2,-1, 53} ),
|
100 |
|
|
new BandagedState( null , new int[] {2, 1, 54,2, 2, 55} , new int[] {2, 1, 52} ),
|
101 |
|
|
new BandagedState( null , new int[] {2, 1, 55,2,-1, 53} , new int[] {0,-1,104} ),
|
102 |
|
|
new BandagedState( null , new int[] {2, 2, 53,2,-1, 54} , new int[] {0, 2, 56,0,-1, 65} ),
|
103 |
|
|
new BandagedState( new int[] {2, 1, 57} , null , new int[] {0, 1, 65,0, 2, 55} ),
|
104 |
|
|
new BandagedState( new int[] {2,-1, 56} , new int[] {2, 2, 58,2,-1, 13} , null ),
|
105 |
|
|
new BandagedState( null , new int[] {2, 1, 13,2, 2, 57} , new int[] {2,-1, 59} ),
|
106 |
|
|
new BandagedState( new int[] {2, 1, 60} , null , new int[] {2, 1, 58} ),
|
107 |
|
|
new BandagedState( new int[] {2,-1, 59} , null , new int[] {2, 1, 61} ),
|
108 |
|
|
new BandagedState( new int[] {2,-1, 62} , null , new int[] {2,-1, 60} ),
|
109 |
|
|
new BandagedState( new int[] {2, 1, 61} , new int[] {2,-1, 63} , null ),
|
110 |
|
|
new BandagedState( null , new int[] {2, 1, 62} , new int[] {2, 1, 64} ),
|
111 |
|
|
new BandagedState( null , new int[] {2, 1, 39,2, 2, 40} , new int[] {2,-1, 63} ),
|
112 |
|
|
new BandagedState( new int[] {2, 1, 66,2,-1, 67} , new int[] {2, 1, 78,2, 2, 79,2,-1, 80}, new int[] {0, 1, 55,0,-1, 56} ),
|
113 |
|
|
new BandagedState( new int[] {2, 2, 67,2,-1, 65} , new int[] {2,-1,107} , null ),
|
114 |
|
|
new BandagedState( new int[] {2, 1, 65,2, 2, 66} , null , new int[] {0, 1, 68} ),
|
115 |
|
|
new BandagedState( null , new int[] {2, 1, 69} , new int[] {0,-1, 67} ),
|
116 |
|
|
new BandagedState( null , new int[] {2,-1, 68} , new int[] {0,-1, 70} ),
|
117 |
|
|
new BandagedState( null , new int[] {2,-1, 71} , new int[] {0, 1, 69} ),
|
118 |
|
|
new BandagedState( new int[] {2,-1, 72} , new int[] {2, 1, 70} , null ),
|
119 |
|
|
new BandagedState( new int[] {2, 1, 71} , null , new int[] {0,-1, 73} ),
|
120 |
|
|
new BandagedState( new int[] {2, 1, 74,2, 2, 75} , null , new int[] {0, 1, 72} ),
|
121 |
|
|
new BandagedState( new int[] {2, 1, 75,2,-1, 73} , new int[] {2,-1, 26} , new int[] {0, 1, 83,0,-1,138} ),
|
122 |
|
|
new BandagedState( new int[] {2, 2, 73,2,-1, 74} , new int[] {2, 1, 76,2,-1, 77} , null ),
|
123 |
|
|
new BandagedState( null , new int[] {2, 2, 77,2,-1, 75} , new int[] {0, 1, 78} ),
|
124 |
|
|
new BandagedState( null , new int[] {2, 1, 75,2, 2, 76} , new int[] {2,-1, 11} ),
|
125 |
|
|
new BandagedState( null , new int[] {2, 1, 79,2, 2, 80,2,-1, 65}, new int[] {0,-1, 76} ),
|
126 |
|
|
new BandagedState( null , new int[] {2, 1, 80,2, 2, 65,2,-1, 78}, new int[] {2,-1,110} ),
|
127 |
|
|
new BandagedState( new int[] {2, 1, 81,2,-1, 82} , new int[] {2, 1, 65,2, 2, 78,2,-1, 79}, new int[] {2, 1, 6,2,-1, 7} ),
|
128 |
|
|
new BandagedState( new int[] {2, 2, 82,2,-1, 80} , null , new int[] {2, 1, 44} ),
|
129 |
|
|
new BandagedState( new int[] {2, 1, 80,2, 2, 81} , new int[] {2, 1, 83,2,-1, 84} , new int[] {0,-1, 15} ),
|
130 |
|
|
new BandagedState( null , new int[] {2, 2, 84,2,-1, 82} , new int[] {0, 2,138,0,-1, 74} ),
|
131 |
|
|
new BandagedState( new int[] {2, 1, 85} , new int[] {2, 1, 82,2, 2, 83} , null ),
|
132 |
|
|
new BandagedState( new int[] {2,-1, 84} , null , new int[] {2, 1, 86,2, 2,119} ),
|
133 |
|
|
new BandagedState( new int[] {2, 1, 87,2,-1, 88} , new int[] {2, 1, 43,2, 2,114,2,-1,113}, new int[] {2, 1,119,2,-1, 85} ),
|
134 |
|
|
new BandagedState( new int[] {2, 2, 88,2,-1, 86} , null , new int[] {2, 1, 94} ),
|
135 |
|
|
new BandagedState( new int[] {2, 1, 86,2, 2, 87} , new int[] {2, 1, 89} , null ),
|
136 |
|
|
new BandagedState( null , new int[] {2,-1, 88} , new int[] {0, 2, 90,0,-1, 31} ),
|
137 |
|
|
new BandagedState( new int[] {2, 1, 91,2, 2, 92} , null , new int[] {0, 1, 31,0, 2, 89} ),
|
138 |
|
|
new BandagedState( new int[] {2, 1, 92,2,-1, 90} , null , new int[] {0, 1, 93} ),
|
139 |
|
|
new BandagedState( new int[] {2, 2, 90,2,-1, 91} , null , new int[] {2,-1, 23} ),
|
140 |
|
|
new BandagedState( null , new int[] {2, 2, 37,2,-1, 38} , new int[] {0,-1, 91} ),
|
141 |
|
|
new BandagedState( null , new int[] {2,-1, 95} , new int[] {2,-1, 87} ),
|
142 |
|
|
new BandagedState( null , new int[] {2, 1, 94} , new int[] {2,-1, 96} ),
|
143 |
|
|
new BandagedState( null , new int[] {2, 1, 97} , new int[] {2, 1, 95} ),
|
144 |
|
|
new BandagedState( new int[] {2, 1, 98} , new int[] {2,-1, 96} , null ),
|
145 |
|
|
new BandagedState( new int[] {2,-1, 97} , null , new int[] {2,-1, 99} ),
|
146 |
|
|
new BandagedState( new int[] {2, 2,100,2,-1,101} , null , new int[] {2, 1, 98} ),
|
147 |
|
|
new BandagedState( new int[] {2, 1,101,2, 2, 99} , new int[] {2, 1,111,2,-1,112} , null ),
|
148 |
|
|
new BandagedState( new int[] {2, 1, 99,2,-1,100} , new int[] {2, 1,102} , new int[] {2, 1,108,2,-1,109} ),
|
149 |
|
|
new BandagedState( new int[] {2, 1,103,2,-1,104} , new int[] {2,-1,101} , null ),
|
150 |
|
|
new BandagedState( new int[] {2, 2,104,2,-1,102} , null , new int[] {2,-1,105} ),
|
151 |
|
|
new BandagedState( new int[] {2, 1,102,2, 2,103} , null , new int[] {0, 1, 54} ),
|
152 |
|
|
new BandagedState( new int[] {2,-1,106} , null , new int[] {2, 1,103} ),
|
153 |
|
|
new BandagedState( new int[] {2, 1,105} , null , new int[] {2, 1,107} ),
|
154 |
|
|
new BandagedState( null , new int[] {2, 1, 66} , new int[] {2,-1,106} ),
|
155 |
|
|
new BandagedState( null , new int[] {2, 1, 44,2, 2, 48} , new int[] {2, 2,109,2,-1,101} ),
|
156 |
|
|
new BandagedState( new int[] {2,-1,110} , null , new int[] {2, 1,101,2, 2,108} ),
|
157 |
|
|
new BandagedState( new int[] {2, 1,109} , null , new int[] {2, 1, 79} ),
|
158 |
|
|
new BandagedState( null , new int[] {2, 2,112,2,-1,100} , new int[] {0, 2,115,0,-1, 16} ),
|
159 |
|
|
new BandagedState( null , new int[] {2, 1,100,2, 2,111} , new int[] {2, 1,113} ),
|
160 |
|
|
new BandagedState( null , new int[] {2, 1, 86,2, 2, 43,2,-1,114}, new int[] {2,-1,112} ),
|
161 |
|
|
new BandagedState( null , new int[] {2, 1,113,2, 2, 86,2,-1, 43}, null ),
|
162 |
|
|
new BandagedState( new int[] {2, 2,116} , null , new int[] {0, 1, 16,0, 2,111} ),
|
163 |
|
|
new BandagedState( new int[] {2, 2,115} , null , new int[] {2,-1,117} ),
|
164 |
|
|
new BandagedState( new int[] {2, 1,118} , null , new int[] {2, 1,116} ),
|
165 |
|
|
new BandagedState( new int[] {2,-1,117} , null , new int[] {0, 1, 10} ),
|
166 |
|
|
new BandagedState( null , new int[] {2, 1,120,2, 2,121,2,-1,122}, new int[] {2, 2, 85,2,-1, 86} ),
|
167 |
|
|
new BandagedState( null , new int[] {2, 1,121,2, 2,122,2,-1,119}, new int[] {2,-1,129} ),
|
168 |
|
|
new BandagedState( null , new int[] {2, 1,122,2, 2,119,2,-1,120}, new int[] {0, 1,125} ),
|
169 |
|
|
new BandagedState( null , new int[] {2, 1,119,2, 2,120,2,-1,121}, new int[] {0,-1,123} ),
|
170 |
|
|
new BandagedState( null , new int[] {2, 2,124} , new int[] {0, 1,122} ),
|
171 |
|
|
new BandagedState( null , new int[] {2, 2,123} , new int[] {2, 2, 27,2,-1, 28} ),
|
172 |
|
|
new BandagedState( null , new int[] {2, 1,126} , new int[] {0,-1,121} ),
|
173 |
|
|
new BandagedState( null , new int[] {2,-1,125} , new int[] {2,-1,127} ),
|
174 |
|
|
new BandagedState( null , new int[] {2, 2,128} , new int[] {2, 1,126} ),
|
175 |
|
|
new BandagedState( null , new int[] {2, 2,127} , new int[] {0, 2, 42,0,-1, 43} ),
|
176 |
|
|
new BandagedState( new int[] {2, 2,130,2,-1,131} , null , new int[] {2, 1,120} ),
|
177 |
|
|
new BandagedState( new int[] {2, 1,131,2, 2,129} , null , new int[] {0,-1, 30} ),
|
178 |
|
|
new BandagedState( new int[] {2, 1,129,2,-1,130} , new int[] {2, 1, 3,2, 2,132} , null ),
|
179 |
|
|
new BandagedState( null , new int[] {2, 2,131,2,-1, 3} , new int[] {0,-1,133} ),
|
180 |
|
|
new BandagedState( null , new int[] {2,-1,134} , new int[] {0, 1,132} ),
|
181 |
|
|
new BandagedState( new int[] {2,-1,135} , new int[] {2, 1,133} , null ),
|
182 |
|
|
new BandagedState( new int[] {2, 1,134} , null , new int[] {0,-1,136} ),
|
183 |
|
|
new BandagedState( new int[] {2, 1,137} , null , new int[] {0, 1,135} ),
|
184 |
|
|
new BandagedState( new int[] {2,-1,136} , null , new int[] {0, 1, 32} ),
|
185 |
|
|
new BandagedState( new int[] {2, 1,139} , null , new int[] {0, 1, 74,0, 2, 83} ),
|
186 |
|
|
new BandagedState( new int[] {2,-1,138} , null , new int[] {0, 1, 17} ),
|
187 |
|
|
new BandagedState( null , new int[] {2, 1,141} , new int[] {2, 2, 19,2,-1, 39} ),
|
188 |
|
|
new BandagedState( null , new int[] {2,-1,140} , new int[] {2,-1, 29} ),
|
189 |
|
|
new BandagedState( null , new int[] {2, 1, 28} , new int[] {2,-1, 18} ),
|
190 |
|
|
new BandagedState( null , new int[] {2, 1, 1} , new int[] {2, 2, 12,2,-1, 13} )
|
191 |
|
|
};
|
192 |
|
|
|
193 |
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
194 |
|
|
|
195 |
68ce0d53
|
Leszek Koltunski
|
private static final float[][] POSITIONS = new float[][]
|
196 |
538ee7a6
|
Leszek Koltunski
|
{
|
197 |
68ce0d53
|
Leszek Koltunski
|
{ 1.0f, 1.0f, -1.0f},
|
198 |
|
|
{-1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f},
|
199 |
|
|
{-1.0f, 1.0f, -1.0f, 0.0f, 1.0f, -1.0f},
|
200 |
|
|
{-1.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f},
|
201 |
|
|
{-1.0f, -1.0f, -1.0f, 0.0f, -1.0f, -1.0f},
|
202 |
|
|
{-1.0f, 1.0f, 0.0f, -1.0f, 1.0f, 1.0f},
|
203 |
|
|
{ 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f},
|
204 |
|
|
{ 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f},
|
205 |
|
|
{-1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 1.0f},
|
206 |
|
|
{ 0.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f},
|
207 |
|
|
{ 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
|
208 |
|
|
{ 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f},
|
209 |
|
|
{ 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, -1.0f}
|
210 |
|
|
};
|
211 |
|
|
|
212 |
|
|
private static final int[] QUAT_INDICES = new int[]
|
213 |
|
|
{ 0, 1, 0, 0, 0, 2, 2, 2, 3, 3, 3, 3, 3 };
|
214 |
538ee7a6
|
Leszek Koltunski
|
|
215 |
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
216 |
|
|
|
217 |
68ce0d53
|
Leszek Koltunski
|
TwistyBandagedEvil(int size, Static4D quat, DistortedTexture texture, MeshSquare mesh,
|
218 |
|
|
DistortedEffects effects, int[][] moves, Resources res, int scrWidth)
|
219 |
538ee7a6
|
Leszek Koltunski
|
{
|
220 |
68ce0d53
|
Leszek Koltunski
|
super(size, quat, texture, mesh, effects, moves, ObjectList.BAN4, res, scrWidth);
|
221 |
538ee7a6
|
Leszek Koltunski
|
}
|
222 |
|
|
|
223 |
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
224 |
|
|
|
225 |
68ce0d53
|
Leszek Koltunski
|
float[][] getPositions()
|
226 |
538ee7a6
|
Leszek Koltunski
|
{
|
227 |
68ce0d53
|
Leszek Koltunski
|
return POSITIONS;
|
228 |
538ee7a6
|
Leszek Koltunski
|
}
|
229 |
|
|
|
230 |
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
231 |
|
|
|
232 |
68ce0d53
|
Leszek Koltunski
|
int[] getQuatIndices()
|
233 |
538ee7a6
|
Leszek Koltunski
|
{
|
234 |
68ce0d53
|
Leszek Koltunski
|
return QUAT_INDICES;
|
235 |
538ee7a6
|
Leszek Koltunski
|
}
|
236 |
|
|
|
237 |
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
238 |
|
|
// PUBLIC API
|
239 |
eff371f4
|
Leszek Koltunski
|
|
240 |
5043d5d0
|
Leszek Koltunski
|
public void randomizeNewScramble(int[][] scramble, Random rnd, int num)
|
241 |
bbc6471c
|
Leszek Koltunski
|
{
|
242 |
5043d5d0
|
Leszek Koltunski
|
if( num==0 )
|
243 |
eff371f4
|
Leszek Koltunski
|
{
|
244 |
c0254421
|
Leszek Koltunski
|
mCurrState = 0;
|
245 |
|
|
mUseX = true;
|
246 |
|
|
mUseY = true;
|
247 |
|
|
mUseZ = true;
|
248 |
eff371f4
|
Leszek Koltunski
|
}
|
249 |
|
|
|
250 |
c0254421
|
Leszek Koltunski
|
int total = mStates[mCurrState].getTotal(mUseX,mUseY,mUseZ);
|
251 |
|
|
int random= rnd.nextInt(total);
|
252 |
|
|
int[] info= mStates[mCurrState].getInfo(random,mUseX,mUseY,mUseZ);
|
253 |
eff371f4
|
Leszek Koltunski
|
|
254 |
c0254421
|
Leszek Koltunski
|
scramble[num][0] = info[0];
|
255 |
|
|
scramble[num][1] = info[1];
|
256 |
|
|
scramble[num][2] = info[2];
|
257 |
eff371f4
|
Leszek Koltunski
|
|
258 |
c0254421
|
Leszek Koltunski
|
mCurrState = info[3];
|
259 |
|
|
|
260 |
|
|
switch(info[0])
|
261 |
5043d5d0
|
Leszek Koltunski
|
{
|
262 |
c0254421
|
Leszek Koltunski
|
case 0: mUseX = false; mUseY = true ; mUseZ = true ; break;
|
263 |
|
|
case 1: mUseX = true ; mUseY = false; mUseZ = true ; break;
|
264 |
|
|
case 2: mUseX = true ; mUseY = true ; mUseZ = false; break;
|
265 |
5043d5d0
|
Leszek Koltunski
|
}
|
266 |
eff371f4
|
Leszek Koltunski
|
}
|
267 |
|
|
|
268 |
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
269 |
538ee7a6
|
Leszek Koltunski
|
|
270 |
|
|
public int getObjectName(int numLayers)
|
271 |
|
|
{
|
272 |
|
|
return R.string.bandaged_evil;
|
273 |
|
|
}
|
274 |
|
|
|
275 |
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
276 |
|
|
|
277 |
|
|
public int getInventor(int numLayers)
|
278 |
|
|
{
|
279 |
|
|
return R.string.bandaged_evil_inventor;
|
280 |
|
|
}
|
281 |
|
|
|
282 |
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
283 |
|
|
|
284 |
|
|
public int getComplexity(int numLayers)
|
285 |
|
|
{
|
286 |
|
|
return 8;
|
287 |
|
|
}
|
288 |
|
|
}
|