Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spawn hook #156

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Spawn hook #156

wants to merge 2 commits into from

Conversation

geieredgar
Copy link
Contributor

@geieredgar geieredgar commented Jan 27, 2023

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 associated Param type which allows accessing more from the world when executing the process_ldtk_levels system. The DefaultSpawnHook type implements SpawnHook and does the spawning in the same way as before.

The second commit adds a new spawn module that adds another implementation of the SpawnHook trait, the Registry. The registry allows hooking up individual functions that implement SystemParamFunction and using another trait called SpawnFunction that can be used with types that implement From<SpawnFunction::Input<'a>>.

I will add documentation and more examples if there is an interest in these additions.

@geieredgar geieredgar marked this pull request as ready for review January 27, 2023 04:13
@Trouv
Copy link
Owner

Trouv commented Jan 28, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

System-based LdtkEntity and LdtkIntCell
2 participants