use crate::bevy::AxonApp;
use bevy::prelude::*;

#[derive(Default)]
pub struct RemotePlugin;

pub mod base;
pub mod skin;
pub mod text;
pub mod tile;

impl Plugin for RemotePlugin {
    fn build(&self, app: &mut App) {
        app.add_axon_variant::<crate::remote::base::Position>();
        app.add_axon_variant::<crate::remote::base::MovePosition>();
        app.add_axon_variant::<crate::remote::base::Rotation>();
        app.add_axon_variant::<crate::remote::base::Scale>();
        app.add_axon_variant::<crate::remote::base::Size>();
        app.add_axon_variant::<crate::remote::base::Color>();
        app.add_axon_variant::<crate::remote::skin::Skin>();
        app.add_axon_object::<crate::remote::text::Text>();
        app.add_axon_variant::<crate::remote::text::Text>();
        app.add_axon_variant::<crate::remote::tile::Tilemap>();
    }
}
