aboutsummaryrefslogtreecommitdiff
path: root/stairsplus/stairs.lua
diff options
context:
space:
mode:
authorCalinou <calinou9999spam@gmail.com>2013-07-11 20:33:02 +0200
committerCalinou <calinou9999spam@gmail.com>2013-07-11 20:33:02 +0200
commit85aea72376f98a8fc17c3f109a4dd0d987c2b6eb (patch)
treeb92b414a4c474f5a13ef364e044840a4b3a1f288 /stairsplus/stairs.lua
parentf9bddb6dda60cda59667ef600e570f5774efe6cf (diff)
downloadmoreblocks-85aea72376f98a8fc17c3f109a4dd0d987c2b6eb.tar.gz
moreblocks-85aea72376f98a8fc17c3f109a4dd0d987c2b6eb.tar.bz2
moreblocks-85aea72376f98a8fc17c3f109a4dd0d987c2b6eb.zip
More Blocks
Diffstat (limited to 'stairsplus/stairs.lua')
-rw-r--r--stairsplus/stairs.lua248
1 files changed, 248 insertions, 0 deletions
diff --git a/stairsplus/stairs.lua b/stairsplus/stairs.lua
new file mode 100644
index 0000000..ae06e73
--- /dev/null
+++ b/stairsplus/stairs.lua
@@ -0,0 +1,248 @@
+-- Load translation library if intllib is installed
+
+local S
+if (minetest.get_modpath("intllib")) then
+ dofile(minetest.get_modpath("intllib").."/intllib.lua")
+ S = intllib.Getter(minetest.get_current_modname())
+ else
+ S = function ( s ) return s end
+end
+
+-- Node will be called <modname>:stair_<subname>
+
+function register_stair(modname, subname, recipeitem, groups, images, description, drop, light)
+
+ minetest.register_node(":" .. modname .. ":stair_" .. subname, {
+ description = S("%s Stairs"):format(S(description)),
+ drawtype = "nodebox",
+ tiles = images,
+ light_source = light,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ groups = groups,
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ {-0.5, 0, 0, 0.5, 0.5, 0.5},
+ },
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ {-0.5, 0, 0, 0.5, 0.5, 0.5},
+ },
+ },
+ sounds = default.node_sound_stone_defaults(),
+ on_place = function(itemstack, placer, pointed_thing)
+ local keys=placer:get_player_control()
+ stairsplus_rotate_and_place(itemstack, placer, pointed_thing, keys["sneak"])
+ return itemstack
+ end
+ })
+
+ minetest.register_node(":stairs:stair_" .. subname, {
+ description = S("%s Stairs"):format(S(description)),
+ drawtype = "nodebox",
+ tiles = images,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ groups = {cracky=3, not_in_creative_inventory=1},
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ {-0.5, 0, 0, 0.5, 0.5, 0.5},
+ },
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ {-0.5, 0, 0, 0.5, 0.5, 0.5},
+ },
+ },
+ sounds = default.node_sound_stone_defaults(),
+ on_place = function(itemstack, placer, pointed_thing)
+ local keys=placer:get_player_control()
+ stairsplus_rotate_and_place(itemstack, placer, pointed_thing, keys["sneak"])
+ return itemstack
+ end
+ })
+
+ minetest.register_node(":" .. modname .. ":stair_" .. subname .. "_half", {
+ description = S("%s Stairs"):format(S(description)),
+ drawtype = "nodebox",
+ tiles = images,
+ light_source = light,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ groups = groups,
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0, 0, 0.5},
+ {-0.5, 0, 0, 0, 0.5, 0.5},
+ },
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0, 0, 0.5},
+ {-0.5, 0, 0, 0, 0.5, 0.5},
+ },
+ },
+ sounds = default.node_sound_stone_defaults(),
+ on_place = function(itemstack, placer, pointed_thing)
+ local keys=placer:get_player_control()
+ stairsplus_rotate_and_place(itemstack, placer, pointed_thing, keys["sneak"])
+ return itemstack
+ end
+ })
+
+ minetest.register_node(":"..modname .. ":stair_" .. subname .. "_right_half", {
+ description = S("%s Stairs"):format(S(description)),
+ drawtype = "nodebox",
+ tiles = images,
+ light_source = light,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ groups = groups,
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {0, -0.5, -0.5, 0.5, 0, 0.5},
+ {0, 0, 0, 0.5, 0.5, 0.5},
+ },
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = {
+ {0, -0.5, -0.5, 0.5, 0, 0.5},
+ {0, 0, 0, 0.5, 0.5, 0.5},
+ },
+ },
+ sounds = default.node_sound_stone_defaults(),
+ on_place = function(itemstack, placer, pointed_thing)
+ local keys=placer:get_player_control()
+ stairsplus_rotate_and_place(itemstack, placer, pointed_thing, keys["sneak"])
+ return itemstack
+ end
+ })
+
+ minetest.register_node(":"..modname .. ":stair_" .. subname .. "_inner", {
+ description = S("%s Stairs"):format(S(description)),
+ drawtype = "nodebox",
+ tiles = images,
+ light_source = light,
+ drop = modname .. ":stair_" .. drop .. "_inner",
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ groups = groups,
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ {-0.5, 0, 0, 0.5, 0.5, 0.5},
+ {-0.5, 0, -0.5, 0, 0.5, 0},
+ },
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ {-0.5, 0, 0, 0.5, 0.5, 0.5},
+ {-0.5, 0, -0.5, 0, 0.5, 0},
+ },
+ },
+ sounds = default.node_sound_stone_defaults(),
+ on_place = function(itemstack, placer, pointed_thing)
+ local keys=placer:get_player_control()
+ stairsplus_rotate_and_place(itemstack, placer, pointed_thing, keys["sneak"])
+ return itemstack
+ end
+ })
+
+ minetest.register_node(":"..modname .. ":stair_" .. subname .. "_outer", {
+ description = S("%s Stairs"):format(S(description)),
+ drawtype = "nodebox",
+ tiles = images,
+ light_source = light,
+ drop = modname .. ":stair_" .. drop .. "_outer",
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ groups = groups,
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ {-0.5, 0, 0, 0, 0.5, 0.5},
+ },
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ {-0.5, 0, 0, 0, 0.5, 0.5},
+ },
+ },
+ sounds = default.node_sound_stone_defaults(),
+ on_place = function(itemstack, placer, pointed_thing)
+ local keys=placer:get_player_control()
+ stairsplus_rotate_and_place(itemstack, placer, pointed_thing, keys["sneak"])
+ return itemstack
+ end
+ })
+
+ minetest.register_node(":" .. modname .. ":stair_" .. subname .. "_alt", {
+ description = S("%s Stairs"):format(S(description)),
+ drawtype = "nodebox",
+ tiles = images,
+ light_source = light,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ groups = groups,
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0},
+ {-0.5, 0, 0, 0.5, 0.5, 0.5},
+ },
+ },
+ sounds = default.node_sound_stone_defaults(),
+ on_place = function(itemstack, placer, pointed_thing)
+ local keys=placer:get_player_control()
+ stairsplus_rotate_and_place(itemstack, placer, pointed_thing, keys["sneak"])
+ return itemstack
+ end
+ })
+
+ -- Unregister default recipes
+
+ minetest.register_craft({
+ output = "moreblocks:nothing 1",
+ recipe = {
+ {recipeitem, "", ""},
+ {recipeitem, recipeitem, ""},
+ {recipeitem, recipeitem, recipeitem},
+ },
+ })
+
+ minetest.register_craft({
+ output = "moreblocks:nothing 1",
+ recipe = {
+ {"", "", recipeitem},
+ {"", recipeitem, recipeitem},
+ {recipeitem, recipeitem, recipeitem},
+ },
+ })
+end
+