use crate::prelude::*;
use bevy_asset::AssetId;
use bevy_ecs::prelude::*;
use bevy_platform::collections::HashMap;
use bevy_reflect::prelude::Reflect;
use std::marker::PhantomData;
#[derive(Resource, Reflect)]
#[reflect(Resource)]
pub struct ScatterAssetManager<T: ScatterMaterialAsset> {
pub asset_to_layer: HashMap<AssetId<ScatterAsset<T>>, Entity>,
pub asset_to_entity: HashMap<AssetId<ScatterAsset<T>>, (Entity, Vec<Entity>)>,
#[reflect(ignore)]
_marker: PhantomData<T>,
}
impl<T: ScatterMaterialAsset> Default for ScatterAssetManager<T> {
fn default() -> Self {
Self {
asset_to_layer: HashMap::new(),
asset_to_entity: HashMap::new(),
_marker: PhantomData,
}
}
}