Open geieredgar opened 1 year ago
Thanks for all the contributions yesterday! This is very interesting. Actually, this particular issue is one I've been thinking about a lot lately, so this couldn't have come at a better time. Defining custom Params
for the process_ldtk_levels
system is especially interesting to me. I'll have a closer look at this some time in the future, and I can't promise right now that this is the solution that I will adopt, but it has some interesting ideas that I hadn't considered before.
Hello, first I want to thank you for this useful crate. I am currently using it for a hobby project.
This is my suggestion for a possible solution to fix #47. It is implemented without breaking changes.
The first commit adds a new
SpawnHook
trait. It defines an associatedParam
type which allows accessing more from the world when executing theprocess_ldtk_levels
system. TheDefaultSpawnHook
type implementsSpawnHook
and does the spawning in the same way as before.The second commit adds a new
spawn
module that adds another implementation of theSpawnHook
trait, theRegistry
. The registry allows hooking up individual functions that implementSystemParamFunction
and using another trait calledSpawnFunction
that can be used with types that implementFrom<SpawnFunction::Input<'a>>
.I will add documentation and more examples if there is an interest in these additions.