use bevy::app::{App, PluginGroup, PluginGroupBuilder};
use bevy::math::vec2;
use bevy::prelude::{Sprite, Transform};
use bevy_rapier2d::prelude::*;
use bevy_replicon::prelude::{AppRuleExt, Channel, ClientEventAppExt};
use crate::config::planet::Planet;
use crate::ecs::{Ball, Ground, SendBallHere};
pub struct SharedPluginGroup;
impl PluginGroup for SharedPluginGroup {
fn build(self) -> PluginGroupBuilder {
PluginGroupBuilder::start::<Self>()
.add(
RapierPhysicsPlugin::<NoUserData>::pixels_per_meter(100.0)
)
.add(register_everything)
}
}
pub fn register_everything(app: &mut App) {
app
.add_client_event::<SendBallHere>(Channel::Ordered)
.replicate::<Transform>()
.replicate::<Ball>()
.replicate::<Ground>()
.replicate::<Collider>()
.replicate::<Planet>();
}