Overview
A Tileset acts as a single registry for accessing tiles by name across two or more NamedAtlases. All included NamedAtlases must have the same partition dimensions. As they are loaded, tiles will overwrite any existing tiles with the same name.
Types
TilesetAtlasInfo = object filename*: string ## path on disk of source image tiles*: seq[string] ## a list of tile names
- Used for deserializing a single Tileset Atlas from resource-packs
Tileset = ref object info*: TilesetInfo atlases*: seq[NamedAtlas]
TilesetManager = ref object atlases*: NamedAtlasManager registry*: Table[string, Tileset]
Procs
proc newTilesetManager(window: WindowPtr; display: RendererPtr): TilesetManager {. raises: [], tags: [].}
proc loadPack(tm: TilesetManager; filename: string) {.raises: [ValueError, IOError, Exception, JsonParsingError, IndexError, KeyError, NoSuchResourceError, InvalidResourceError], tags: [ReadIOEffect, RootEffect, ReadDirEffect].}
-
Load a resource-pack of Tilesets. Assets inside of a Tilesets resource-pack should be unmarshalable by the TilesetInfo type.
Example TilesetInfo JSON
"example_tileset": { "description": "A texture used as an example", "authors": ["foo", "bar"] "width": 32, "height": 32, "atlases": [ { "filename": "tilesets/terrain.png", "tiles": ["dirt", "stone", "water", "ice"] }, { "filename": "tilesets/plants.png", "tiles": ["bush", "grass", "tree", "cat-tail"] } }
proc get[](tm: TilesetManager; name): Tileset
proc render(display: RendererPtr; tileset: Tileset; name: string; dx, dy: int) {. raises: [DivByZeroError], tags: [].}