local reg_alias = ocutil.safe_register_alias -- =================================================================== -- These two need to be handled using aliases. Reason: They may be us- -- ed by mapgen schems that haven't been updated yet to replace them. reg_alias ("default:acacia_tree" , "default:acacia_trunk" ) reg_alias ("default:aspen_tree" , "default:aspen_trunk" ) -- =================================================================== local cvtmap = {} cvtmap ["default:chest_open" ] = "default:chest" cvtmap [ "default:junglewood_cube" ] = "default:jungle_wood_cube" cvtmap [ "default:junglewood_doublepanel" ] = "default:jungle_wood_doublepanel" cvtmap [ "default:junglewood_halfstair" ] = "default:jungle_wood_halfstair" cvtmap [ "default:junglewood_micropanel" ] = "default:jungle_wood_micropanel" cvtmap [ "default:junglewood_microslab" ] = "default:jungle_wood_microslab" cvtmap [ "default:junglewood_panel" ] = "default:jungle_wood_panel" cvtmap [ "default:junglewood_thinstair" ] = "default:jungle_wood_thinstair" cvtmap ["stairs:stair_jungletree" ] = "stairs:stair_jungle_wood" cvtmap ["stairs:slab_aspen_tree" ] = "stairs:slab_aspen_wood" cvtmap ["stairs:stair_aspen_tree" ] = "stairs:stair_aspen_wood" cvtmap ["moretrees:slab_poplar_planks" ] = "stairs:slab_poplar_wood" cvtmap ["moretrees:stair_poplar_planks" ] = "stairs:stair_poplar_wood" cvtmap ["default:tree_outerstair" ] = "stairs:stair_outer_wood" cvtmap ["default:bookshelf_alt" ] = "default:bookshelf" cvtmap ["default:obsidian_glass_alt" ] = "default:obsidian_glass" cvtmap ["moontest:vacuum" ] = "default:vacuum" -- =================================================================== cvtmap ["default:junglewood_outerstair" ] = "stairs:stair_outer_junglewood" cvtmap ["stairs:slab_pine_tree" ] = "stairs:slab_pine_wood" cvtmap ["stairs:stair_pine_tree" ] = "stairs:stair_pine_wood" cvtmap ["default:pine_tree_outerstair" ] = "default:pine_wood_outerstair" cvtmap ["default:pine_tree_thinstair" ] = "default:pine_wood_thinstair" -- =================================================================== local moretrees_base = { "beech" , "birch" , "cedar" , "date_palm" , "fir" , "oak" , "palm" , "poplar" , "sequoia" , "spruce" , "willow" , } local moretrees_part = { "leaves" , "planks" , "sapling" , "trunk" , } for _, base in pairs (moretrees_base) do for _, part in pairs (moretrees_part) do local str = base .. "_" .. part cvtmap ["moretrees:" .. str ] = "default:" .. str end end -- =================================================================== cvtmap ["moretrees:apple_tree_leaves" ] = "default:leaves" cvtmap ["moretrees:apple_tree_planks" ] = "default:wood" cvtmap ["moretrees:apple_tree_sapling" ] = "default:sapling" cvtmap ["moretrees:apple_tree_trunk" ] = "default:tree" -- =================================================================== cvtmap ["default:apple_mark" ] = "air" cvtmap ["moretrees:acorn" ] = "air" cvtmap ["moretrees:cedar_cone" ] = "default:cedar_leaves" cvtmap ["moretrees:coconut" ] = "air" cvtmap ["moretrees:fir_cone" ] = "air" cvtmap ["moretrees:fir_leaves_bright" ] = "default:fir_leaves" cvtmap ["moretrees:jungletree_leaves_red" ] = "default:jungle_leaves" cvtmap ["moretrees:jungletree_leaves_yellow" ] = "default:jungle_leaves" cvtmap ["moretrees:jungletree_trunk" ] = "default:jungle_trunk" cvtmap ["moretrees:pine_cone" ] = "air" cvtmap ["moretrees:rubber_tree_leaves" ] = "default:rubber_leaves" cvtmap ["moretrees:rubber_tree_sapling" ] = "default:rubber_sapling" cvtmap ["moretrees:rubber_tree_trunk" ] = "default:rubber_trunk" cvtmap ["moretrees:spruce_cone" ] = "air" cvtmap ["memorandum:letter_empty" ] = "air" cvtmap ["memorandum:letter_written" ] = "air" cvtmap ["memorandum:message" ] = "air" -- =================================================================== local function register_cvtmap (old_node) if ocutil.node_exists (old_node) then ocutil.add_item_groups (old_node, { cvtmap=1, not_in_creative_inventory=1 }) elseif ocutil.thing_exists (old_node) then return else minetest.register_node (":" .. old_node, { groups = { cvtmap=1, not_in_creative_inventory=1 } , }) end end -- =================================================================== for old_node, _ in pairs (cvtmap) do register_cvtmap (old_node) end -- =================================================================== -- fforce: May be nil, false, 0, true, or 1. If "old_node" is a regis- -- tered node, and "fforce" isn't true or 1, conversion is skipped. default.convert_base = function (old_node, new_node, fforce) local rtn = "convert_base" if ocutil.str_empty (old_node) then ocutil.panic (rtn .. " 1") end if ocutil.str_empty (new_node) then ocutil.panic (rtn .. " 2") end if cvtmap [old_node] ~= nil then return end if cvtmap [new_node] ~= nil then new_node = cvtmap [new_node] end if cvtmap [new_node] ~= nil then new_node = cvtmap [new_node] end if cvtmap [new_node] ~= nil then ocutil.panic (rtn .. " 4: " .. old_node .. " " .. new_node) end if ocutil.node_missing (new_node) then return end if fforce ~= true and fforce ~= 1 then if ocutil.node_exists (old_node) then return end end cvtmap [old_node] = new_node register_cvtmap (old_node) end -- =================================================================== default.convert_node = function (old_node, new_node) return default.convert_base (old_node, new_node, false) end -- =================================================================== default.convert_force = function (old_node, new_node) return default.convert_base (old_node, new_node, true) end -- =================================================================== minetest.register_lbm ({ -- For LBM version: name = ":default:cvtmap" , label = ":default:cvtmap" , run_at_every_load = true , -- For ABM version: catch_up = false , chance = 1 , interval = 3 , nodenames = { "group:cvtmap" } , action = function (pos, node) local newname = cvtmap [node.name] if newname ~= nil and ocutil.node_exists (newname) then local param2 = node.param2 minetest.swap_node (pos, { name = newname , param2 = param2 , }) end end }) -- =================================================================== -- End of file.