amethyst / specs

Specs - Parallel ECS
https://amethyst.github.io/specs/
Apache License 2.0
2.52k stars 221 forks source link

Better documentation/example about `BatchController` #689

Open vorner opened 4 years ago

vorner commented 4 years ago

Description

I wanted to make bunch of systems conditional (eg. running them only when the game is not paused). I thought I'd use the DispatcherBuilder::with_batch and decide if I want to call a sub-dispatcher in the controller.

But I'm not entirely sure how it is supposed to work. The Safety section of the create method isn't really clear on what must be uphold. What is „correctly constructed BatchAccessor“?

Furthermore, it references examples/batch_dispatching.rs, which doesn't exist (at least not on master).

So I'd like to ask if it's possible to describe how this thing works in some better way/add the missing example. Or am I trying to use the wrong tool for the job? Shouldn't something like enabling/disabling bunch of systems be possible without using unsafe?

I'm trying to wrap my head around how I would use the BatchController.

(I'm not sure if this belongs more into the feature or bug category, to be honest)

azriel91 commented 4 years ago

TODO: check https://github.com/amethyst/shred/pull/144 and https://github.com/amethyst/shred/pull/147 (have to do this later -- am overloaded right now)

vorner commented 4 years ago

I see the example lives in the shred repository. Might this be caused by specs re-exporting the types? I'll try to read through that and try to improve the docs a bit ‒ at least by linking the example directly.