Files
phos-neo/engine/world_generation/src/tile_manager.rs
Amatsugu 94b85c9cf7 update to bevy 0.16.0
Need to wait for asset_loader upate full release
Need to refactor Prefab system to use the new relationships
2025-04-29 14:35:19 -04:00

37 lines
824 B
Rust

use asset_loader::create_asset_loader;
use bevy::{asset::Asset, reflect::TypePath};
use serde::{Deserialize, Serialize};
#[derive(Resource, Debug)]
pub struct TileManager {
pub tiles: Vec<Handle<TileAsset>>,
}
impl Default for TileManager {
fn default() -> Self {
Self { tiles: vec![] }
}
}
impl TileManager {
pub fn register_tile(&mut self, tile: Handle<TileAsset>) -> usize {
let id = self.tiles.len();
self.tiles.push(tile);
return id;
}
}
#[derive(Serialize, Deserialize, Debug, TypePath, Asset, Clone)]
pub struct TileAsset {
#[serde(skip)]
pub id: usize,
pub name: String,
pub texture_id: u32,
#[serde(skip)]
pub texture: String,
pub side_texture_id: u32,
#[serde(skip)]
pub side_texture: String,
}
create_asset_loader!(TileAssetPlugin, TileAssetLoader, TileAsset, &["tile", "tile.ron"],;?);