diff options
Diffstat (limited to 'stairsplus')
-rw-r--r-- | stairsplus/slabs.lua | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/stairsplus/slabs.lua b/stairsplus/slabs.lua index 2a86b0f..5d9a434 100644 --- a/stairsplus/slabs.lua +++ b/stairsplus/slabs.lua @@ -28,6 +28,20 @@ local slabs_defs = { ["_2"] = 2, ["_14"] = 14, ["_15"] = 15, + ["_two_sides"] = { + { -0.5, -0.5, -0.5, 0.5, -7/16, 7/16 }, + { -0.5, -0.5, 7/16, 0.5, 0.5, 0.5 } + }, + ["_three_sides"] = { + { -7/16, -0.5, -0.5, 0.5, -7/16, 7/16 }, + { -7/16, -0.5, 7/16, 0.5, 0.5, 0.5 }, + { -0.5, -0.5, -0.5, -7/16, 0.5, 0.5 } + }, + ["_three_sides_u"] = { + { -0.5, -0.5, -0.5, 0.5, 0.5, -7/16 }, + { -0.5, -0.5, -7/16, 0.5, -7/16, 7/16 }, + { -0.5, -0.5, 7/16, 0.5, 0.5, 0.5 } + } } function stairsplus:register_slab_alias(modname_old, subname_old, modname_new, subname_new) @@ -47,21 +61,36 @@ end function stairsplus:register_slab(modname, subname, recipeitem, fields) local defs = stairsplus.copytable(slabs_defs) local desc_base = S("%s Slab"):format(fields.description) - for alternate, num in pairs(defs) do - local def = { - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, (num/16)-0.5, 0.5}, + for alternate, shape in pairs(defs) do + + local def = {} + + if type(shape) ~= "table" then + def = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, (shape/16)-0.5, 0.5}, + }, + description = ("%s (%d/16)"):format(desc_base, shape) + } + else + def = { + node_box = { + type = "fixed", + fixed = shape, + }, + description = desc_base } - } + end + for k, v in pairs(fields) do def[k] = v end + def.drawtype = "nodebox" def.paramtype = "light" def.paramtype2 = def.paramtype2 or "facedir" def.on_place = minetest.rotate_node - def.description = ("%s (%d/16)"):format(desc_base, num) def.groups = stairsplus:prepare_groups(fields.groups) if fields.drop and not (type(fields.drop) == "table") then def.drop = modname.. ":slab_" .. fields.drop .. alternate |