Bugfix
Preparation for Mixup Cube: take advantage of the recent bump in MAJOR_VERSION number and change the format of basicAngles to int[][] 'per-axis-per-layer' [ Mixup Cube has different basicAngle in its middle layers (8) - and different in its edge layers (4) ]
BandagedCreator: colorful cube.
Progress with cubit quaternions.
FactorySticker: further improvements.
preparation for dual animation on/off modes in BandagedPlay
New Pentultimate puzzle.
Simplify the way we remember cubit quats, and delete those from SharedPrefs when we delete a bandaged object.
minor
Starminx I: icon
Starminx I: progress
Starminx I: beginnings
Bandaged 3x3: remember object state and move history.
Make Container built-in.
Bugfix: if a puzzle has overridden 'getCubitFaceMap()' method (like for example Container, in order to make internal walls colorful) then before this might have screwed up computation of the solvedGroups. Correct that.
Bump version to 1.10.0Add Trajber 4x4, Mirror 4x4, Axis, Fisher, Pyramorphix to the list of built-in objects.
Mode the 'iconMode' from static variable in ObjectControl to member varaible in TwistyObject (safer)
Trajber's 4x4 : JSONs, mesh.
Special isSolved() function for the case where a puzzle has no corner or edge cubits (Trajber 4x4!)
Trajber's 4x4 : almost finished, what remains is the 'solved' function.
Beginnings of support for Trajber's 4x4.
Recreate Pyraminx Crystal mesh
Add Vietnamese Tutorials - json files
Pyraminx Crystal: puzzle works.
Pyraminx Crystal: beginnings.
(hopefully!) finally fix the long-standing bug where people could cheat and submit impossible records.
New, generic bandaged 3x3 class 'TwistyBandagedAbstract'.
Now, (almost!) any bandaged 3x3 can be created by extending this class and implementing one abstract method 'getPositions()'. Almost, because there's still one restriction: currently all cubits need to be one of the 5 allowed types: 1x1x1, 2x1x1, 3x1x1, 2x2x1, 2x2x2....
Preparation for local creation of puzzles: remove the 'ObjectType' enum from TwistyObject class.
up the number of scrambles of the BAN2 and BAN4 objects to respectively 20 and 22.
New, generalized ScrambleState generator that should work for any bandaged 3x3.
Minor.
Void Cube: switch it off.
Void Cube: create assets. Puzzle finished.
Void Cube: beginning.
Axis Cube: finish implementation
Progress with Axis Cube - model the first 2 cubits.
Beginnings of Axis Cube.
solve the 'wasDownloadableButNowIsBuiltIn()' bug in 1.9.6 and 1.9.7.
new API to enable/disable face culling
Simplify coloring internal stickers
Make it possible to color internal walls as well.
Bugfix for a rare (?) crash.
Introduce possibility not to export some already implemented objects to the app.
Downloaded Objects: subtle bugfix. We cannot use ObjectType in ObjectControl to check if two objects are the same because DownloadedObjects have ObjectType null !
Downloaded Objects more or less work now.
Re-organize tutorial list so that we can pull this one from JSON files.
Step towards tutorial JSON files.
Configurable internal colors. This somehow screwed up the Container!
Finish the Container.
Container Cube: mostly done.
Add Pyramorphix.
Add Fisher Cube.
Add 4x4 Mirror Blocks.
Add debugging for the case when people submit suspicious records.
change order of KILO_5 and MEGA_3.
Implement new TouchControlShapemod
Change the order
Implement the Windmill Cube
Remove 3 out of 4 object icons.
unify every isSolved() routine except one: part II : new JSONs.
unify every isSolved() routine except one - the Dino4 is still special.
Preparation for further unification of the isSolved() routine.
fix the non-standard isSolved() functions to reflect the changes in order of the quaternions in the group.
Standarize two next functions - getSolvedQuats and getSolvedFunctionIndex.Now all objects except Dino6, Dino4 and Square-2 have them the same.
Convert Minx'es.
Convert Ulti, Jing, Pyra, Diamond, Dinos, Redi, Skewbs, Ivy & Rex to the new scheme where the quaternion group is computed automatically.
Clenups.
Simplification.
Remove the need to provide the number of outer faces of a ObjectShape.
Make the bitmaps ARGB_4444 - i.e. twice smaller than before.
Finally remove the 'getCubitFaceColor()' API
Add the getFaceAxis() API and fill up the getDist3D() API.
Beginning to automatically calculate cubitFaceColors.
cleaning up.
Remove the 'getNumCubitFaces()' object API: correction.
Remove the 'getNumCubitFaces()' object API (forgotten part)
Remove the 'getNumCubitFaces()' object API.
Progress towards removing the 'getNumCubitFaces()' object API.
Simplify.
Split ObjectShape into ObjectShape and ObjectFaceShape
Finally move the 'getVariantFaceColor()' method to the base class.
Progress standarising stickering.Looks like all four object creation modes - J0M0, J0M1, J1M0 and J1M1 are supported now.
Progress standarising stickering.
Progress standarising stickering - adjust sticker radii based on cos of the angle at the sticker vertex.
Progress
Trajber's Octahedron: add object to the system.
Trajber's Octahedron: first try.
Bugfixes for the shape of Megaminxes.