1
0
mirror of https://github.com/Wyrrrd/Autofilter.git synced 2026-03-26 00:19:48 +01:00

Added missing entity check

This commit is contained in:
Wyrrrd
2020-02-22 04:11:21 +01:00
parent 531243a765
commit ab4339a87d
3 changed files with 21 additions and 12 deletions

View File

@@ -13,7 +13,7 @@ end
local function get_items_by_filter(inserter,inventory)
local items = {}
for slot = 1,#inventory,1 do
for slot = 1,#inventory do
if #items < inserter.filter_slot_count and inventory.get_filter(slot) then
items[#items+1] = inventory.get_filter(slot)
end
@@ -24,16 +24,19 @@ end
local function on_built_entity(event)
local inserter = event.created_entity
if inserter.filter_slot_count then
local inventory = inserter.surface.find_entities_filtered({position = inserter.pickup_position, limit = 1})[1].get_output_inventory()
if inventory then
local mode = game.players[event.player_index].mod_settings["Autofilter_Mode"].value
if mode == "content" and not inventory.is_empty() then
for slot,item in pairs(get_items_by_content(inserter,inventory)) do
inserter.set_filter(slot,item)
end
elseif mode == "filter" and inventory.is_filtered() then
for slot,item in pairs(get_items_by_filter(inserter,inventory)) do
inserter.set_filter(slot,item)
local pickup = inserter.surface.find_entities_filtered({position = inserter.pickup_position, limit = 1})
if #pickup > 0 then
local inventory = pickup[1].get_output_inventory()
if inventory then
local mode = game.players[event.player_index].mod_settings["Autofilter_Mode"].value
if mode == "content" and not inventory.is_empty() then
for slot,item in pairs(get_items_by_content(inserter,inventory)) do
inserter.set_filter(slot,item)
end
elseif mode == "filter" and inventory.is_filtered() then
for slot,item in pairs(get_items_by_filter(inserter,inventory)) do
inserter.set_filter(slot,item)
end
end
end
end