Ability to suspend Systems
clarfonthey opened this issue · comments
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.
Does #147 cover your use case?