As always, just yell at me if I’m missing something, and this is handled in some way unknown to me.
It seems like you can only set tilesource tiles on a sprite by creating single frame animations, and sending the play_animation message to the sprite.
The fact that the sprite only sees animations, as opposed to frames is fine (and even elegant), but the fact that you can seemingly only change a sprite by referencing a hand created, design time, animation is a pain. There should be an option to do it the same way its handled on tilemaps, by number id. Im not sure how exactly that would be implemented (perhaps simply by having default, single frame animations for each tile always available, or created when needed), but at the end of the day I should be able to do something similar to this:
msg.post(sprite_url, "play_animation", {nr_id = 345})
without having to first create an animation named 345 (and one for the 344 preceding it).
It isnt hard to see why this is almost required when working with very large sprite sheets, in a procedural/programmatic way. Not all game design concepts are strictly design time concepts.
edit is there a way to procedurally add animations? That would at least handle most of the tedium (though I still think some kind of no-nonsense frame reference by number would be best)