diff options
author | Thomas--S <Thomas--S@users.noreply.github.com> | 2016-10-03 12:14:34 +0200 |
---|---|---|
committer | Hugo Locurcio <calinou@opmbx.org> | 2016-10-03 12:14:34 +0200 |
commit | 7f06db2200909e7e501b5092ae7b330bcef05d2a (patch) | |
tree | cb4419846ef58c0929dd9cc48914fb3950bc72ad /stairsplus/init.lua | |
parent | ab2c63270f9289de717ccaf0aa21f0b871b7bc78 (diff) |
Add Alias Functions (#54)
* register_alias
* register_alias_force
Diffstat (limited to 'stairsplus/init.lua')
-rw-r--r-- | stairsplus/init.lua | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/stairsplus/init.lua b/stairsplus/init.lua index 44f5972..1f2cefe 100644 --- a/stairsplus/init.lua +++ b/stairsplus/init.lua @@ -17,6 +17,21 @@ and minetest.setting_getbool("creative_mode") then stairsplus.expect_infinite_stacks = true end +function stairsplus.copytable(orig) + local orig_type = type(orig) + local copy + if orig_type == 'table' then + copy = {} + for orig_key, orig_value in next, orig, nil do + copy[stairsplus.copytable(orig_key)] = stairsplus.copytable(orig_value) + end + setmetatable(copy, stairsplus.copytable(getmetatable(orig))) + else + copy = orig + end + return copy +end + function stairsplus:prepare_groups(groups) local result = {} if groups then @@ -41,6 +56,21 @@ function stairsplus:register_all(modname, subname, recipeitem, fields) -- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps. end +function stairsplus:register_alias_all(modname_old, subname_old, modname_new, subname_new) + self:register_stair_alias(modname_old, subname_old, modname_new, subname_new) + self:register_slab_alias(modname_old, subname_old, modname_new, subname_new) + self:register_slope_alias(modname_old, subname_old, modname_new, subname_new) + self:register_panel_alias(modname_old, subname_old, modname_new, subname_new) + self:register_micro_alias(modname_old, subname_old, modname_new, subname_new) +end +function stairsplus:register_alias_force_all(modname_old, subname_old, modname_new, subname_new) + self:register_stair_alias_force(modname_old, subname_old, modname_new, subname_new) + self:register_slab_alias_force(modname_old, subname_old, modname_new, subname_new) + self:register_slope_alias_force(modname_old, subname_old, modname_new, subname_new) + self:register_panel_alias_force(modname_old, subname_old, modname_new, subname_new) + self:register_micro_alias_force(modname_old, subname_old, modname_new, subname_new) +end + function register_stair_slab_panel_micro(modname, subname, recipeitem, groups, images, description, drop, light) stairsplus:register_all(modname, subname, recipeitem, { groups = groups, |