amethyst / amethyst/shred

Ability to suspend Systems

Open
#151 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
250
Forks
65
PR merge metrics
No merged PRs in 30d

Description

From what I've seen, there doesn't seem to be the ability to suspend `System`s? Basically, after exploring through `amethyst` and `specs`, I ended up concluding that `shred` would presumably be where this functionality would go. Feel free to direct me in the right place if that's not the case.

Right now, I know that `amethyst` supports a `Pausable` wrapper which simply checks a condition every time the system is run; this is okay, but it would be nice to be able to suspend a system (making it no longer dispatched) and be able to later signal it to be added back to the queue. Presumably, this would help make it easier to interface with `Generator`s and the like later on.

Alternatively, you could argue that the best case for this is to have multiple `Dispatcher`s and use the right one depending on the state of the system. This might be better for cases where the set of currently running systems is swapped, e.g. a pause menu in a game, rather than the generic case which might be better for I/O. If this is the route that seems best, then I can move this issue to `specs` and discuss that there.

Anyway, I didn't see a discussion on this, so, I figured I'd start one.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.