diff --git a/crafts.lua b/crafts.lua index 9ef42d6e..27fb9591 100644 --- a/crafts.lua +++ b/crafts.lua @@ -1429,6 +1429,33 @@ minetest.register_craft( { -- doors +-- plain wood, non-windowed + +minetest.register_craft( { + output = "homedecor:door_wood_plain_bottom_left 2", + recipe = { + { "default:wood", "default:wood", "" }, + { "default:wood", "default:wood", "default:steel_ingot" }, + { "default:wood", "default:wood", "" }, + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:door_wood_plain_bottom_left", + recipe = { + "homedecor:door_wood_plain_bottom_right" + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "homedecor:door_wood_plain_bottom_right", + recipe = { + "homedecor:door_wood_plain_bottom_left" + }, +}) + -- fancy exterior minetest.register_craft( { diff --git a/door_wood_plain.lua b/door_wood_plain.lua new file mode 100644 index 00000000..2775a3ca --- /dev/null +++ b/door_wood_plain.lua @@ -0,0 +1,189 @@ +-- This file supplies plain, non-windowed doors. + +-- Left-opening + +minetest.register_node("homedecor:door_wood_plain_top_left", { + description = "wood/glass door top half", + drawtype = "nodebox", + tiles = { + "homedecor_door_wood_plain_tb.png", + "homedecor_door_wood_plain_tb.png", + "homedecor_door_wood_plain_lr.png", + "homedecor_door_wood_plain_lr.png", + "homedecor_door_wood_plain_right_top.png", + "homedecor_door_wood_plain_left_top.png", + }, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = {snappy=3, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 6/16, 0.5, 0.5, 8/16 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, 6/16, 0.5, 0.5, 8/16 } + }, + drop = "homedecor:door_wood_plain_bottom_left", + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if minetest.env:get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "homedecor:door_wood_plain_bottom_left" then + minetest.env:remove_node({x=pos.x, y=pos.y-1, z=pos.z}) + end + end, + on_punch = function(pos, node, puncher) + nfdir=node.param2-1 + if nfdir < 0 then nfdir = 3 end + minetest.env:add_node(pos, { name = "homedecor:door_wood_plain_top_right", param2=nfdir}) + minetest.env:add_node({x=pos.x, y=pos.y-1, z=pos.z}, { name = "homedecor:door_wood_plain_bottom_right", param2=nfdir}) + end +}) + +minetest.register_node("homedecor:door_wood_plain_bottom_left", { + description = "Wood and Glass Grid-Style Door", + drawtype = "nodebox", + tiles = { + "homedecor_door_wood_plain_tb.png", + "homedecor_door_wood_plain_tb.png", + "homedecor_door_wood_plain_lr.png", + "homedecor_door_wood_plain_lr.png", + "homedecor_door_wood_plain_right_bottom.png", + "homedecor_door_wood_plain_left_bottom.png", + }, + wield_image = "homedecor_door_wood_plain_left_inv.png", + inventory_image = "homedecor_door_wood_plain_left_inv.png", + wield_scale = {x=1,y=1,z=0.25}, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 6/16, 0.5, 0.5, 8/16 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, 6/16, 0.5, 0.5, 8/16 } + }, + on_place = function(itemstack, placer, pointed_thing) + fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local pos = pointed_thing.above + if minetest.env:get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then + minetest.chat_send_player( placer:get_player_name(), 'Not enough vertical space to place a door!' ) + return + end + minetest.env:add_node({x=pos.x, y=pos.y+1, z=pos.z}, { name = "homedecor:door_wood_plain_top_left", param2=fdir}) + return minetest.item_place(itemstack, placer, pointed_thing) + + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if minetest.env:get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "homedecor:door_wood_plain_top_left" then + minetest.env:remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + end + end, + on_punch = function(pos, node, puncher) + nfdir=node.param2-1 + if nfdir < 0 then nfdir = 3 end + minetest.env:add_node({x=pos.x, y=pos.y+1, z=pos.z}, { name = "homedecor:door_wood_plain_top_right", param2=nfdir}) + minetest.env:add_node(pos, { name = "homedecor:door_wood_plain_bottom_right", param2=nfdir}) + end +}) + +-- Right-opening + +minetest.register_node("homedecor:door_wood_plain_top_right", { + description = "wood/glass door top half", + drawtype = "nodebox", + tiles = { + "homedecor_door_wood_plain_tb.png", + "homedecor_door_wood_plain_tb.png", + "homedecor_door_wood_plain_lr.png", + "homedecor_door_wood_plain_lr.png", + "homedecor_door_wood_plain_left_top.png", + "homedecor_door_wood_plain_right_top.png", + }, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = {snappy=3, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 6/16, 0.5, 0.5, 8/16 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, 6/16, 0.5, 0.5, 8/16 } + }, + drop = "homedecor:door_wood_plain_bottom_left", + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if minetest.env:get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "homedecor:door_wood_plain_bottom_right" then + minetest.env:remove_node({x=pos.x, y=pos.y-1, z=pos.z}) + end + end, + on_punch = function(pos, node, puncher) + nfdir=node.param2+1 + if nfdir > 3 then nfdir = 0 end + minetest.env:add_node(pos, { name = "homedecor:door_wood_plain_top_left", param2=nfdir}) + minetest.env:add_node({x=pos.x, y=pos.y-1, z=pos.z}, { name = "homedecor:door_wood_plain_bottom_left", param2=nfdir}) + end +}) + +minetest.register_node("homedecor:door_wood_plain_bottom_right", { + description = "Wood and Glass Grid-Style Door (Right-opening)", + drawtype = "nodebox", + tiles = { + "homedecor_door_wood_plain_tb.png", + "homedecor_door_wood_plain_tb.png", + "homedecor_door_wood_plain_lr.png", + "homedecor_door_wood_plain_lr.png", + "homedecor_door_wood_plain_left_bottom.png", + "homedecor_door_wood_plain_right_bottom.png", + }, + wield_image = "homedecor_door_wood_plain_right_inv.png", + inventory_image = "homedecor_door_wood_plain_right_inv.png", + wield_scale = {x=1,y=1,z=0.25}, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, 6/16, 0.5, 0.5, 8/16 } + }, + node_box = { + type = "fixed", + fixed = { -0.5, -0.5, 6/16, 0.5, 0.5, 8/16 } + }, + drop = "homedecor:door_wood_plain_bottom_left", + on_place = function(itemstack, placer, pointed_thing) + fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local pos = pointed_thing.above + if minetest.env:get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then + minetest.chat_send_player( placer:get_player_name(), 'Not enough vertical space to place a door!' ) + return + end + minetest.env:add_node({x=pos.x, y=pos.y+1, z=pos.z}, { name = "homedecor:door_wood_plain_top_right", param2=fdir}) + return minetest.item_place(itemstack, placer, pointed_thing) + + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if minetest.env:get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "homedecor:door_wood_plain_top_right" then + minetest.env:remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + end + end, + on_punch = function(pos, node, puncher) + nfdir=node.param2+1 + if nfdir > 3 then nfdir = 0 end + minetest.env:add_node({x=pos.x, y=pos.y+1, z=pos.z}, { name = "homedecor:door_wood_plain_top_left", param2=nfdir}) + minetest.env:add_node(pos, { name = "homedecor:door_wood_plain_bottom_left", param2=nfdir}) + end +}) + diff --git a/init.lua b/init.lua index a09e6268..a192a899 100644 --- a/init.lua +++ b/init.lua @@ -11,6 +11,7 @@ -- License: LGPL -- +dofile(minetest.get_modpath("homedecor").."/door_wood_plain.lua") dofile(minetest.get_modpath("homedecor").."/door_glass.lua") dofile(minetest.get_modpath("homedecor").."/door_glass_and_wood.lua") dofile(minetest.get_modpath("homedecor").."/door_glass_and_wood_mahogany.lua") diff --git a/textures/homedecor_door_wood_plain_left_bottom.png b/textures/homedecor_door_wood_plain_left_bottom.png new file mode 100644 index 00000000..17fbd52d Binary files /dev/null and b/textures/homedecor_door_wood_plain_left_bottom.png differ diff --git a/textures/homedecor_door_wood_plain_left_inv.png b/textures/homedecor_door_wood_plain_left_inv.png new file mode 100644 index 00000000..0e2ec8eb Binary files /dev/null and b/textures/homedecor_door_wood_plain_left_inv.png differ diff --git a/textures/homedecor_door_wood_plain_left_top.png b/textures/homedecor_door_wood_plain_left_top.png new file mode 100644 index 00000000..234a0cee Binary files /dev/null and b/textures/homedecor_door_wood_plain_left_top.png differ diff --git a/textures/homedecor_door_wood_plain_lr.png b/textures/homedecor_door_wood_plain_lr.png new file mode 100644 index 00000000..13ea2138 Binary files /dev/null and b/textures/homedecor_door_wood_plain_lr.png differ diff --git a/textures/homedecor_door_wood_plain_right_bottom.png b/textures/homedecor_door_wood_plain_right_bottom.png new file mode 100644 index 00000000..271a6e63 Binary files /dev/null and b/textures/homedecor_door_wood_plain_right_bottom.png differ diff --git a/textures/homedecor_door_wood_plain_right_inv.png b/textures/homedecor_door_wood_plain_right_inv.png new file mode 100644 index 00000000..aa9eb570 Binary files /dev/null and b/textures/homedecor_door_wood_plain_right_inv.png differ diff --git a/textures/homedecor_door_wood_plain_right_top.png b/textures/homedecor_door_wood_plain_right_top.png new file mode 100644 index 00000000..8d0e7f5e Binary files /dev/null and b/textures/homedecor_door_wood_plain_right_top.png differ diff --git a/textures/homedecor_door_wood_plain_tb.png b/textures/homedecor_door_wood_plain_tb.png new file mode 100644 index 00000000..536b315e Binary files /dev/null and b/textures/homedecor_door_wood_plain_tb.png differ