diff --git a/engine/world_generation/src/lib.rs b/engine/world_generation/src/lib.rs index ce246ae..42419e7 100644 --- a/engine/world_generation/src/lib.rs +++ b/engine/world_generation/src/lib.rs @@ -2,6 +2,7 @@ pub mod heightmap; pub mod hex_utils; pub mod mesh_generator; pub mod tile_manager; +pub mod tile_mapper; pub mod prelude { use crate::hex_utils::HexCoord; diff --git a/engine/world_generation/src/tile_mapper.rs b/engine/world_generation/src/tile_mapper.rs new file mode 100644 index 0000000..d1158f3 --- /dev/null +++ b/engine/world_generation/src/tile_mapper.rs @@ -0,0 +1,25 @@ +use asset_loader::create_asset_loader; +use bevy::prelude::*; +use bevy::{ + asset::{Asset, Handle}, + reflect::TypePath, +}; +use serde::{Deserialize, Serialize}; + +use crate::tile_manager::TileAsset; + +pub struct TileMapper; + +#[derive(Serialize, Deserialize, Debug, TypePath, Asset)] +struct TileMapperAsset { + #[serde(skip)] + pub tiles: Vec>, + pub tiles_path: Vec, +} + +create_asset_loader!( + TileMapperAssetPlugin, + TileMapperAssetLoader, + TileMapperAsset, + &["mapper.json"], +); diff --git a/game/main/src/phos.rs b/game/main/src/phos.rs index d441ce9..c695d92 100644 --- a/game/main/src/phos.rs +++ b/game/main/src/phos.rs @@ -35,6 +35,7 @@ impl Plugin for PhosGamePlugin { //Assets app.add_plugins(TileAssetPlugin); + app.add_plugins(TileMapperAssetPlugin); //Physics app.add_plugins(RapierPhysicsPlugin::::default()) .add_plugins(RapierDebugRenderPlugin::default());