Skip to content

TODOS #1

@toyboot4e

Description

@toyboot4e

Not on master yet.

  • Type boundaries
    • Add #[derive(Component)]
    • Add #[derive(Resource)] as in Bevy?
    • Send, Sync, NonSend. Components are Send and Sync by their definition (in toecs). Non-Send resource should be fetched with NonSend and NonSendMut. res_scope needs to be relaxed to accept non-send resource types.
  • API / ergonomics
    • EntityMut for explicit entity validation? → No (Make sure to invalidate Entity #3)
    • Add #[derive(GatBorrowWorld)] #[derive(AutoFetch)] for user-defined borrow types
    • Add #[derive(ComponentSet)] for easier insertion
    • Add World::run_arg, just like run_with_data in shipyard
  • Borrow improvements
    • Add lifetime-free BorrowWorld: GatBorrowWorld with the GAT hack
    • Remove the GAT hack with the real GAT coming in Rust
    • Implement GatBorrowWorld AutoFetch for tuples. This is great for system-like function with ordinary parameters, just like RenderCommand in Bevy or run_with_data in shipyard
    • Add World::run_ex where &mut World is allowed
  • One-shot parallel / sequential execution
    • Detect access "confliction" before run
    • Wrap return type into SystemResult if necessary
    • rayon or custom task scheduler
  • More from Bevy
    • Add CommandBuffer, Command
    • Optional fetch query (Option<Res<T>>, ..)
    • Blueprint?
    • Reflection / runtime inspector?
  • Groups and layout
    • Create component families
    • Add group/ungroup procedures
    • Refactor query module
    • Add DenseIter
    • Add explicit declaration/fetch of group
  • Scheduler?
    • Add BoxSystem

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions