Line 86:
Line 86:
-- * Equipment iterators.
-- * Equipment iterators.
−
function Iterator.equipmentBy(context, n, pred, pre, empty)
+
function Iterator.equipmentBy(context, n, pred, pre, nItems)
local predKey = stringKey('pred', context, n)
local predKey = stringKey('pred', context, n)
if predKey then
if predKey then
Line 115:
Line 115:
local current = nil
local current = nil
local preFlag = true
local preFlag = true
+
local nCollection = #collection
return {
return {
next = function()
next = function()
−
for _ = i, #collection do
+
for _ = i, nCollection do
−
local e = collection[i]
+
local e
+
if nItems then
+
e = U.ifindBy(collection, function(e) return e._id == i end) or { _id = i }
+
else
+
e = collection[i]
+
end
if pred(e, i) then
if pred(e, i) then
if pre and preFlag then
if pre and preFlag then
Line 129:
Line 135:
end
end
current = e._name
current = e._name
−
if empty and not current then
+
if nItems and not current then
−
current = empty
+
current = '-'
end
end
i = i + 1
i = i + 1
Line 198:
Line 204:
end
end
end,
end,
−
"-"
+
true
)
)
end
end