diff options
author | Calinou <calinou@opmbx.org> | 2014-03-09 10:38:18 +0100 |
---|---|---|
committer | Calinou <calinou@opmbx.org> | 2014-03-09 10:38:18 +0100 |
commit | 8337a6c192b9961f8947767690c13951696c3c1e (patch) | |
tree | 77908db80dd8f13b494030203be725e03f96bea8 /stairsplus/microblocks.lua | |
parent | 396945ed3eaf43404bd117bbf4820ce08584cc4e (diff) |
Merge ShadowNinja's rewrite.
Diffstat (limited to 'stairsplus/microblocks.lua')
-rw-r--r-- | stairsplus/microblocks.lua | 186 |
1 files changed, 65 insertions, 121 deletions
diff --git a/stairsplus/microblocks.lua b/stairsplus/microblocks.lua index 30a95ea..6348bf6 100644 --- a/stairsplus/microblocks.lua +++ b/stairsplus/microblocks.lua @@ -1,142 +1,86 @@ -- Load translation library if intllib is installed local S -if (minetest.get_modpath("intllib")) then - dofile(minetest.get_modpath("intllib").."/intllib.lua") +if intllib then S = intllib.Getter(minetest.get_current_modname()) - else - S = function ( s ) return s end +else + S = function(s) return s end end --- Node will be called <modname>micro_<subname> +-- Node will be called <modname>:micro_<subname> function register_micro(modname, subname, recipeitem, groups, images, description, drop, light) - - minetest.register_node(":"..modname .. ":micro_" .. subname, { - description = S("%s Microblock"):format(S(description)), - drawtype = "nodebox", - tiles = images, - light_source = light, - drop = modname .. ":micro_" .. drop, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, + return stairsplus:register_micro(modname, subname, recipeitem, { groups = groups, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 0, 0, 0, 0.5}, - }, - sounds = default.node_sound_stone_defaults(), - on_place = stairsplus_rotate_and_place - }) - - minetest.register_node(":"..modname .. ":micro_" .. subname .. "_1", { - description = S("%s Microblock"):format(S(description)), - drawtype = "nodebox", tiles = images, + description = description, + drop = drop, light_source = light, - drop = modname .. ":micro_" .. drop .. "_1", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - groups = groups, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 0, 0, -0.4375, 0.5}, - }, sounds = default.node_sound_stone_defaults(), - on_place = stairsplus_rotate_and_place }) - - minetest.register_node(":"..modname .. ":micro_" .. subname .. "_2", { - description = S("%s Microblock"):format(S(description)), - drawtype = "nodebox", - tiles = images, - light_source = light, - drop = modname .. ":micro_" .. drop .. "_2", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - groups = groups, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 0, 0, -0.375, 0.5}, +end + +function stairsplus:register_micro(modname, subname, recipeitem, fields) + local defs = { + [""] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, 0, 0.5}, + }, }, - sounds = default.node_sound_stone_defaults(), - on_place = stairsplus_rotate_and_place - }) - - minetest.register_node(":"..modname .. ":micro_" .. subname .. "_4", { - description = S("%s Microblock"):format(S(description)), - drawtype = "nodebox", - tiles = images, - light_source = light, - drop = modname .. ":micro_" .. drop .. "_4", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - groups = groups, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 0, 0, -0.25, 0.5}, + ["_1"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, -0.4375, 0.5}, + }, }, - sounds = default.node_sound_stone_defaults(), - on_place = stairsplus_rotate_and_place - }) - - minetest.register_node(":"..modname .. ":micro_" .. subname .. "_12", { - description = S("%s Microblock"):format(S(description)), - drawtype = "nodebox", - tiles = images, - light_source = light, - drop = modname .. ":micro_" .. drop .. "_12", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - groups = groups, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 0, 0, 0.25, 0.5}, + ["_2"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, -0.375, 0.5}, + }, }, - sounds = default.node_sound_stone_defaults(), - on_place = stairsplus_rotate_and_place - }) - - minetest.register_node(":"..modname .. ":micro_" .. subname .. "_14", { - description = S("%s Microblock"):format(S(description)), - drawtype = "nodebox", - tiles = images, - light_source = light, - drop = modname .. ":micro_" .. drop .. "_14", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - groups = groups, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 0, 0, 0.375, 0.5}, + ["_4"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, -0.25, 0.5}, + }, }, - sounds = default.node_sound_stone_defaults(), - on_place = stairsplus_rotate_and_place - }) - - minetest.register_node(":"..modname .. ":micro_" .. subname .. "_15", { - description = S("%s Microblock"):format(S(description)), - drawtype = "nodebox", - tiles = images, - light_source = light, - drop = modname .. ":micro_" .. drop .. "_15", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - groups = groups, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 0, 0, 0.4375, 0.5}, + ["_12"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, 0.25, 0.5}, + }, }, - sounds = default.node_sound_stone_defaults(), - on_place = stairsplus_rotate_and_place - }) + ["_14"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, 0.375, 0.5}, + }, + }, + ["_15"] = { + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0, 0, 0.4375, 0.5}, + }, + } + } + + local desc = S("%s Microblock"):format(fields.description) + for alternate, def in pairs(defs) do + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.on_place = minetest.rotate_node + for k, v in pairs(fields) do + def[k] = v + end + def.description = desc + if fields.drop then + def.drop = modname..":micro_"..fields.drop..alternate + end + minetest.register_node(":"..modname..":micro_"..subname..alternate, def) + end minetest.register_alias(modname..":micro_"..subname.."_bottom", modname..":micro_"..subname) end |