Revision 47f42042
Added by Leszek Koltunski 8 months ago
| build.gradle | ||
|---|---|---|
| 35 | 35 |
buildConfig = true |
| 36 | 36 |
} |
| 37 | 37 |
namespace 'org.distorted.main' |
| 38 |
compileOptions {
|
|
| 39 |
sourceCompatibility JavaVersion.VERSION_11 |
|
| 40 |
targetCompatibility JavaVersion.VERSION_11 |
|
| 41 |
} |
|
| 38 | 42 |
} |
| 39 | 43 |
|
| 40 | 44 |
buildscript {
|
| src/main/java/org/distorted/dialogs/DialogSolvers.java | ||
|---|---|---|
| 86 | 86 |
|
| 87 | 87 |
SolverActivity sact = (SolverActivity) getContext(); |
| 88 | 88 |
int objectOrdinal = ListObjects.getObjectOrdinal(mArgument); |
| 89 |
int[] solverOrdinals = ImplementedVerifierList.getSolverOrdinals(objectOrdinal); |
|
| 89 |
ListObjects list = ListObjects.getObject(objectOrdinal); |
|
| 90 |
int[] solverOrdinals = ImplementedVerifierList.getSolverOrdinals(list); |
|
| 90 | 91 |
int len = solverOrdinals==null ? 0 : solverOrdinals.length; |
| 91 | 92 |
|
| 92 | 93 |
for(int o=0; o<len; o++ ) |
| src/main/java/org/distorted/objects/RubikObject.java | ||
|---|---|---|
| 81 | 81 |
int patternOrdinal = RubikPatternList.getOrdinal(mObjectIndex); |
| 82 | 82 |
mPatterns = RubikPatternList.getPatterns(patternOrdinal); |
| 83 | 83 |
|
| 84 |
int[] solverOrdinals= ImplementedVerifierList.getSolverOrdinals(mObjectOrdinal); |
|
| 84 |
ListObjects list = ListObjects.getObject(mObjectOrdinal); |
|
| 85 |
int[] solverOrdinals= ImplementedVerifierList.getSolverOrdinals(list); |
|
| 85 | 86 |
mNumSolvers = solverOrdinals==null ? 0 : solverOrdinals.length; |
| 86 | 87 |
mExtrasOrdinal = -1; |
| 87 | 88 |
|
| src/main/java/org/distorted/solvers/ScreenSetupPosition.java | ||
|---|---|---|
| 65 | 65 |
private int mNumBitmapRows; |
| 66 | 66 |
private float mBitmapSize; |
| 67 | 67 |
private WeakReference<SolverActivity> mWeakAct; |
| 68 |
private int mObjectOrdinal;
|
|
| 68 |
private ListObjects mObject;
|
|
| 69 | 69 |
private String[] mPhaseNames; |
| 70 | 70 |
private Timer mTimer; |
| 71 | 71 |
private SolverAbstract mSolver; |
| ... | ... | |
| 92 | 92 |
mSolving = false; |
| 93 | 93 |
mPhaseNames = null; |
| 94 | 94 |
|
| 95 |
mObjectOrdinal = act.getObjectOrdinal();
|
|
| 95 |
mObject = act.getObjectList();
|
|
| 96 | 96 |
control.solveOnly(); |
| 97 |
generateFaceColors(mObjectOrdinal);
|
|
| 97 |
generateFaceColors(mObject); |
|
| 98 | 98 |
|
| 99 | 99 |
mNumBitmapRows = mNumColors>8 ? 2 : 1; |
| 100 | 100 |
mBitmapSize = computeBitmapSize(width,heigh); |
| ... | ... | |
| 181 | 181 |
// This doesn't quite work in many cases, but in case of the solvers that will pop up in foreseeable |
| 182 | 182 |
// future it should be ok. |
| 183 | 183 |
|
| 184 |
public void generateFaceColors(int object)
|
|
| 184 |
public void generateFaceColors(ListObjects object)
|
|
| 185 | 185 |
{
|
| 186 | 186 |
mColorMode = MODE_NORMAL; |
| 187 | 187 |
|
| 188 |
if( object==PYRA_3.ordinal() ||
|
|
| 189 |
object==PYRA_4.ordinal() ||
|
|
| 190 |
object==PYRA_5.ordinal() ||
|
|
| 191 |
object==PDUO_2.ordinal() ||
|
|
| 192 |
object==JING_2.ordinal() ||
|
|
| 193 |
object==MORP_2.ordinal() ||
|
|
| 194 |
object==MORP_3.ordinal() ||
|
|
| 195 |
object==MORP_4.ordinal() )
|
|
| 188 |
if( object==PYRA_3 || |
|
| 189 |
object==PYRA_4 || |
|
| 190 |
object==PYRA_5 || |
|
| 191 |
object==PDUO_2 || |
|
| 192 |
object==JING_2 || |
|
| 193 |
object==MORP_2 || |
|
| 194 |
object==MORP_3 || |
|
| 195 |
object==MORP_4 ) |
|
| 196 | 196 |
{
|
| 197 | 197 |
mNumColors = ShapeTetrahedron.NUM_FACES; |
| 198 | 198 |
mFaceColors = ShapeTetrahedron.FACE_COLORS; |
| 199 | 199 |
} |
| 200 |
else if( object==DIAM_2.ordinal() ||
|
|
| 201 |
object==DIAM_3.ordinal() ||
|
|
| 202 |
object==DIAM_4.ordinal() ||
|
|
| 203 |
object==TRAJ_3.ordinal() ||
|
|
| 204 |
object==TRAJ_4.ordinal() ||
|
|
| 205 |
object==PDIA_3.ordinal() )
|
|
| 200 |
else if( object==DIAM_2 || |
|
| 201 |
object==DIAM_3 || |
|
| 202 |
object==DIAM_4 || |
|
| 203 |
object==TRAJ_3 || |
|
| 204 |
object==TRAJ_4 || |
|
| 205 |
object==PDIA_3 ) |
|
| 206 | 206 |
{
|
| 207 | 207 |
mNumColors = ShapeOctahedron.NUM_FACES; |
| 208 | 208 |
mFaceColors = ShapeOctahedron.FACE_COLORS; |
| 209 | 209 |
} |
| 210 |
else if( object==CRYS_3.ordinal() ||
|
|
| 211 |
object==STAR_3.ordinal() ||
|
|
| 212 |
object==PENT_2.ordinal() ||
|
|
| 213 |
object==KILO_3.ordinal() ||
|
|
| 214 |
object==KILO_5.ordinal() ||
|
|
| 215 |
object==MEGA_3.ordinal() ||
|
|
| 216 |
object==MEGA_5.ordinal() )
|
|
| 210 |
else if( object==CRYS_3 || |
|
| 211 |
object==STAR_3 || |
|
| 212 |
object==PENT_2 || |
|
| 213 |
object==KILO_3 || |
|
| 214 |
object==KILO_5 || |
|
| 215 |
object==MEGA_3 || |
|
| 216 |
object==MEGA_5 ) |
|
| 217 | 217 |
{
|
| 218 | 218 |
mNumColors = ShapeDodecahedron.NUM_FACES; |
| 219 | 219 |
mFaceColors = ShapeDodecahedron.FACE_COLORS; |
| 220 | 220 |
} |
| 221 |
else if( object==BALL_4.ordinal() )
|
|
| 221 |
else if( object==BALL_4 ) |
|
| 222 | 222 |
{
|
| 223 | 223 |
mNumColors = ShapeDiamond.NUM_FACES; |
| 224 | 224 |
mFaceColors = ShapeDiamond.FACE_COLORS; |
| 225 | 225 |
} |
| 226 |
else if( object==ICOS_2.ordinal() )
|
|
| 226 |
else if( object==ICOS_2 ) |
|
| 227 | 227 |
{
|
| 228 | 228 |
mNumColors = ShapeIcosahedron.NUM_FACES; |
| 229 | 229 |
mFaceColors = ShapeIcosahedron.FACE_COLORS; |
| 230 | 230 |
} |
| 231 |
else if( object==DIN4_3.ordinal() )
|
|
| 231 |
else if( object==DIN4_3 ) |
|
| 232 | 232 |
{
|
| 233 | 233 |
mNumColors = 4; |
| 234 | 234 |
mFaceColors = new int[] { ShapeColors.COLOR_YELLOW, ShapeColors.COLOR_RED, ShapeColors.COLOR_BLUE, ShapeColors.COLOR_WHITE};
|
| ... | ... | |
| 292 | 292 |
|
| 293 | 293 |
private void pressSolve(SolverActivity act) |
| 294 | 294 |
{
|
| 295 |
int[] solverOrdinals = ImplementedVerifierList.getSolverOrdinals(mObjectOrdinal);
|
|
| 295 |
int[] solverOrdinals = ImplementedVerifierList.getSolverOrdinals(mObject); |
|
| 296 | 296 |
|
| 297 | 297 |
if( solverOrdinals!=null ) |
| 298 | 298 |
{
|
| ... | ... | |
| 314 | 314 |
} |
| 315 | 315 |
else // more than one solver - pop up a choosing dialog |
| 316 | 316 |
{
|
| 317 |
ListObjects objList = ListObjects.getObject(mObjectOrdinal); |
|
| 318 |
String upperName = objList.name(); |
|
| 317 |
String upperName = mObject.name(); |
|
| 319 | 318 |
Bundle bundle = new Bundle(); |
| 320 | 319 |
bundle.putString("argument", upperName );
|
| 321 | 320 |
DialogSolvers dialog = new DialogSolvers(); |
| ... | ... | |
| 327 | 326 |
} |
| 328 | 327 |
else displayErrorDialog(act.getString(R.string.solver_generic_not_implemented)); |
| 329 | 328 |
} |
| 330 |
else displayErrorDialog("No solvers found for object "+mObjectOrdinal);
|
|
| 329 |
else displayErrorDialog("No solvers found for object "+mObject.name() );
|
|
| 331 | 330 |
} |
| 332 | 331 |
|
| 333 | 332 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/solvers/SolverActivity.java | ||
|---|---|---|
| 26 | 26 |
import org.distorted.objectlib.main.InitAssets; |
| 27 | 27 |
import org.distorted.objectlib.main.ObjectControl; |
| 28 | 28 |
import org.distorted.objectlib.main.TwistyObject; |
| 29 |
import org.distorted.objectlib.metadata.ListObjects; |
|
| 29 | 30 |
import org.distorted.objectlib.solvers.verifiers.SolverAbstract; |
| 30 | 31 |
import org.distorted.objects.RubikObject; |
| 31 | 32 |
import org.distorted.objects.RubikObjectList; |
| ... | ... | |
| 226 | 227 |
|
| 227 | 228 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 228 | 229 |
|
| 229 |
public int getObjectOrdinal()
|
|
| 230 |
public ListObjects getObjectList()
|
|
| 230 | 231 |
{
|
| 231 |
return mObjectOrdinal;
|
|
| 232 |
return ListObjects.getObject(mObjectOrdinal);
|
|
| 232 | 233 |
} |
| 233 | 234 |
|
| 234 | 235 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/solvers/SolverObjectLibInterface.java | ||
|---|---|---|
| 16 | 16 |
import org.distorted.objectlib.helpers.BlockController; |
| 17 | 17 |
import org.distorted.objectlib.helpers.ObjectLibInterface; |
| 18 | 18 |
import org.distorted.objectlib.main.ObjectControl; |
| 19 |
import org.distorted.objectlib.metadata.ListObjects; |
|
| 19 | 20 |
import org.distorted.objects.RubikObject; |
| 20 | 21 |
import org.distorted.objects.RubikObjectList; |
| 21 | 22 |
import org.distorted.objectlib.solvers.verifiers.ImplementedVerifierList; |
| ... | ... | |
| 172 | 173 |
SolverActivity act = mAct.get(); |
| 173 | 174 |
ScreenSetupPosition solver = (ScreenSetupPosition) ScreenList.SVER.getScreenClass(); |
| 174 | 175 |
int color = solver.getCurrentColor(); |
| 175 |
int currObject = act.getObjectOrdinal();
|
|
| 176 |
ListObjects currObject = act.getObjectList();
|
|
| 176 | 177 |
mLastCubitColor = ImplementedVerifierList.cubitIsLocked(currObject,cubit); |
| 177 | 178 |
mLastCubit = cubit; |
| 178 | 179 |
mLastCubitFace = face; |
Also available in: Unified diff
Reconfigure for Java 11
Beginnings of real support for moving objects around in ListObjects