VoxeLibre/mods/HELP/mcl_item_id/init.lua

66 lines
2.1 KiB
Lua
Raw Permalink Normal View History

mcl_item_id = {
mod_namespaces = {},
}
2024-05-02 07:21:52 +03:00
local game = "voxelibre"
function mcl_item_id.set_mod_namespace(modname, namespace)
local namespace = namespace or modname
mcl_item_id.mod_namespaces[modname] = namespace
end
function mcl_item_id.get_mod_namespace(modname)
local namespace = mcl_item_id.mod_namespaces[modname]
if namespace then
return namespace
else
return game
end
end
2021-07-18 20:21:53 +03:00
local same_id = {
enchanting = { "table" },
experience = { "bottle" },
2024-05-12 07:21:37 +03:00
heads = { "skeleton", "zombie", "stalker", "wither_skeleton" },
2021-07-18 20:21:53 +03:00
mobitems = { "rabbit", "chicken" },
walls = {
"andesite", "brick", "cobble", "diorite", "endbricks",
"granite", "mossycobble", "netherbrick", "prismarine",
2022-05-26 08:29:28 +03:00
"rednetherbrick", "redsandstone", "sandstone",
"stonebrick", "stonebrickmossy",
2021-07-18 20:21:53 +03:00
},
wool = {
"black", "blue", "brown", "cyan", "green",
2021-07-18 20:21:53 +03:00
"grey", "light_blue", "lime", "magenta", "orange",
"pink", "purple", "red", "silver", "white", "yellow",
},
}
tt.register_snippet(function(itemstring)
2021-07-18 21:01:55 +03:00
local def = minetest.registered_items[itemstring]
2021-07-18 20:21:53 +03:00
local item_split = itemstring:find(":")
local id_string = itemstring:sub(item_split)
local id_modname = itemstring:sub(1, item_split - 1)
local new_id = game .. id_string
2024-05-02 07:21:52 +03:00
local alt_id = "mineclone" .. id_string
local mod_namespace = mcl_item_id.get_mod_namespace(id_modname)
2021-07-18 20:21:53 +03:00
for mod, ids in pairs(same_id) do
for _, id in pairs(ids) do
if itemstring == "mcl_" .. mod .. ":" .. id then
new_id = game .. ":" .. id .. "_" .. mod:gsub("s", "")
2024-05-02 07:21:52 +03:00
alt_id = "mineclone:" .. id .. "_" .. mod:gsub("s", "")
2021-07-18 20:21:53 +03:00
end
end
end
if mod_namespace ~= game then
new_id = mod_namespace .. id_string
2021-07-24 22:07:44 +03:00
end
if mod_namespace ~= id_modname then
minetest.register_alias_force(new_id, itemstring)
2024-05-02 07:21:52 +03:00
minetest.register_alias_force(alt_id, itemstring)
end
if minetest.settings:get_bool("mcl_item_id_debug", false) then
return new_id, "#555555"
end
2024-05-02 07:21:52 +03:00
end)