aboutsummaryrefslogtreecommitdiff
path: root/stairsplus/microblocks.lua
diff options
context:
space:
mode:
authorCalinou <calinou@opmbx.org>2014-03-09 10:38:18 +0100
committerCalinou <calinou@opmbx.org>2014-03-09 10:38:18 +0100
commit8337a6c192b9961f8947767690c13951696c3c1e (patch)
tree77908db80dd8f13b494030203be725e03f96bea8 /stairsplus/microblocks.lua
parent396945ed3eaf43404bd117bbf4820ce08584cc4e (diff)
downloadmoreblocks-8337a6c192b9961f8947767690c13951696c3c1e.tar.gz
moreblocks-8337a6c192b9961f8947767690c13951696c3c1e.tar.bz2
moreblocks-8337a6c192b9961f8947767690c13951696c3c1e.zip
Merge ShadowNinja's rewrite.
Diffstat (limited to 'stairsplus/microblocks.lua')
-rw-r--r--stairsplus/microblocks.lua186
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