pub mod definitions;
pub mod directionality;
pub mod loader;
pub mod query;
pub mod systems;

mod plugin {
	use bevy_app::{PluginGroup, PluginGroupBuilder};

	use crate::loader;

	pub struct BanimatePluginGroup;
	impl PluginGroup for BanimatePluginGroup {
		fn build(self) -> PluginGroupBuilder {
			let mut group =
				PluginGroupBuilder::start::<Self>().add(super::systems::AnimationSystemsPlugin);

			#[cfg(any(feature = "json_loader", feature = "toml_loader"))]
			{
				group = group.add(loader::AnimationLoadersPlugin);
			}

			group
		}
	}
}

pub use plugin::BanimatePluginGroup;
