progress with configurable stickers
More support for configuring the stickers.
Next step toward separating TwistyObject metadata.
Support for shape-shifting cuboids. (except for the flat ones like the Super Floppy)
progress with Ghost rotations.
separate a new class out of TwistyObject: TwistyLayerRotations
clean up TwistyObject's API
remove 'MESH_NICE'
Seriously lower memory usage.
fix a longstanding memory leak: somehow the reference to BlockController held in ObjectPreRender prevents the PreRender (and thus the TwistyObject held inside along with its Bitmap) from getting garbage collected.Actually I am not sure why.
Improvement
Move the SharedPreferences to the OSInterface
remove all references to android.Context and android.Activity from distorted-objectlib
Make it possible to actually play at the MAX level the objects which have too many rostations for a normal SCRAMBLE effect (and instead do a FAST_SCRAMBLE)
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)
New button in the solver screen: reset all textures.
Bugfixes for touch control - specifically for furious swiping and concurrect backing of moves.
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.
Unblock PreRender's scrambling & solving oonly AFTER we change screen to READ post-scrambling (otherwise it was possible to press the 'solve' button in the brief period between unblocking and switching screen because switching screen runs on the background UI thread)
still return the right value in case of slow and fast scrambling.
Don't do slow scramblng if numScrambles>=50 - do a fast scramble instead.
Some improvements to blocking, mostly to the names of variables.
Finally fix the 'impossible records' bug!
Thanks for a bug report from Jacob Powell - if one, during scrambling, minimized the app and re-entered it, the UI lock got removed (by a call to 'unblockEverything' from RubikActivity's onResume) and one could then keep solving the object mid-scramble....
small improvement for the TwistyObject.
Move the control of object scaling out the objectlib.Thee xact way the object is scaled needs to be decided in the app, as only the app knows that e.g. in the Rubik main screen, if it is a square, then obejct needs to be a bit smaller than in case of Config screen (if that one happens to be a square)
Make it possible to decide about FastScramble duration fromo outside the ObjectControl.
Progress with Masterball TouchControl.
IAP part 6: new 'Present' object effect (cont'd)
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.
- move the 'object' popup to the botton right- move the 'solve' button to the upper left- movee the 'scramble' button to the upper right (its new FastScrambleEffect still not implemented fully)
Mark the 'Free Play' with green or red dot.
More debugs for the case of impossible records.
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.
Finally fix the bad bug where people could submit impossible records!
Fix for a crasher.
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) ]
Mode the 'iconMode' from static variable in ObjectControl to member varaible in TwistyObject (safer)
Minor.
Add debugging for the case when people submit suspicious records.
Convert Ulti, Jing, Pyra, Diamond, Dinos, Redi, Skewbs, Ivy & Rex to the new scheme where the quaternion group is computed automatically.
Clenups.
Fix setDefaultRotation() when changing an object; do it at exactly the right time when the 'old' object has already disappeared, but the new hasn't been attached to the Nodee yet.
Introduce 'Simple' and 'Nice' meshes.
Better error reporting.
Make the ShapeChanging the default TouchControl during MODE_REPLACE.
Set the initial object size correctly.
Small things.
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.
Bugfix & debugging for a crash from Firebase.
Bugfixes for crashes from Firebase.
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 dependancies on Firebase from objectlib.Report such errors to the application via the Interface.
Progress with PuzzleTester app.
JsonReader (?) finished: the creator app can now read objects from JSON files.
new API to make is possible to adjust default scale factor in each TwistyObjectNode.(and use it in Tutorials, where the object needs to be smaller)
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)
- remove the retarded NODE_RATIO from TwistyObject- more correctly estimate Cuboid's 'realSize' as an average of their 3 sizes.
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.
Relax objectlib's requirements: it can be displayed not only on top of a DistortedScreen, but any DistortedFramebuffer.
off-center objects: finished.
progress with off-center objects.
1) introduce possibility to move objects, i.e. display them not in the middle of the screen (not fully functional yet)2) do away with unneeded any more interface 'EffectController' - since ObjectPreRender is the only implementation now.
Remove the 'setupObject()' redundant API.
Remove the concept of a 'TwistyActivity' altogether.
Bugfix: we shouldn't be calling TwsityObject.solve() directly from the app, only through ObjectControl.solveOnly().
Simplifications
Move RubikControl to objectlib (as 'ObjectAutomator')Hide ObjectPreRender inside objectlib and move its APi to ObjectControl.
Move PreRender to objectlib.This code is now shared betweeen the Rubik and Tutorial activities.