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.
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.
Fix for a crasher.
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.
calls to FastScramble and SlowScramble might fail (preRender is blocked). Return false then and if so, do not do anything in the app.
Remove the 'switchTouchControl' optimization which, with many different objects in the solver screen now, does not work any more.
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....
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.
Fix for the issue that a resized object wasn't TouchControlled correctly in the Solver screen.(mObjectRatio was set to incorrect instance of the TouchControl class)
Always prepare() TouchControlShapeChanging when we enter the Solver. Otherwise it could sometimes be prepared with some different object and would crash in touching the screen.
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!
Masterball: icon, mesh, jsons.
IAP part 6: new 'Present' object effect (cont'd)
IAP part 6: new 'Present' object effect.
main: license.
- 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)
Bugfixes; MODE_NOTHING
Generalize the max number of moving parts and max size of quat group.
one more crash fix and a bump to 1.10.3
Bandaged: add support for two-fingered rotation in the Creator.
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)
(hopefully!) finally fix the long-standing bug where people could cheat and submit impossible records.
Downloaded Objects: subtle bugfix. We cannot use ObjectType in ObjectControl to check if two objects are the same because DownloadedObjects have ObjectType null !
Implement new TouchControlShapemod
Convert Ulti, Jing, Pyra, Diamond, Dinos, Redi, Skewbs, Ivy & Rex to the new scheme where the quaternion group is computed automatically.
Fix a crasher.
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.
Make the ShapeChanging the default TouchControl during MODE_REPLACE.
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.
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.
Set the initial object size correctly.
Small things.
Fix the solver (after rearranging the faces of the cuboids)
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.
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 ObjectType from a few moree places.
Progress with PuzzleTester app.
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)
simplify sticker/color map.
- 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.
New API for the IconMode: set scale of the object.
New 'IconMode' and some APIs to support it.
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.
Further simplifications.
Remove the concept of a 'TwistyActivity' altogether.
Hide most of the TwistyActivity methods inside objectlib.
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.
1. Remove 'db level' from objectlib (this belongs to the app!)2. change ScreenPlay's 'mObject' to be an ObjectType.
Move ObjectControl, the next big chunk of code, to objectlib.