diff options
Diffstat (limited to 'stairsplus_convert.lua')
-rw-r--r-- | stairsplus_convert.lua | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/stairsplus_convert.lua b/stairsplus_convert.lua deleted file mode 100644 index 7d6b94b..0000000 --- a/stairsplus_convert.lua +++ /dev/null @@ -1,133 +0,0 @@ --- Function to convert all stairs/slabs/etc nodes from --- inverted, wall, etc to regular + 6d facedir - -local dirs1 = { 21, 20, 23, 22, 21 } -local dirs2 = { 15, 8, 17, 6, 15 } -local dirs3 = { 14, 11, 16, 5, 14 } - -function register_6dfacedir_conversion(modname, material) - --print("Register stairsplus 6d facedir conversion") - --print('ABM for '..modname..' "'..material..'"') - - local objects_list1 = { - modname..":slab_" .. material .. "_inverted", - modname..":slab_" .. material .. "_quarter_inverted", - modname..":slab_" .. material .. "_three_quarter_inverted", - modname..":stair_" .. material .. "_inverted", - modname..":stair_" .. material .. "_wall", - modname..":stair_" .. material .. "_wall_half", - modname..":stair_" .. material .. "_wall_half_inverted", - modname..":stair_" .. material .. "_half_inverted", - modname..":stair_" .. material .. "_right_half_inverted", - modname..":panel_" .. material .. "_vertical", - modname..":panel_" .. material .. "_top", - } - - local objects_list2 = { - modname..":slab_" .. material .. "_wall", - modname..":slab_" .. material .. "_quarter_wall", - modname..":slab_" .. material .. "_three_quarter_wall", - modname..":stair_" .. material .. "_inner_inverted", - modname..":stair_" .. material .. "_outer_inverted", - modname..":micro_" .. material .. "_top" - } - - for j in ipairs(objects_list1) do - local flip_upside_down = false - local flip_to_wall = false - - local object = objects_list1[j] - local dest_object = objects_list1[j] - - if string.find(dest_object, "_inverted") then - flip_upside_down = true - dest_object = string.gsub(dest_object, "_inverted", "") - end - - if string.find(dest_object, "_top") then - flip_upside_down = true - dest_object = string.gsub(dest_object, "_top", "") - end - - if string.find(dest_object, "_wall") then - flip_to_wall = true - dest_object = string.gsub(dest_object, "_wall", "") - end - - if string.find(dest_object, "_vertical") then - flip_to_wall = true - dest_object = string.gsub(dest_object, "_vertical", "") - end - - if string.find(dest_object, "_half") and not string.find(dest_object, "_right_half") then - dest_object = string.gsub(dest_object, "_half", "_right_half") - elseif string.find(dest_object, "_right_half") then - dest_object = string.gsub(dest_object, "_right_half", "_half") - end - - --print(" +---> convert "..object) - --print(" | to "..dest_object) - - minetest.register_abm({ - nodenames = { object }, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local fdir = node.param2 or 0 - - if flip_upside_down and not flip_to_wall then - nfdir = dirs1[fdir+2] - elseif flip_to_wall and not flip_upside_down then - nfdir = dirs2[fdir+1] - elseif flip_to_wall and flip_upside_down then - nfdir = dirs3[fdir+2] - end - minetest.env:add_node(pos, {name = dest_object, param2 = nfdir}) - end - }) - end - - for j in ipairs(objects_list2) do - local flip_upside_down = false - local flip_to_wall = false - - local object = objects_list2[j] - local dest_object = objects_list2[j] - - if string.find(dest_object, "_inverted") then - flip_upside_down = true - dest_object = string.gsub(dest_object, "_inverted", "") - end - - if string.find(dest_object, "_top") then - flip_upside_down = true - dest_object = string.gsub(dest_object, "_top", "") - end - - if string.find(dest_object, "_wall") then - flip_to_wall = true - dest_object = string.gsub(dest_object, "_wall", "") - end - - --print(" +---> convert "..object) - --print(" | to "..dest_object) - - minetest.register_abm({ - nodenames = { object }, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local fdir = node.param2 - local nfdir = 20 - - if flip_upside_down and not flip_to_wall then - nfdir = dirs1[fdir+1] - elseif flip_to_wall and not flip_upside_down then - nfdir = dirs2[fdir+2] - - end - minetest.env:add_node(pos, {name = dest_object, param2 = nfdir}) - end - }) - end -end |