Project

General

Profile

Wiki » History » Version 51

Distorted Admin, 03/07/2021 11:51 AM

1 2 Distorted Admin
h1. Overview
2 1 Distorted Admin
3 42 Leszek Koltunski
Magic Cube is an application which lets one play with various TwistyObjects. Currently implemented objects are listed below in the 'How to add a new Object' section. 
4
The app contains graphics effects provided by the "Distorted":https://distorted.org/redmine/projects/distorted-android/wiki/wiki library.
5 5 Distorted Admin
Users can submit their best times to a central High Scores list and download results made by others.
6 36 Distorted Admin
7 35 Distorted Admin
Additionally there's a near-perfect, instantenous 3x3x3 Cube Solver (Kociemba) and a about 2000 Pretty Patterns (more in the plans!).
8 5 Distorted Admin
9 2 Distorted Admin
Magic Cube is open source and released under the terms of the "GNU General Public License v2":http://www.gnu.org/licenses/old-licenses/gpl-2.0.html (GPL).
10 47 Leszek Koltunski
11
12 32 Distorted Admin
h1. Downloads
13
14 33 Distorted Admin
Google play     : https://play.google.com/store/apps/details?id=org.distorted.magic
15
Amazon App Store: https://www.amazon.co.uk/Developer-Magic-Cube/dp/B0875PSWTK
16 32 Distorted Admin
17 2 Distorted Admin
h1. Source code
18 1 Distorted Admin
19 2 Distorted Admin
<pre>
20 1 Distorted Admin
git clone http://distorted.org/git/distorted-library.git
21
git clone http://distorted.org/git/distorted-cube.git 
22 2 Distorted Admin
</pre>
23 3 Distorted Admin
24 43 Leszek Koltunski
h1. Screenshots
25
26 51 Distorted Admin
!CUBE3.png! !PYRA3.png! !DINO.png! !SKEWB.png! !HELI.png!
27 43 Leszek Koltunski
28 3 Distorted Admin
h1. Tutorials
29 13 Distorted Admin
30 30 Distorted Admin
31 34 Distorted Admin
h2. How to add a new Object
32 3 Distorted Admin
33 39 Leszek Koltunski
* Write a new class which extends "TwistyObject":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyObject.java (this one defines the Object itself)
34
* Write a new class which extends "Movement":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/Movement.java (this one defines the connection between finger swipes on the screen and Object rotations)
35 37 Leszek Koltunski
* add your new classes to the "ObjectList":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/ObjectList.java enum (here you will also need to provide a small icon to add to the "play" drop-down object list)
36 20 Distorted Admin
37
and your new Object will automatically become available in the "Play" drop-down list.
38 3 Distorted Admin
39 49 Leszek Koltunski
Currently implemented Objects: "Cube":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyCube.java , "Pyraminx":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyPyraminx.java , "6-color Dino":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyDino6.java , "4-color Dino":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyDino4.java , "Skewb and Master Skewb":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistySkewb.java , "Helicopter":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyHelicopter.java , "Diamond Skewb":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyDiamond.java , "Redi Cube":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyRedi.java , "Ivy Cube":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyIvy.java , "Rex Cube":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyRex.java , "Kilominx":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/objects/TwistyMinx.java 
40 48 Leszek Koltunski
 
41
 
42
43 3 Distorted Admin
44 30 Distorted Admin
45 3 Distorted Admin
h2. How to add a new Transition Effect
46
47 25 Distorted Admin
If you would like to add, say, a new WIN effect (i.e. animation which happens when the Object gets solved) all you need to do is add a new class which extends "org.distorted.effect.WinEffect":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/effects/win/WinEffect.java and add the new class to the "org.distorted.effect.WinEffect.Type":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/effects/win/WinEffect.java enum. 
48 15 Distorted Admin
49 16 Distorted Admin
The new effect will automatically become available in the "Effects dialog":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/dialogs/RubikDialogEffects.java.
50 17 Distorted Admin
51 30 Distorted Admin
52 17 Distorted Admin
h2. How to add a new Pretty Pattern
53
54 41 Leszek Koltunski
If you've got a collection of Pretty Patterns for a given (already implemented!) TwistyObject, say a Pyraminx 3x3x3, all you need to do to connect it to the Magic Cube is to create a table of Strings describing the patterns ( format needs to follow the one already done in "Cube Patterns":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/patterns/RubikPatternCube3.java ) and add the new pattern list to the "org.distorted.patterns.RubikPatternList":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/patterns/RubikPatternList.java enum.
55 17 Distorted Admin
56
The new list of Patterns will automatically become available in the "Patterns dialog":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/dialogs/RubikDialogPattern.java.
57 18 Distorted Admin
58 30 Distorted Admin
59 18 Distorted Admin
h2. How to add a new Solver
60 1 Distorted Admin
61 31 Distorted Admin
Work in the "org.distorted.solvers":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/show/src/main/java/org/distorted/solvers package. First create a subdirectory containing the code of your actual solver, then connect it to the rest of the program by modifying the "org.distorted.solvers.SolverMain":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/solvers/SolverMain.java class, and finally add the new solver to the "org.distorted.solvers.ImplementedSolversList":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/entry/src/main/java/org/distorted/solvers/ImplementedSolversList.java enum.
62 18 Distorted Admin
63 19 Distorted Admin
Currently implemented solvers: "a near-perfect, instantenous Cube3 solver":https://distorted.org/redmine/projects/magic-cube/repository/magiccube/revisions/master/show/src/main/java/org/distorted/solvers/cube3.