summaryrefslogtreecommitdiff
path: root/nodes_roof.lua
diff options
context:
space:
mode:
authorSokomine <wegwerf@anarres.dyndns.org>2015-07-25 23:48:07 +0200
committerSokomine <wegwerf@anarres.dyndns.org>2015-07-25 23:48:07 +0200
commit42521c5f2b2943a2f656d2fdfdcb3be3c76fb8de (patch)
tree5ec3d0c9c3121b54c918761f81cbfe1e7f78a8da /nodes_roof.lua
parent46c6a4c47e1bbb0ad3cdbceab79a07ebd96d3d4f (diff)
added the files in the same state as they where in on random_buildings/cottages
Diffstat (limited to 'nodes_roof.lua')
-rw-r--r--nodes_roof.lua216
1 files changed, 216 insertions, 0 deletions
diff --git a/nodes_roof.lua b/nodes_roof.lua
new file mode 100644
index 0000000..7cecda5
--- /dev/null
+++ b/nodes_roof.lua
@@ -0,0 +1,216 @@
+-- Boilerplate to support localized strings if intllib mod is installed.
+local S
+if intllib then
+ S = intllib.Getter()
+else
+ S = function(s) return s end
+end
+
+---------------------------------------------------------------------------------------
+-- roof parts
+---------------------------------------------------------------------------------------
+-- a better roof than the normal stairs; can be replaced by stairs:stair_wood
+
+
+-- create the three basic roof parts plus receipes for them;
+cottages.register_roof = function( name, tiles, basic_material, homedecor_alternative )
+
+ minetest.register_node("cottages:roof_"..name, {
+ description = S("Roof "..name),
+ drawtype = "nodebox",
+ --tiles = {"default_tree.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","default_tree.png"},
+ tiles = tiles,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
+ 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},
+ },
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0},
+ {-0.5, 0, 0, 0.5, 0.5, 0.5},
+ },
+ },
+ is_ground_content = false,
+ })
+
+ -- a better roof than the normal stairs; this one is for usage directly on top of walls (it has the form of a stair)
+ minetest.register_node("cottages:roof_connector_"..name, {
+ description = S("Roof connector "..name),
+ drawtype = "nodebox",
+ -- top, bottom, side1, side2, inner, outer
+ --tiles = {"default_tree.png","default_wood.png","default_tree.png","default_tree.png","default_wood.png","default_tree.png"},
+ --tiles = {"darkage_straw.png","default_wood.png","darkage_straw.png","darkage_straw.png","darkage_straw.png","darkage_straw.png"},
+ tiles = tiles,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
+ 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},
+ },
+ },
+ is_ground_content = false,
+ })
+
+ -- this one is the slab version of the above roof
+ minetest.register_node("cottages:roof_flat_"..name, {
+ description = S("Roof (flat) "..name),
+ drawtype = "nodebox",
+ -- top, bottom, side1, side2, inner, outer
+ --tiles = {"default_tree.png","default_wood.png","default_tree.png","default_tree.png","default_wood.png","default_tree.png"},
+ -- this one is from all sides - except from the underside - of the given material
+ tiles = { tiles[1], tiles[2], tiles[1], tiles[1], tiles[1], tiles[1] };
+ paramtype = "light",
+ paramtype2 = "facedir",
+ groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ },
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ },
+ },
+ is_ground_content = false,
+ })
+
+
+ if( not( homedecor_alternative )
+ or ( minetest.get_modpath("homedecor") ~= nil )) then
+
+ minetest.register_craft({
+ output = "cottages:roof_"..name.." 6",
+ recipe = {
+ {'', '', basic_material },
+ {'', basic_material, '' },
+ {basic_material, '', '' }
+ }
+ })
+ end
+
+ -- make those roof parts that use homedecor craftable without that mod
+ if( homedecor_alternative ) then
+ basic_material = 'cottages:roof_wood';
+
+ minetest.register_craft({
+ output = "cottages:roof_"..name.." 3",
+ recipe = {
+ {homedecor_alternative, '', basic_material },
+ {'', basic_material, '' },
+ {basic_material, '', '' }
+ }
+ })
+ end
+
+
+ minetest.register_craft({
+ output = "cottages:roof_connector_"..name,
+ recipe = {
+ {'cottages:roof_'..name },
+ {'default:wood' },
+ }
+ })
+
+ minetest.register_craft({
+ output = "cottages:roof_flat_"..name..' 2',
+ recipe = {
+ {'cottages:roof_'..name, 'cottages:roof_'..name },
+ }
+ })
+
+ -- convert flat roofs back to normal roofs
+ minetest.register_craft({
+ output = "cottages:roof_"..name,
+ recipe = {
+ {"cottages:roof_flat_"..name, "cottages:roof_flat_"..name }
+ }
+ })
+
+end -- of cottages.register_roof( name, tiles, basic_material )
+
+
+
+
+---------------------------------------------------------------------------------------
+-- add the diffrent roof types
+---------------------------------------------------------------------------------------
+cottages.register_roof( 'straw',
+ {"cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png"},
+ 'cottages:straw_mat', nil );
+cottages.register_roof( 'reet',
+ {"cottages_reet.png","cottages_reet.png","cottages_reet.png","cottages_reet.png","cottages_reet.png","cottages_reet.png"},
+ 'default:papyrus', nil );
+cottages.register_roof( 'wood',
+ {"default_tree.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","default_tree.png"},
+ 'default:wood', nil);
+cottages.register_roof( 'black',
+ {"cottages_homedecor_shingles_asphalt.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","cottages_homedecor_shingles_asphalt.png"},
+ 'homedecor:shingles_asphalt', 'default:coal_lump');
+cottages.register_roof( 'red',
+ {"cottages_homedecor_shingles_terracotta.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","cottages_homedecor_shingles_terracotta.png"},
+ 'homedecor:shingles_terracotta', 'default:clay_brick');
+cottages.register_roof( 'brown',
+ {"cottages_homedecor_shingles_wood.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","cottages_homedecor_shingles_wood.png"},
+ 'homedecor:shingles_wood', 'default:dirt');
+cottages.register_roof( 'slate',
+ {"cottages_slate.png","default_wood.png","cottages_slate.png","cottages_slate.png","default_wood.png","cottages_slate.png"},
+ 'default:stone', nil);
+
+
+---------------------------------------------------------------------------------------
+-- slate roofs are sometimes on vertical fronts of houses
+---------------------------------------------------------------------------------------
+minetest.register_node("cottages:slate_vertical", {
+ description = S("Vertical Slate"),
+ tiles = {"cottages_slate.png","default_wood.png","cottages_slate.png","cottages_slate.png","default_wood.png","cottages_slate.png"},
+ paramtype2 = "facedir",
+ groups = {cracky=2, stone=1},
+ sounds = default.node_sound_stone_defaults(),
+ is_ground_content = false,
+})
+
+
+minetest.register_craft({
+ output = "cottages:slate_vertical",
+ recipe = { {'default:stone', 'default:wood', '' }
+ }
+});
+
+---------------------------------------------------------------------------------------
+-- Reed might also be needed as a full block
+---------------------------------------------------------------------------------------
+minetest.register_node("cottages:reet", {
+ description = S("Reet for thatching"),
+ tiles = {"cottages_reet.png"},
+ groups = {snappy=3,choppy=3,oddly_breakable_by_hand=3,flammable=3},
+ sounds = default.node_sound_wood_defaults(),
+ is_ground_content = false,
+})
+
+
+minetest.register_craft({
+ output = "cottages:reet",
+ recipe = { {'default:papyrus','default:papyrus'},
+ {'default:papyrus','default:papyrus'},
+ },
+})