quadify/
lib.rs

1// ! The current problem is that all bevy systems can be run in parallel, if one
2// ! uses bevy's parallel processing plugin. Macroquad is designed to work on a single thread, thus
3// ! there needs to be some sort of isolation for ALL of its functionality.
4
5use bevy::{
6    a11y::AccessibilityPlugin, app::PluginGroupBuilder, diagnostic::DiagnosticsPlugin,
7    input::InputPlugin, log::LogPlugin, prelude::*, time::TimePlugin,
8};
9pub use macroquad;
10use window::MQWindowPlugin; // Only import it if you actually need it
11                            // use sprite::RenderingPlugin;
12
13// pub mod sprite;
14pub mod prelude;
15pub mod window;
16
17/// This collection of plugins is a custom made DefaultPlugins bundle
18pub struct QuadifyPlugins;
19impl PluginGroup for QuadifyPlugins {
20    fn build(self) -> PluginGroupBuilder {
21        PluginGroupBuilder::start::<Self>()
22            .add(LogPlugin::default())
23            .add(TaskPoolPlugin::default())
24            .add(TypeRegistrationPlugin)
25            .add(FrameCountPlugin)
26            .add(TimePlugin)
27            .add(TransformPlugin)
28            .add(HierarchyPlugin)
29            .add(DiagnosticsPlugin)
30            .add(InputPlugin)
31            .add(WindowPlugin::default())
32            .add(AccessibilityPlugin)
33            // ? Custom Quadify Plugins. Planning to limit them by features
34            .add(MQWindowPlugin::default())
35    }
36}