diff --git a/src/canvas.rs b/src/canvas.rs index d21e872..7ae1bb6 100644 --- a/src/canvas.rs +++ b/src/canvas.rs @@ -7,7 +7,7 @@ use bevy::{ render::{ render_resource::{encase, AsBindGroup, OwnedBindingResource, ShaderRef, ShaderType}, renderer::RenderQueue, - Render, RenderApp, RenderSet, + Extract, Render, RenderApp, RenderSet, }, sprite::{Material2d, Material2dPlugin, MaterialMesh2dBundle, RenderMaterials2d}, }; @@ -23,7 +23,7 @@ impl Plugin for CanvasPlugin { .add_systems(Startup, spawn_canvas); app.sub_app_mut(RenderApp) - .add_systems(ExtractSchedule, extract_tile_lights) + .add_systems(ExtractSchedule, (extract_tile_lights, extract_canvas)) .add_systems( Render, prepare_canvas_material.in_set(RenderSet::PrepareAssets), @@ -82,7 +82,7 @@ fn prepare_canvas_material( let mut buffer = encase::UniformBuffer::new(Vec::new()); buffer .write(&CanvasMaterialUniform { - ambient_color: Color::RED, + ambient_color: CANVAS_COLOR, tile_lights: tile_lights_uniform.clone(), number_of_lights: tile_lights.len() as _, }) @@ -93,6 +93,15 @@ fn prepare_canvas_material( } } +fn extract_canvas( + mut commands: Commands, + canvas_query: Extract)>>, +) { + for (entity, handle) in canvas_query.iter() { + commands.get_or_spawn(entity).insert(handle.clone()); + } +} + fn spawn_canvas( mut commands: Commands, mut mesh_assets: ResMut>,