From 931788bc9fcaa6392210d9fcad01eb6607337901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Blot?= Date: Wed, 15 Apr 2020 16:38:49 +0200 Subject: [PATCH] Check for player inventory before looping This prevent useless inventory check on each object in the loop --- init.lua | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/init.lua b/init.lua index 25145b1..314c4eb 100644 --- a/init.lua +++ b/init.lua @@ -262,7 +262,12 @@ if legacy_setting_getbool("item_drop.enable_item_pickup", local pos = player:get_pos() pos.y = pos.y+0.5 - local inv + local inv = player:get_inventory() + if not inv then + minetest.log("error", "[item_drop] Couldn't " .. + "get inventory") + return + end local objectlist = minetest.get_objects_inside_radius(pos, magnet_mode and magnet_radius or pickup_radius) @@ -271,14 +276,6 @@ if legacy_setting_getbool("item_drop.enable_item_pickup", local ent = opt_get_ent(object) if ent and item_drop.can_pickup(ent, player) then - if not inv then - inv = player:get_inventory() - if not inv then - minetest.log("error", "[item_drop] Couldn't " .. - "get inventory") - return - end - end local item = ItemStack(ent.itemstring) if inv:room_for_item("main", item) then local flying_item