Lineguide.lua

This library adds all the Line Guides from SMW to SMBX, with full support for layer movement/showing/hiding. It also allows the user to attach any NPC to a Line Guide like in Super Mario Maker.

Requires the Colliders library.

=Installation=


 * 1) Download the API here
 * 2) Drop lineguide.lua in either your level's custom graphics folder for use in a level, along with a lunadll.lua file, or in the same directory as your .wld file along with a lunaworld.lua file for use throughout an entire episode.
 * 3) Move the "lineguide gfx" folder to any location of your choice. It contains:
 * 4) All the needed custom graphics, set to overwrite the BGOs with the default IDs used in this API.
 * 5) txt files to change the grid size for the line BGOs to 16x16 in PGE
 * 6) A tileset file for PGE.

=Use=

To use this API in a level:
 * 1) Copy the files from the "lineguide gfx" folder into your level's folder. Be sure to change the names of the images so there are no conflicts. (If you are using GIFs for CGFX in your level, make sure the new graphics don't have the same name as any existing. Your OS won't report this if this is the case.) Make note of any ID changes made to the line BGOs.
 * 2) Place this at the top of the level's lunadll.lua file:
 * 3) Set the line ID variables to match the IDs of any line BGOs you needed to rename to prevent a conflict.
 * 4) Start using better Line Guides in SMBX!

=Variables=

These are variables the user can access and set. They are all part of the lineguide namespace, so you must put "lineguide." before each.

Line BGO IDs
These variables contain the IDs of the BGOs that are being used as Line Guides. Since these values are loaded in initialization, setting them anywhere other than in the top of your Luna.lua file will have no effect. DO NOT use vanilla SMBX Line Guides anywhere in a level where this API is used, as they will interfere with this API's functionality, not to mention that they will behave very strangely. Any BGO can be used, provided it has the right dimensions (You can use bgofix.lua to change the dimensions of any BGO!) and it is not a vanilla Line Guide.

Properties
These variables contain the properties of the NPCs which control their behavior relating to this API. They are accessed using the format "properties[ID].PROPERTY."

For example, to access the "lineSpeed" property of the SMB3 Goomba, you would use:

=Notes/Issues=
 * When placing Line Guides in a level, the grid should be 16x16. The background-* txts provided in the graphics download will give these BGOs a 16x16 grid in the PGE editor.
 * Vanilla Line Guides will not work with this API. They interfere with platform movement, and they behave strangely when this API is loaded. It is best to avoid using them altogether in a level that uses this API.