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
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
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.
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
Bugfixes for the shape of Megaminxes.
Introduce 'Simple' and 'Nice' meshes.
Better error reporting.
FIx some issues with ShapeChanging; implement per-object TouchControlSquare and TouchControlMirror.
Implement example ShapreChanging object control and convert the Mirror Cube to use it.
Make the ShapeChanging the default TouchControl during MODE_REPLACE.
Bugfixes for the ShapeChanging touch control.Still doesn't work but doesn't crash anymore :)
Float vertices - scratchbook
Abstract out the TouchControl stuff in preparation for its new type - TouchControlShapeChanging.
Move the Movement to its own package; abstract out some stuff.
Minor.
Correct the next bug with settign the object size.Multiply the time limits in BlockController by 2 - this way we can see if the ratio of (UI+Touch)/Thread Firebase non-fatals will observably drop below the current value of 4.
Make it possible to extract objects' sticker pngs.
Fix problems with TwistyObjectNode 'object scale' property.Now this property is not part of the Node at all, but its initial value passed to the object in its constructor.
Add 'shouldResetTextureMaps' to the JSON puzzle description.
Correct the way ObejctScale works in the TwistyObjectNode.
Move the main app to the 'J1M1' object creation mode, i.e. create them from the Json files and using the Dmesh fiels as well.
Make it possible for any app descending from the 'objectlib' to use any of the J0M0, J0M1, J1M0, J1M1 modes.
Remove ObjectType from a few moree places.
Make the meshAssociation of the Rotate effect independent of the global MAX_SIZE of any implemented object.Now only the NUM_OF_AXIS*MAX_NUM_OF_LAYERS of any individual object needs to be <=32 - before the second factor was global, which - because of the recent introduction of the Cube6 - screwed the Gigaminx (!) where NUM_OF_AXIS=6 and GLOBAL_MAX_NUM_LAYERS = 6 now, so 6*6>32 !
Remove dependancies on Firebase from objectlib.Report such errors to the application via the Interface.
JsonReader (?) finished: the creator app can now read objects from JSON files.
Do not pull the inventors and the names of objects from Resources.
Major change: separate the notion of a TwistyObject and its Node. Now,
1) the Node stays when we change objects (this makes transitions faster)2) it's possible to just create an Object without adding it to the Screen (now app needs to explicitly create the Node and add it to its Screen itself)
Separate the notions of a sticker shape and a sticker color.
simplify sticker/color map.
Progress with serializing object to JSON: cubits.Only faceColorMap remains now.
Progress with serializing object to JSON: shapes.
Progress with serializing object to JSON: stickers, quats.
Progress with serializing object to JSON: rotations.
Progress with serializing object to JSON: scrambling.
Reorg for writing the JSON
- remove the retarded NODE_RATIO from TwistyObject- more correctly estimate Cuboid's 'realSize' as an average of their 3 sizes.
First attempt at cuboids. 2x2x3 and 3x3x4 mostly working :)
make numLayers into an int[] (preparation for Cuboids)Caution: because of previous changes to cubit order in cube, the Solver is broken!
New API to objectlib to recreate an already displayed object (because the settings, like 'IconMode' might have changed) and using the new API in puzzle-creator.
New API for the IconMode: set scale of the object.
New 'IconMode' and some APIs to support it.
Improvements for the new Border effect. Now works, but covers the object - to be corrected.
Mesh creation: finished.