                        - Game Blocks v0.2.2 Source Code -


OVERVIEW
--------

This is the collection of projects that feeds into the Game Blocks library.  Due to performance problems in the BYOB UI, the Cartoons and Physics blocks are packaged separately.  Users with slower computers may want to be cautious about using them due to a global slowdown of the UI.

When OOP is supported in Snap!, the library will be ported to that UI, which so far appears to resolve this problem.

Individual blocks have been developed in the context of specific example programs.  This works fine as long as the individual programs are imported in order, taking interdependencies into account.

As the library expands, blocks and example programs will likely need to be separated.


BUILDING THE LIBRARY
--------------------

To construct the library, first copy ArcadePhysics.ypr and Cartoons_dev.ypr to a "blocks" subdirectory, rename them to Physics_Blocks.ypr and Cartoon_Blocks.ypr, and then open the files and delete all or most of the code and sprites.  It's probably worth adding a "Delete Me" sprite to each of these.


Next, import the remaining YPR projects, except the ones in the Examples folder, into a blank BYOB project.  Delete all of the sprites except the one in ToolsMinimal.ypr that says Delete Me.

This is the list of projects to import.  Each of these contains custom blocks.  They can be imported in the order shown, the key being to import projects which depend on other projects *before* those other projects, to make sure that the latest version of those blocks appears in the toolkit.

     Dialogue.ypr           (no deps)
     Inventory_dev.ypr      (uses MouseDrag and MultiSprite)
     MouseDrag.ypr          (no deps)
     Movement.ypr           (no deps)
     MultiSprite.ypr        (no deps)
     ToolsMinimal.ypr       (no deps)

The projects in the Examples folder do not contain unique custom blocks.  They are merely sample programs.  In fact, some of the custom blocks used by these samples *may* be older than the versions of those blocks in the Gmae Blocks library, though an attempt is made every release to import updated blocks into the samples.

To update the samples, use Edit --> Unload Unused Blocks to remove extraneous and possibly old blocks, then import the relevant blocks from the dev projects.  Blocks with the same names & parameters will replace those already in the sample program, even in the case where a block is referenced from inside another block.

     Cartoons.ypr
     Dialogue_Cut_Scene.ypr
     Dialogue_Emotes.ypr
     Inventory.ypr
     Platformer.ypr
     Simulation.ypr

The full list of projects to include as sample projects in the "examples" folder is the following:

     ArcadePhysics.ypr
     Cartoons.ypr
     Dialogue_Cut_Scene.ypr
     Dialogue_Emotes.ypr
     Inventory.ypr
     MouseDrag.ypr
     Movement.ypr
     MultiSprite.ypr
     Platformer.ypr
     Simulation.ypr
