Make errors from IO be properly printed

This commit is contained in:
osmarks 2018-08-15 18:14:02 +01:00
parent b72644dc5f
commit c360c72f83
1 changed files with 37 additions and 32 deletions

69
IO.lua
View File

@ -18,39 +18,44 @@ local function get_num_stacks(total_items)
return math.ceil(total_items / 64)
end
while true do
local stacks_stored = d.map(d.filter(chest.list(), function(x) return x ~= nil end), w.to_wyvern_item)
local items_stored = w.collate_stacks(stacks_stored)
local function get_item_count(ii)
return (items_stored[ii] or {count = 0}).count
end
for item_name, quantity_desired in pairs(conf.items) do
local quantity_stocked = get_item_count(item_name)
if quantity_desired > quantity_stocked then -- if we have fewer items than are desired, extract some from store
local request = w.string_to_item(item_name)
request.type = "extract"
request.destination_inventory = conf.chest
local result = w.unwrap(w.query_by_type("storage", request), "extracting items")
print("Moved", result.moved, item_name, "from storage.")
local function main()
while true do
local stacks_stored = d.map(d.filter(chest.list(), function(x) return x ~= nil end), w.to_wyvern_item)
local items_stored = w.collate_stacks(stacks_stored)
local function get_item_count(ii)
return (items_stored[ii] or {count = 0}).count
end
end
for slot, item in pairs(stacks_stored) do
local ii = w.get_internal_identifier(item)
local stored = get_item_count(ii)
local wanted = 0
if conf.items[ii] then wanted = conf.items[ii] + 1 end
if (get_num_stacks(stored) * 64) >= wanted then -- if item is not in want list or we have too many, send it back to storage
local result = w.unwrap(w.query_by_type("storage", {
type = "insert",
from_inventory = conf.chest,
from_slot = slot
}), "inserting items")
print("Moved", result.moved, ii, "to storage.")
for item_name, quantity_desired in pairs(conf.items) do
local quantity_stocked = get_item_count(item_name)
if quantity_desired > quantity_stocked then -- if we have fewer items than are desired, extract some from store
local request = w.string_to_item(item_name)
request.type = "extract"
request.destination_inventory = conf.chest
local result = w.unwrap(w.query_by_type("storage", request), "extracting items")
print("Moved", result.moved, item_name, "from storage.")
end
end
for slot, item in pairs(stacks_stored) do
local ii = w.get_internal_identifier(item)
local stored = get_item_count(ii)
local wanted = 0
if conf.items[ii] then wanted = conf.items[ii] + 1 end
if (get_num_stacks(stored) * 64) >= wanted then -- if item is not in want list or we have too many, send it back to storage
local result = w.unwrap(w.query_by_type("storage", {
type = "insert",
from_inventory = conf.chest,
from_slot = slot
}), "inserting items")
print("Moved", result.moved, ii, "to storage.")
end
end
sleep(conf.sleep_time)
end
end
sleep(conf.sleep_time)
end
local ok, err = pcall(main)
print(w.errors.format(err))