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
|
return node
|
||||||
-- it still can return "ignore", LOL, even if force = true, but only after time out
|
-- it still can return "ignore", LOL, even if force = true, but only after time out
|
||||||
end
|
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.
|
-- 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.
|
-- Note this code must be executed after loading all the other mods in order to work.
|
||||||
minetest.register_on_mods_loaded(function()
|
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
|
if (not def.groups.not_in_creative_inventory or def.groups.not_in_creative_inventory == 0) and def.description and
|
||||||
def.description ~= "" then
|
def.description ~= "" then
|
||||||
---@param def mt.ItemDef|mt.NodeDef
|
---@param def mt.ItemDef|mt.NodeDef
|
||||||
|
@ -142,7 +148,7 @@ minetest.register_on_mods_loaded(function()
|
||||||
|
|
||||||
table.insert(inventory_lists["all"], name)
|
table.insert(inventory_lists["all"], name)
|
||||||
end
|
end
|
||||||
end
|
end -- for i = 1,#items_registered do
|
||||||
|
|
||||||
for ench, def in pairs(mcl_enchanting.enchantments) do
|
for ench, def in pairs(mcl_enchanting.enchantments) do
|
||||||
local str = "mcl_enchanting:book_enchanted " .. ench .. " " .. def.max_level
|
local str = "mcl_enchanting:book_enchanted " .. ench .. " " .. def.max_level
|
||||||
|
|
Loading…
Reference in New Issue