Introduce InitAssets. We'll use this later to pass on references to the tablebase file to the TwistyObject (so that it can use this for perfect scrambling)
Constants for scrambling types.
Progress with PDuo solver
- fix for the newly introduced TwistyObjectSolved- fix for the solvedQuats of the Trajber 4x4
separate the 'isSolved' part from TwistyObject
Bugfixes for touch control - specifically for furious swiping and concurrect backing of moves.
Some more debugging.
Withdraw the last change.
Make it impossible to addNewRotation() (i.e. the automatic rotations triggered from backMove, scrambleEffect etc) or beginNewRotation() (by swiping a finger) when we are currently finishing a previous rotation and haven't removed it yet.
Minor.
Make it possible to (fully!) read version 6 JSONs - some users might have Pyraminx Duo v. 6 already downloaded!
Fix a bug with level buttons in objects with less than 9 numScramble.
Correct scramble tables for Starminx, P. Crystal, Kilominx, Megaminx, Master Kilominx & Gigaminx.
Produce new JSONs files (version 7, with new scrambling method)
Move scrambling to a new model where there are spearete scrambling 'algorithms' and 'edges' of the scrambling graph.Now each edge can contain a whole algorithm, i.e. a sequence of moves leading from state to state, which permits construction of scrambling for more complicated bandaged objects such as the AI cube....
Fix touch-replacing colors of the stickers. Now correctly takes into account the shape of the sticker.
small improvement for the TwistyObject.
More debugging for the mysterious case of corrupted rotation quat (?)
Additional debugging for one weird crash.
Major change in JSOn file format:
replace the old (corners,centers) system with a list of VertexEffects which are applied to each cubit variant.
Very important bugfix for an issue which probably has been the reason for many mysterious behaviours in the past: the JsonReader class cannot be a singleton! Convert it into a normal 'instanced' class.With it being a singleton there's a major issue: when we create a new TwistyObject from a JSON file (by, for example, going to PurchaseActivity) and then we come back to the old object (by, for example, going back to the main RubikActivity) - then the JsonReader inside the old object has read the new JSON file and thus many of the 'abstract' methods in the old TwistyObject (for example getShortName()) all of the sudden start returning new values!
Progress with Masterball TouchControl.
Progress with Masterball - the whole object gets drawn more or less correctly now.Remaining: issue with Sink effect not fully inflating the ball and TouchControl.
Beginnings of support for TouchControl of Icosehedral and Ball-shaped objects.
Take pillowing into account when doing TouchControlShapemod.
Corrections for Megamorphix.
More support for pillowing; pillow Morphix and Jing by default.
Introduce support for per-object pillowing.
IAP part 6: new 'Present' object effect.
main: license.
Make the fastScramble incremental.
Do not crash when something's wrong with the JSON file - handle this gracefully, do not change the object then, and report this to Firebase.
Do not react on end of scramblng in FreePlay!
Mark the 'Free Play' with green or red dot.
Bugfix
Improve remembering cubit quats - correctly handle the case where there is more than one cubit with the same center.
More debugs for the case of impossible records.
Sticker overrides finished. Add crazy planets JSONs and icons (correction)
Sticker overrides finished. Add crazy planets JSONs and icons.
Progress with sticker overrides.
Beginnings of support for 'sticker overrides' - possibility to override the color of an individual face of an individual cubit. Ultimately this will enable overriding with any bitmap; so far only a solid color.
Also, fixes for two crashers.
Decider&Follower cubits: fix solving the whole puzzle.
Progress with Circle 2x2.
First attempt at a Circle 2x2 - but this is implemented wrong. The smallInner pieces next to the FLD corner should never move relative to the corner.
Crazy Planets: J1 M1 mode works now.
Crazy Planets: now can be created in J1 M0 mode. J1 M1 still doesn't work.
Crazy Planets: introduce cubit type and offset to the JSON; create (shared) mesh and all the JSONs.
Crazy Planets: minor
Crazy Planets: progress
Introduce InitData, a data structure used to initialize a TwistyObject.Current (optional) members: int[] numLayers, int param [intended: type of the Crazy 3x3 planet], float[][] pos [position of a bandaged cube] )
Big step towards the Mixup Cube.
Improve scrambling locally-produced bandaged cuboid.
Introduce ObjectSignature that can incorporate 192-bit signatures (for 5x5x5 bandaged cubes).ObjectScrambler does not fully work yet.
Actually remove preferences of a deleted bandaged cube in a safe way.
Improvements.
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
Simplify the way we remember cubit quats, and delete those from SharedPrefs when we delete a bandaged object.
Bandaged 3x3: remember object state and move history.
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.
Mode the 'iconMode' from static variable in ObjectControl to member varaible in TwistyObject (safer)
Special isSolved() function for the case where a puzzle has no corner or edge cubits (Trajber 4x4!)
Pyraminx Crystal: beginnings.
Preparation for local creation of puzzles: remove the 'ObjectType' enum from TwistyObject class.
New, generalized ScrambleState generator that should work for any bandaged 3x3.
Progress with Axis Cube - model the first 2 cubits.
Simplify coloring internal stickers
Make it possible to color internal walls as well.
Bugfix for a rare (?) crash.
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.
Implement new TouchControlShapemod
Implement the Windmill Cube
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