2021-07-24 16:09:47 +02:00
|
|
|
mcl_item_id = {
|
|
|
|
mod_namespaces = {},
|
|
|
|
}
|
2021-07-23 18:12:43 +02:00
|
|
|
|
2021-07-19 14:21:30 +02:00
|
|
|
local game = "mineclone"
|
2021-07-23 18:12:43 +02:00
|
|
|
|
|
|
|
function mcl_item_id.set_mod_namespace(modname, namespace)
|
|
|
|
local namespace = namespace or modname
|
2021-07-24 16:09:47 +02:00
|
|
|
mcl_item_id.mod_namespaces[modname] = namespace
|
2021-07-23 18:12:43 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
function mcl_item_id.get_mod_namespace(modname)
|
2021-07-24 16:09:47 +02:00
|
|
|
local namespace = mcl_item_id.mod_namespaces[modname]
|
2021-07-23 18:12:43 +02:00
|
|
|
if namespace then
|
|
|
|
return namespace
|
|
|
|
else
|
2021-07-24 16:09:47 +02:00
|
|
|
return game
|
2021-07-23 18:12:43 +02:00
|
|
|
end
|
|
|
|
end
|
2021-07-18 19:21:53 +02:00
|
|
|
|
|
|
|
local same_id = {
|
2021-07-24 16:09:47 +02:00
|
|
|
enchanting = { "table" },
|
|
|
|
experience = { "bottle" },
|
2021-07-18 19:21:53 +02:00
|
|
|
heads = { "skeleton", "zombie", "creeper", "wither_skeleton" },
|
|
|
|
mobitems = { "rabbit", "chicken" },
|
|
|
|
walls = {
|
|
|
|
"andesite", "brick", "cobble", "diorite", "endbricks",
|
|
|
|
"granite", "mossycobble", "netherbrick", "prismarine",
|
|
|
|
"rednetherbrick", "redsandstone", "sandstone",
|
|
|
|
"stonebrick", "stonebrickmossy",
|
|
|
|
},
|
|
|
|
wool = {
|
2021-07-23 14:23:30 +02:00
|
|
|
"black", "blue", "brown", "cyan", "green",
|
2021-07-18 19:21:53 +02:00
|
|
|
"grey", "light_blue", "lime", "magenta", "orange",
|
|
|
|
"pink", "purple", "red", "silver", "white", "yellow",
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
tt.register_snippet(function(itemstring)
|
2021-07-18 20:01:55 +02:00
|
|
|
local def = minetest.registered_items[itemstring]
|
2021-07-18 19:21:53 +02:00
|
|
|
local item_split = itemstring:find(":")
|
2021-07-24 16:09:47 +02:00
|
|
|
local id_string = itemstring:sub(item_split)
|
|
|
|
local id_modname = itemstring:sub(1, item_split - 1)
|
|
|
|
local new_id = game .. id_string
|
|
|
|
local mod_namespace = mcl_item_id.get_mod_namespace(id_modname)
|
2021-07-18 19:21:53 +02: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", "")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2021-07-24 16:09:47 +02:00
|
|
|
if mod_namespace ~= game then
|
|
|
|
new_id = mod_namespace .. id_string
|
2021-07-24 21:07:44 +02:00
|
|
|
end
|
|
|
|
if mod_namespace ~= id_modname then
|
2021-07-23 18:12:43 +02:00
|
|
|
minetest.register_alias_force(new_id, itemstring)
|
|
|
|
end
|
|
|
|
if minetest.settings:get_bool("mcl_item_id_debug", false) then
|
|
|
|
return new_id, "#555555"
|
2021-07-19 14:21:30 +02:00
|
|
|
end
|
2021-07-24 16:09:47 +02:00
|
|
|
end)
|