Tiles are a per-item thing and are referenced in the JSON file for that tileset as {“id”:“item_name”}, and not on a per symbol or symbol-color pairing. Multi-tile objects (beds, among others) will need to have a few different tiles available to make up a sample of configurations. Most important are: tile by itself with no neighboring tiles, a corner piece, and an edge piece. Others may be need as other configurations become apparent.
I haven’t finalized all of the syntax, but should have it done by tonight to give a raw template for all of the hardcoded items. Items reference a specific tile in the tileset with a background and foreground value, so multiple items can share the same tile.
Once things get closer to being finalized I will be trying to cache some of the referenced tile data in a rolling array so that as little static data as possible needs to be recomputed each frame. If a static location (terrains, furniture, traps, fields) is touched by a dynamic item (monster, npc, pc, item) moving then it will recompute as necessary. If there are framerate issues stemming from my implementation, I am guessing it will be on the orientation computations and data fetching end and can be optimized from there.
Lots of stuff left to do to get things finalized though, so I best get back to work.
@phaethon: I will open up that link and take a look at it later tonight when I get done for the day. If it looks good I’ll probably draw up implementation plans to get it merged into the tilesets system.