From 7a698f5fbceda8fff97678ab6108f111e1974254 Mon Sep 17 00:00:00 2001
From: Brad <bbenton91@gmail.com>
Date: Fri, 30 Oct 2020 17:29:58 -0400
Subject: [PATCH] Added range check to block pickup

---
 server/src/events/inventory_manip.rs | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/server/src/events/inventory_manip.rs b/server/src/events/inventory_manip.rs
index 5dce6f7aab..e82f292385 100644
--- a/server/src/events/inventory_manip.rs
+++ b/server/src/events/inventory_manip.rs
@@ -110,6 +110,16 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv
 
             if let Some(block) = block {
                 if block.is_collectible() && state.can_set_block(pos) {
+                    // Check if the block is within pickup range
+                    if !within_pickup_range(
+                        state.ecs().read_storage::<comp::Pos>().get(entity),
+                        // We convert the Vec<i32> pos into a Vec<f32>, adding 0.5 to get the
+                        // center of the block
+                        Some(&Pos(pos.map(|e| e as f32 + 0.5))),
+                    ) {
+                        return;
+                    };
+
                     if let Some(item) = comp::Item::try_reclaim_from_block(block) {
                         let (event, item_was_added) = if let Some(inv) = state
                             .ecs()