Though this syntax was developed many months ago, I had forgotten to document this.
This edge definition refers to the edges that exists in any GTile tile/sprite. This obviously means that edge definition is a Tiled property of the GTile, which is then passed on in C2 to generate MTile edges at runtime.
Note that a GTile refers to a graphics tile which is a bigger-sized tile. An MTile refers to a movement tile which is smaller and forms the grid of possible tiles to move to. Every GTile is subdivided into equal square MTiles.
Below is an image representing one GTile, and the MTile IDs within it:
For every GTile, there can exist any number of edges. Using this image as an example:
That sprite is mapped out as:
Here, we introduce the edge syntax used to define those edges.
Where mtile_id is the id of the MTile that needs an edge definition (because it is neighbouring a GTile edge), and gridmove_direction is the direction where the edge lies on that MTile specified in the GridMove format.
In the sprite above, the edge definition is:
That is, the MTile ID 1 and 5 have a edges at Direction 0 (east), IDs 8, 9, 10, and 11 have edge at Direction 3 (north). Note that it’s possible to have defined other MTiles, such as:
10:3, 11:3. It doesn’t matter, as long as the same edge is not specified twice.
Note that the edge definition is inputted in Tiled in its tilesheet editor. Currently, there are two Tile properties associated with edge:
edge was the original use, which subdivided each GTile into 2×2 MTiles.
edge4 subdivided it further (4×4) giving it a maximum of 16 MTiles per GTile (this depicted in the image above).
In the C2 project, only one type is used and can be interchanged or modified depending on final design choices.