use bevy::prelude::*; use bevy_light_2d::prelude::*; use crate::{layout::LayoutTextures, meters}; #[derive(Component, Clone, Copy, Default, Reflect, Debug, PartialEq, Eq)] #[reflect(Component, Clone, Default, Debug, PartialEq)] #[require(Transform)] pub struct Lamp; pub fn lamp_bundle(textures: &Res, pos: Vec2, intensity: f32, radius: f32) -> impl Bundle { ( Transform::from_xyz(pos.x, pos.y, 0.), Sprite::from_image(textures.light.0.clone()), children![( SpotLight2d { intensity, radius, source_width: meters(0.5), cast_shadows: true, ..default() }, Transform::from_xyz(0., 1., 0.), )], ) }