forked from VoxeLibre/VoxeLibre
Track items as they are registered for use in building the creative menu without relying on pairs(minetest.registered_items) working correctly
This commit is contained in:
parent
067ad7b78b
commit
3a9ef7a65f
|
@ -282,3 +282,19 @@ function mcl_vars.get_node(pos, force, us_timeout)
|
|||
return node
|
||||
-- it still can return "ignore", LOL, even if force = true, but only after time out
|
||||
end
|
||||
|
||||
-- Workaround because pairs() doesn't always work as expected
|
||||
do
|
||||
local old_minetest_register_item = minetest.register_item
|
||||
local items_registered = {}
|
||||
mcl_vars.items_registered = items_registered
|
||||
minetest.register_item = function(name, itemdef)
|
||||
if name:sub(1,1) == ":" then
|
||||
items_registered[#items_registered + 1] = name:sub(2)
|
||||
else
|
||||
items_registered[#items_registered + 1] = name
|
||||
end
|
||||
return old_minetest_register_item(name, itemdef)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -47,7 +47,13 @@ end
|
|||
-- Populate all the item tables. We only do this once.
|
||||
-- Note this code must be executed after loading all the other mods in order to work.
|
||||
minetest.register_on_mods_loaded(function()
|
||||
for name, def in pairs(minetest.registered_items) do
|
||||
-- Workaround because pairs() doesn't always working as expected
|
||||
local items_registered = mcl_vars.items_registered
|
||||
mcl_vars.items_registered = nil -- cleanup after ourselves
|
||||
for i = 1,#items_registered do
|
||||
local name = items_registered[i]
|
||||
local def = minetest.registered_items[name]
|
||||
|
||||
if (not def.groups.not_in_creative_inventory or def.groups.not_in_creative_inventory == 0) and def.description and
|
||||
def.description ~= "" then
|
||||
---@param def mt.ItemDef|mt.NodeDef
|
||||
|
@ -142,7 +148,7 @@ minetest.register_on_mods_loaded(function()
|
|||
|
||||
table.insert(inventory_lists["all"], name)
|
||||
end
|
||||
end
|
||||
end -- for i = 1,#items_registered do
|
||||
|
||||
for ench, def in pairs(mcl_enchanting.enchantments) do
|
||||
local str = "mcl_enchanting:book_enchanted " .. ench .. " " .. def.max_level
|
||||
|
|
Loading…
Reference in New Issue