Skip to main content

fantasy_craft/graphics/tiled_map/
plugins.rs

1use crate::prelude::{GameState, MainTileMapLoader, Plugin, Stage, System, TileMapComponentLoader, TileMapLayerComponentLoader, tilemap_layer_render_system};
2use crate::graphics::tiled_map::systems::tilemap_render_system;
3
4pub struct TiledMapPlugin;
5
6impl Plugin for TiledMapPlugin {
7    fn build(&self, app: &mut crate::prelude::App) {
8        app.scene_loader
9            .register("TileMapComponent", Box::new(TileMapComponentLoader))
10            .register("TileMapLayerComponent", Box::new(TileMapLayerComponentLoader))
11            .register("MainTileMap", Box::new(MainTileMapLoader));
12
13        app
14            .add_system(Stage::Render, System::new(
15                tilemap_layer_render_system,
16                vec![GameState::Playing, GameState::Menu]
17            ))
18            .add_system(Stage::Render, System::new(
19                tilemap_render_system,
20                vec![GameState::Playing, GameState::Menu]
21            ));
22    }
23}