2022-06-14 01:11:20 +02:00
|
|
|
local api = stairsplus.api
|
|
|
|
|
2022-06-14 20:17:06 +02:00
|
|
|
local table_is_empty = stairsplus.util.table_is_empty
|
|
|
|
|
|
|
|
function api.register_alias_single(old_node, new_node, shape)
|
2022-06-15 01:30:41 +02:00
|
|
|
local old_shaped_node = api.format_name(old_node, shape)
|
|
|
|
local new_shaped_node = api.format_name(new_node, shape)
|
2022-06-14 20:17:06 +02:00
|
|
|
|
|
|
|
minetest.register_alias(old_shaped_node, new_shaped_node)
|
|
|
|
end
|
|
|
|
|
2022-06-14 01:11:20 +02:00
|
|
|
function api.register_alias_all(old_node, new_node)
|
2022-06-14 20:17:06 +02:00
|
|
|
for shape in pairs(api.registered_shapes) do
|
|
|
|
api.register_alias_single(old_node, new_node, shape)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function api.register_alias_force_single(old_node, new_node, shape)
|
2022-06-15 01:30:41 +02:00
|
|
|
local old_shaped_node = api.format_name(old_node, shape)
|
|
|
|
local new_shaped_node = api.format_name(new_node, shape)
|
2022-06-14 20:17:06 +02:00
|
|
|
|
|
|
|
minetest.register_alias_force(old_shaped_node, new_shaped_node)
|
|
|
|
|
|
|
|
local nodes = api.nodes_by_shape[shape] or {}
|
|
|
|
if nodes[old_node] then
|
|
|
|
nodes[old_node] = nil
|
|
|
|
nodes[new_node] = true
|
|
|
|
api.nodes_by_shape[shape] = nodes
|
|
|
|
end
|
|
|
|
|
|
|
|
local old_shapes = api.shapes_by_node[old_node] or {}
|
|
|
|
if old_shapes[shape] then
|
|
|
|
old_shapes[shape] = nil
|
|
|
|
if table_is_empty(old_shapes) then
|
|
|
|
api.shapes_by_node[old_node] = nil
|
|
|
|
else
|
|
|
|
api.shapes_by_node[old_node] = old_shapes
|
|
|
|
end
|
|
|
|
|
|
|
|
local new_shapes = api.shapes_by_node[new_node] or {}
|
|
|
|
new_shapes[new_node] = true
|
|
|
|
api.shapes_by_node[new_node] = new_shapes
|
2022-06-14 01:11:20 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function api.register_alias_force_all(old_node, new_node)
|
2022-06-14 20:17:06 +02:00
|
|
|
for shape in pairs(api.registered_shapes) do
|
|
|
|
api.register_alias_force_single(old_node, new_node, shape)
|
2022-06-14 01:11:20 +02:00
|
|
|
end
|
|
|
|
end
|