From 34ff9e0e2ce5b01f34b32202af811a5745e5ea56 Mon Sep 17 00:00:00 2001 From: KyoZM Date: Mon, 7 Oct 2019 01:03:53 -0300 Subject: [PATCH] removelights no longer deletes players with lanterns --- server/src/cmd.rs | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/server/src/cmd.rs b/server/src/cmd.rs index 4a83b18c52..92827b149e 100644 --- a/server/src/cmd.rs +++ b/server/src/cmd.rs @@ -969,22 +969,14 @@ fn handle_remove_lights(server: &mut Server, entity: EcsEntity, args: String, ac match opt_player_pos { Some(player_pos) => { let ecs = server.state.ecs(); - let entities = &ecs.entities(); - let light_emitters = &ecs.read_storage::(); - let lights = (entities, light_emitters).join(); - for (entity, _) in lights { - let pos = ecs - .read_storage::() - .get(entity) - .copied(); - if let Some(pos) = pos { - if opt_radius.is_some() { - if pos.0.distance(player_pos.0) < opt_radius.unwrap() { - to_delete.push(entity); - } - } else { - to_delete.push(entity); - } + for (entity, pos, _, _) in ( + &ecs.entities(), + &ecs.read_storage::(), + &ecs.read_storage::(), + !&ecs.read_storage::() + ).join() { + if opt_radius.map(|r| pos.0.distance(player_pos.0) < r).unwrap_or(true) { + to_delete.push(entity); } } },