-
Notifications
You must be signed in to change notification settings - Fork 221
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
Allow components to perform cleanup (with access to the World) when they are removed #723
Comments
wha twhy does enter submit the issue |
I think the main barrier here is that typically other parts of the world can be borrowed mutably and immutably while removing components from a particular storage. |
I think the most effective way to do this is to have a zero-sized 'delete' marker component and a system that runs at the end of the tick to go through entities with this marker performing whatever operation you want to do with them and then deleting them. |
maaaayybbeeee? It feels extremely awkward and very not right but I guess it would technically work? |
@LoganDark This is the most correct way to do this within the ECS paradigm. Zero-sized marker components are extremely cheap (they're usually completely allocation-freeze). |
Description
Allow components one last access to the world when they are deleted. This could be done by either:
Drop
that gets the encompassing World (unlikely, probably really unsafe, stinks of globals)Cleanup
or something?Motivation
I have a component that represents ownership over some physics objects. When the entity holding that component is deleted, I want the physics objects to also be deleted. The problem is that inside
Drop
, I have no access to the physics world because it's a resource. :(Drawbacks
Drop
. That means only code that explicitly opts into this feature will be impactedUnresolved questions
None right now
The text was updated successfully, but these errors were encountered: