Convert Snap*!* projects to Scratch by MIT.
desnapifier depends on Kurt by blob8108.
Install desnapifier with
pip2 install desnapifier
(as root on Unix-like systems), or, download and run python2 setup.py install
.
python2 -m desnapifier infile.xml outfile.sb2
For example:
python2 -m desnapifier test.xml test.sb2
This will convert the Snap*!* project test.xml
and output it to test.sb2
To add a block, simply add a new entry in blocks.py
.
An entry looks like the following:
"snapSelector": [ "scratchOpcode", argCount, makeBlockFn ],
snapSelector
is the identifier Snap*!* uses to identify the block.
scratchOpcode
is the opcode of the Scratch block, or None if there is no Scratch equivilant.
makeBlockFn
is a function that should return a kurt.Block
, or None
. Use this only if there is no direct Scratch equivilant to the block. It accepts one argument, the Snap*!* block XML element.
For example:
"doSayFor": [ "say:duration:elapsed:from:", 2, None ],
Find a full list of Scratch block opcodes at https://github.com/LLK/scratch-flash/blob/master/src/Specs.as.
Find a full list of Snap*!* selectors at https://github.com/jmoenig/Snap--Build-Your-Own-Blocks/blob/master/objects.js#L160.
desnapifier is currently only able to convert very simple Snap*!* projects.
See test.xml
for an example.
See TODO.md for a list of (most of?) what needs to be done.
desnapifier is Copyright © 2016 Jeandre Kruger.
desnapifier is Free Software licensed under the GNU General Public License version, either version 3 of the license, or (at your option) any later version.