use crate::{ecs::{CraftPartRequest, Part}, prelude::*, server::part::{SpawnPartBundle, SpawnPartRequest}};
pub fn craft_plugin(app: &mut App) {
app.add_systems(Update, receive_crafting_request);
}
fn receive_crafting_request(
mut craft_part_request: MessageReader<FromClient<CraftPartRequest>>,
mut part_query: Query<(&Transform, &Part)>,
mut commands: Commands,
asset_server: Res<AssetServer>,
) {
for request in craft_part_request.read() {
let Ok((transform, part)) = part_query.get(request.crafting_part) else {
warn!("When receiving a crafting request, the crafting part didn't exist.");
continue;
};
commands.spawn(SpawnPartBundle {
req: SpawnPartRequest(asset_server.load(
format!("config/parts/{}.part.toml", request.crafted_part.to_lowercase()))),
transform: transform.with_translation(transform.translation + vec3(50.0, 0.0, 0.0)),
});
}
}