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

Allow registering boxed systems #10378

Merged
merged 1 commit into from
Nov 8, 2023

Conversation

aevyrie
Copy link
Member

@aevyrie aevyrie commented Nov 5, 2023

Objective

  • Allow registration of one-shot systems when those systems have already been Boxed.
  • Needed for bevy_eventlisteners which allows adding event listeners with callbacks in normal systems. The current one shot system implementation requires systems be registered from an exclusive system, and that those systems be passed in as types that implement IntoSystem. However, the eventlistener callback crate allows users to define their callbacks in normal systems, by boxing the system and deferring initialization to an exclusive system.

Solution

  • Separate the registration of the system from the boxing of the system. This is non-breaking, and adds a new method.

Changelog

  • Added World::register_boxed_system to allow registration of already-boxed one shot systems.

@IceSentry IceSentry added this to the 0.12.1 milestone Nov 5, 2023
@IceSentry IceSentry added the A-ECS Entities, components, systems, and events label Nov 5, 2023
Copy link
Contributor

@inodentry inodentry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be useful to me too!

Copy link
Contributor

@Trashtalk217 Trashtalk217 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@JoJoJet JoJoJet added the S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it label Nov 7, 2023
@alice-i-cecile alice-i-cecile added this pull request to the merge queue Nov 8, 2023
Merged via the queue into bevyengine:main with commit 0cc1179 Nov 8, 2023
24 checks passed
@aevyrie aevyrie deleted the register-boxed-systems branch November 8, 2023 15:52
cart pushed a commit that referenced this pull request Nov 30, 2023
# Objective

- Allow registration of one-shot systems when those systems have already
been `Box`ed.
- Needed for `bevy_eventlisteners` which allows adding event listeners
with callbacks in normal systems. The current one shot system
implementation requires systems be registered from an exclusive system,
and that those systems be passed in as types that implement
`IntoSystem`. However, the eventlistener callback crate allows users to
define their callbacks in normal systems, by boxing the system and
deferring initialization to an exclusive system.

## Solution

- Separate the registration of the system from the boxing of the system.
This is non-breaking, and adds a new method.

---

## Changelog

- Added `World::register_boxed_system` to allow registration of
already-boxed one shot systems.
rdrpenguin04 pushed a commit to rdrpenguin04/bevy that referenced this pull request Jan 9, 2024
# Objective

- Allow registration of one-shot systems when those systems have already
been `Box`ed.
- Needed for `bevy_eventlisteners` which allows adding event listeners
with callbacks in normal systems. The current one shot system
implementation requires systems be registered from an exclusive system,
and that those systems be passed in as types that implement
`IntoSystem`. However, the eventlistener callback crate allows users to
define their callbacks in normal systems, by boxing the system and
deferring initialization to an exclusive system.

## Solution

- Separate the registration of the system from the boxing of the system.
This is non-breaking, and adds a new method.

---

## Changelog

- Added `World::register_boxed_system` to allow registration of
already-boxed one shot systems.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-ECS Entities, components, systems, and events S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants