diff --git a/garden.lua b/garden.lua index 2e4b7fb..4abd8ff 100644 --- a/garden.lua +++ b/garden.lua @@ -1,8 +1,8 @@ local fences = { -- name, desc, item, img - {"wood", "Wood", "group:wood", ""}, - {"red_wood", "Wood w Red Stain", "group:wood", "^myfences_red.png"}, - {"white_wood", "Wood w White Stain", "group:wood", "^myfences_white.png"}, - {"green_wood", "Wood w Green Stain", "group:wood", "^myfences_green.png"}, + {"wood", "Wood", "group:wood", "", {choppy = 2, flammable = 1}}, + {"red_wood", "Red", "group:wood", "^myfences_red.png", {choppy = 2, flammable = 1,not_in_creative_inventory=1}}, + {"white_wood", "White", "group:wood", "^myfences_white.png",{choppy = 2, flammable = 1,not_in_creative_inventory=1}}, + {"green_wood", "Green", "group:wood", "^myfences_green.png",{choppy = 2, flammable = 1,not_in_creative_inventory=1}}, } for i in ipairs(fences) do @@ -10,6 +10,7 @@ for i in ipairs(fences) do local desc = fences[i][2] local item = fences[i][3] local stain = fences[i][4] + local gro = fences[i][5] minetest.register_node("myfences:fence_garden_"..name, { @@ -43,7 +44,7 @@ minetest.register_node("myfences:fence_garden_"..name, { {-0.5,-0.5,0.25,0.5,0.5,0.5}, } }, - groups = {choppy = 2, flammable = 1}, + groups = gro, sounds = default.node_sound_stone_defaults(), }) @@ -71,7 +72,6 @@ minetest.register_node("myfences:fence_garden_"..name.."_corner", { {-0.5, 0.0625, 0.4375, 0.5, 0.25, 0.5}, {-0.5, 0.3125, 0.4375, 0.5, 0.5, 0.5}, - --{0.1875, -0.5, 0.375, 0.4375, 0.5, 0.5}, {0.1875, -0.5, -0.5, 0.4375, 0.5, -0.375}, {0.4375, -0.4375, -0.5, 0.5, -0.25, 0.5}, {0.4375, -0.1875, -0.5, 0.5, 0, 0.5}, @@ -86,7 +86,21 @@ minetest.register_node("myfences:fence_garden_"..name.."_corner", { {0.25,-0.5,-0.5,0.5,0.5,0.5}, } }, - groups = {choppy = 2, flammable = 1}, + groups = gro, sounds = default.node_sound_stone_defaults(), }) end + +minetest.register_craft({ + output = "myfences:fence_garden_wood", + recipe = { + {"","",""}, + {"myfences:board","myfences:board","myfences:board"}, + {"default:wood","myfences:board","default:wood"}, + } +}) +minetest.register_craft({ + type = "shapeless", + output = "myfences:fence_garden_wood_corner", + recipe = {"myfences:fence_garden_wood","myfences:fence_garden_wood"}, +}) diff --git a/init.lua b/init.lua index 97759c3..83dbc24 100644 --- a/init.lua +++ b/init.lua @@ -3,3 +3,14 @@ dofile(minetest.get_modpath("myfences").."/picket.lua") dofile(minetest.get_modpath("myfences").."/privacy.lua") dofile(minetest.get_modpath("myfences").."/garden.lua") dofile(minetest.get_modpath("myfences").."/post.lua") +dofile(minetest.get_modpath("myfences").."/paint.lua") + +minetest.register_craftitem("myfences:board", { + description = "Default Board", + inventory_image = "myfences_board.png", +}) +minetest.register_craft({ + type = "shapeless", + output = "myfences:board 4", + recipe = {"group:wood","group:wood"}, +}) diff --git a/models/myfences_can.obj b/models/myfences_can.obj new file mode 100644 index 0000000..4bbb61d --- /dev/null +++ b/models/myfences_can.obj @@ -0,0 +1,106 @@ +# Blender v2.77 (sub 0) OBJ File: '' +# www.blender.org +o Cylinder +v -0.000000 -0.500000 0.250000 +v -0.000000 0.000000 0.250000 +v -0.125000 -0.500000 0.216506 +v -0.125000 0.000000 0.216506 +v -0.216506 -0.500000 0.125000 +v -0.216506 0.000000 0.125000 +v -0.250000 -0.500000 0.000000 +v -0.250000 0.000000 0.000000 +v -0.216506 -0.500000 -0.125000 +v -0.216506 0.000000 -0.125000 +v -0.125000 -0.500000 -0.216506 +v -0.125000 0.000000 -0.216506 +v -0.000000 -0.500000 -0.250000 +v -0.000000 0.000000 -0.250000 +v 0.125000 -0.500000 -0.216506 +v 0.125000 0.000000 -0.216506 +v 0.216506 -0.500000 -0.125000 +v 0.216506 0.000000 -0.125000 +v 0.250000 -0.500000 -0.000000 +v 0.250000 0.000000 -0.000000 +v 0.216506 -0.500000 0.125000 +v 0.216506 0.000000 0.125000 +v 0.125000 -0.500000 0.216506 +v 0.125000 0.000000 0.216506 +vt 0.999881 0.000119 +vt 0.999881 0.322018 +vt 0.916568 0.322018 +vt 0.916567 0.000119 +vt 0.833254 0.322018 +vt 0.833254 0.000119 +vt 0.749941 0.322018 +vt 0.749940 0.000119 +vt 0.666627 0.322018 +vt 0.666627 0.000119 +vt 0.583314 0.322018 +vt 0.583313 0.000119 +vt 0.500000 0.322018 +vt 0.500000 0.000119 +vt 0.416687 0.322018 +vt 0.416686 0.000119 +vt 0.333373 0.322018 +vt 0.333373 0.000119 +vt 0.250060 0.322018 +vt 0.250060 0.000119 +vt 0.166746 0.322018 +vt 0.166746 0.000119 +vt 0.114068 0.633186 +vt 0.041916 0.591529 +vt 0.000260 0.519378 +vt 0.000260 0.436064 +vt 0.041916 0.363912 +vt 0.114068 0.322256 +vt 0.197381 0.322256 +vt 0.269533 0.363912 +vt 0.311190 0.436064 +vt 0.311190 0.519377 +vt 0.269533 0.591529 +vt 0.197381 0.633186 +vt 0.083433 0.322018 +vt 0.083433 0.000119 +vt 0.000119 0.322018 +vt 0.000119 0.000119 +vt 0.197241 0.322256 +vt 0.269392 0.363913 +vt 0.311049 0.436064 +vt 0.311049 0.519378 +vt 0.269392 0.591529 +vt 0.197241 0.633186 +vt 0.113927 0.633186 +vt 0.041776 0.591529 +vt 0.000119 0.519377 +vt 0.000119 0.436064 +vt 0.041776 0.363912 +vt 0.113927 0.322256 +vn -0.258800 0.000000 0.965900 +vn -0.707100 0.000000 0.707100 +vn -0.965900 0.000000 0.258800 +vn -0.965900 0.000000 -0.258800 +vn -0.707100 0.000000 -0.707100 +vn -0.258800 0.000000 -0.965900 +vn 0.258800 0.000000 -0.965900 +vn 0.707100 0.000000 -0.707100 +vn 0.965900 0.000000 -0.258800 +vn 0.965900 0.000000 0.258800 +vn 0.000000 1.000000 0.000000 +vn 0.707100 0.000000 0.707100 +vn 0.258800 0.000000 0.965900 +vn 0.000000 -1.000000 0.000000 +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 3/4/2 4/3/2 6/5/2 5/6/2 +f 5/6/3 6/5/3 8/7/3 7/8/3 +f 7/8/4 8/7/4 10/9/4 9/10/4 +f 9/10/5 10/9/5 12/11/5 11/12/5 +f 11/12/6 12/11/6 14/13/6 13/14/6 +f 13/14/7 14/13/7 16/15/7 15/16/7 +f 15/16/8 16/15/8 18/17/8 17/18/8 +f 17/18/9 18/17/9 20/19/9 19/20/9 +f 19/20/10 20/19/10 22/21/10 21/22/10 +f 4/23/11 2/24/11 24/25/11 22/26/11 20/27/11 18/28/11 16/29/11 14/30/11 12/31/11 10/32/11 8/33/11 6/34/11 +f 21/22/12 22/21/12 24/35/12 23/36/12 +f 23/36/13 24/35/13 2/37/13 1/38/13 +f 1/39/14 3/40/14 5/41/14 7/42/14 9/43/14 11/44/14 13/45/14 15/46/14 17/47/14 19/48/14 21/49/14 23/50/14 diff --git a/paint.lua b/paint.lua new file mode 100644 index 0000000..2f3f073 --- /dev/null +++ b/paint.lua @@ -0,0 +1,163 @@ +myfences_paint = none +local paintcount = 0 +local colors = { + {"Red","red"}, + {"Green","green"}, + {"White","white"}, + } +for i in ipairs(colors) do + local des = colors[i][1] + local col = colors[i][2] + +for nu = 1,4 do + local num = nu + + +minetest.register_tool("myfences:fence_brush", { + description = "Fence Brush", + inventory_image = "myfences_paint_brush.png", + on_use = function(itemstack, user, pointed_thing) + + if pointed_thing.type ~= "node" then + return + end + + local pos = pointed_thing.under + local node = minetest.get_node(pos) + + if node.name == "myfences:paint_green" then + myfences_paint = "green" + paintcount = 3 + elseif node.name == "myfences:paint_red" then + myfences_paint = "red" + paintcount = 3 + elseif node.name == "myfences:paint_white" then + myfences_paint = "white" + paintcount = 3 + end + if myfences_paint == nil then + return + end + if paintcount ~= 0 then + + if node.name == "myfences:corner_post_wood" or + node.name == "myfences:corner_post_red_wood" or + node.name == "myfences:corner_post_white_wood" or + node.name == "myfences:corner_post_green_wood" then + minetest.set_node(pos,{name = "myfences:corner_post_"..myfences_paint.."_wood", param2=node.param2}) + paintcount = paintcount - 1 + end + + if node.name == "myfences:fence_picket_wood" or + node.name == "myfences:fence_picket_red_wood" or + node.name == "myfences:fence_picket_white_wood" or + node.name == "myfences:fence_picket_green_wood" then + minetest.set_node(pos,{name = "myfences:fence_picket_"..myfences_paint.."_wood", param2=node.param2}) + paintcount = paintcount - 1 + end + + if node.name == "myfences:fence_picket_wood_corner" or + node.name == "myfences:fence_picket_red_wood_corner" or + node.name == "myfences:fence_picket_white_wood_corner" or + node.name == "myfences:fence_picket_green_wood_corner" then + minetest.set_node(pos,{name = "myfences:fence_picket_"..myfences_paint.."_wood_corner", param2=node.param2}) + paintcount = paintcount - 1 + end + + if node.name == "myfences:fence_picketb_wood" or + node.name == "myfences:fence_picketb_red_wood" or + node.name == "myfences:fence_picketb_white_wood" or + node.name == "myfences:fence_picketb_green_wood" then + minetest.set_node(pos,{name = "myfences:fence_picketb_"..myfences_paint.."_wood", param2=node.param2}) + paintcount = paintcount - 1 + end + + if node.name == "myfences:fence_picketb_wood_corner" or + node.name == "myfences:fence_picketb_red_wood_corner" or + node.name == "myfences:fence_picketb_white_wood_corner" or + node.name == "myfences:fence_picketb_green_wood_corner" then + minetest.set_node(pos,{name = "myfences:fence_picketb_"..myfences_paint.."_wood_corner", param2=node.param2}) + paintcount = paintcount - 1 + end + + if node.name == "myfences:fence_garden_wood" or + node.name == "myfences:fence_garden_red_wood" or + node.name == "myfences:fence_garden_white_wood" or + node.name == "myfences:fence_garden_green_wood" then + minetest.set_node(pos,{name = "myfences:fence_garden_"..myfences_paint.."_wood", param2=node.param2}) + paintcount = paintcount - 1 + end + + if node.name == "myfences:fence_garden_wood_corner" or + node.name == "myfences:fence_garden_red_wood_corner" or + node.name == "myfences:fence_garden_white_wood_corner" or + node.name == "myfences:fence_garden_green_wood_corner" then + minetest.set_node(pos,{name = "myfences:fence_garden_"..myfences_paint.."_wood_corner", param2=node.param2}) + paintcount = paintcount - 1 + end + + if node.name == "myfences:fence_privacy_wood" or + node.name == "myfences:fence_privacy_red_wood" or + node.name == "myfences:fence_privacy_white_wood" or + node.name == "myfences:fence_privacy_green_wood" then + minetest.set_node(pos,{name = "myfences:fence_privacy_"..myfences_paint.."_wood", param2=node.param2}) + paintcount = paintcount - 1 + end + + if node.name == "myfences:fence_privacy_wood_corner" or + node.name == "myfences:fence_privacy_red_wood_corner" or + node.name == "myfences:fence_privacy_white_wood_corner" or + node.name == "myfences:fence_privacy_green_wood_corner" then + minetest.set_node(pos,{name = "myfences:fence_privacy_"..myfences_paint.."_wood_corner", param2=node.param2}) + paintcount = paintcount - 1 + end + end +end +}) +minetest.register_node("myfences:paint_"..col, { + description = des.." Paint", + drawtype = "mesh", + paramtype = "light", + mesh = "myfences_can.obj", + tiles = {"myfences_paint_"..col..".png"}, + groups = {oddly_breakable_by_hand = 1}, + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0., 0.25}, + } + }, +}) + +minetest.register_craft({ + output = "myfences:paint_"..col, + recipe = { + {"bucket:bucket_water","dye:"..col} + }, + replacements = {{"bucket:bucket_water","bucket:bucket_empty"}}, +}) +end +end + +minetest.register_craftitem("myfences:paint_brush_bristles",{ + description = "Paint Brush Bristles", + inventory_image = "myfences_paint_brush_bristles.png", + stack_max = 1, + +}) +minetest.register_craft({ + output = 'myfences:paint_brush_bristles', + recipe = { + {'wool:white'}, + } +}) +minetest.register_craft({ + output = 'myfences:fence_brush', + recipe = { + {'myfences:paint_brush_bristles'}, + {'group:stick'}, + } +}) + + + diff --git a/picket.lua b/picket.lua index 9f39edf..383a780 100644 --- a/picket.lua +++ b/picket.lua @@ -1,8 +1,8 @@ local fences = { -- name, desc, item, img - {"wood", "Wood", "group:wood", ""}, - {"red_wood", "Wood w Red Stain", "group:wood", "^myfences_red.png"}, - {"white_wood", "Wood w White Stain", "group:wood", "^myfences_white.png"}, - {"green_wood", "Wood w Green Stain", "group:wood", "^myfences_green.png"}, + {"wood", "Wood", "group:wood", "", {choppy = 2, flammable = 1}}, + {"red_wood", "Red", "group:wood", "^myfences_red.png", {choppy = 2, flammable = 1,not_in_creative_inventory=1}}, + {"white_wood", "White", "group:wood", "^myfences_white.png",{choppy = 2, flammable = 1,not_in_creative_inventory=1}}, + {"green_wood", "Green", "group:wood", "^myfences_green.png",{choppy = 2, flammable = 1,not_in_creative_inventory=1}}, } for i in ipairs(fences) do @@ -10,6 +10,7 @@ for i in ipairs(fences) do local desc = fences[i][2] local item = fences[i][3] local stain = fences[i][4] + local gro = fences[i][5] minetest.register_node("myfences:fence_picketb_"..name, { @@ -46,7 +47,7 @@ minetest.register_node("myfences:fence_picketb_"..name, { } }, - groups = {cracky = 2}, + groups = gro, sounds = default.node_sound_stone_defaults(), }) @@ -92,7 +93,7 @@ minetest.register_node("myfences:fence_picket_"..name, { } }, - groups = {choppy = 2, flammable = 1}, + groups = gro, sounds = default.node_sound_stone_defaults(), }) @@ -156,7 +157,7 @@ minetest.register_node("myfences:fence_picket_"..name.."_corner", { } }, - groups = {choppy = 2, flammable = 1}, + groups = gro, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("myfences:fence_picketb_"..name.."_corner", { @@ -203,7 +204,33 @@ minetest.register_node("myfences:fence_picketb_"..name.."_corner", { } }, - groups = {cracky = 2}, + groups = gro, sounds = default.node_sound_stone_defaults(), }) end +minetest.register_craft({ + output = "myfences:fence_picket_wood", + recipe = { + {"","myfences:board",""}, + {"myfences:board","myfences:board","myfences:board"}, + {"myfences:board","myfences:board","myfences:board"}, + } +}) +minetest.register_craft({ + output = "myfences:fence_picketb_wood", + recipe = { + {"","",""}, + {"myfences:board","myfences:board","myfences:board"}, + {"myfences:board","myfences:board","myfences:board"}, + } +}) +minetest.register_craft({ + type = "shapeless", + output = "myfences:fence_picket_wood_corner", + recipe = {"myfences:fence_picket_wood","myfences:fence_picket_wood"}, +}) +minetest.register_craft({ + type = "shapeless", + output = "myfences:fence_picketb_wood_corner", + recipe = {"myfences:fence_picketb_wood","myfences:fence_picketb_wood"}, +}) diff --git a/post.lua b/post.lua index a33d01f..82d0211 100644 --- a/post.lua +++ b/post.lua @@ -1,8 +1,8 @@ local fences = { -- name, desc, item, img - {"wood", "Wood", "group:wood", ""}, - {"red_wood", "Wood w Red Stain", "group:wood", "^myfences_red.png"}, - {"white_wood", "Wood w White Stain", "group:wood", "^myfences_white.png"}, - {"green_wood", "Wood w Green Stain", "group:wood", "^myfences_green.png"}, + {"wood", "Wood", "group:wood", "", {choppy = 2, flammable = 1}}, + {"red_wood", "Red", "group:wood", "^myfences_red.png", {choppy = 2, flammable = 1,not_in_creative_inventory=1}}, + {"white_wood", "White", "group:wood", "^myfences_white.png",{choppy = 2, flammable = 1,not_in_creative_inventory=1}}, + {"green_wood", "Green", "group:wood", "^myfences_green.png",{choppy = 2, flammable = 1,not_in_creative_inventory=1}}, } for i in ipairs(fences) do @@ -10,9 +10,10 @@ for i in ipairs(fences) do local desc = fences[i][2] local item = fences[i][3] local stain = fences[i][4] + local gro = fences[i][5] -minetest.register_node("myfences:coorner_post_"..name, { +minetest.register_node("myfences:corner_post_"..name, { description = desc.." Post", drawtype = "nodebox", tiles = { @@ -38,8 +39,16 @@ minetest.register_node("myfences:coorner_post_"..name, { {0.1875, -0.5, 0.1875, 0.5, 0.5, 0.5}, } }, - groups = {choppy = 2, flammable = 1}, + groups = gro, sounds = default.node_sound_stone_defaults(), }) end +minetest.register_craft({ + output = "myfences:corner_post_wood", + recipe = { + {"myfences:board"}, + {"myfences:board"}, + {"myfences:board"}, + } +}) diff --git a/privacy.lua b/privacy.lua index 92714f1..d1d0cfb 100644 --- a/privacy.lua +++ b/privacy.lua @@ -1,8 +1,8 @@ local fences = { -- name, desc, item, img - {"wood", "Wood", "group:wood", ""}, - {"red_wood", "Wood w Red Stain", "group:wood", "^myfences_red.png"}, - {"white_wood", "Wood w White Stain", "group:wood", "^myfences_white.png"}, - {"green_wood", "Wood w Green Stain", "group:wood", "^myfences_green.png"}, + {"wood", "Wood", "group:wood", "", {choppy = 2, flammable = 1}}, + {"red_wood", "Red", "group:wood", "^myfences_red.png", {choppy = 2, flammable = 1,not_in_creative_inventory=1}}, + {"white_wood", "White", "group:wood", "^myfences_white.png",{choppy = 2, flammable = 1,not_in_creative_inventory=1}}, + {"green_wood", "Green", "group:wood", "^myfences_green.png",{choppy = 2, flammable = 1,not_in_creative_inventory=1}}, } for i in ipairs(fences) do @@ -10,6 +10,7 @@ for i in ipairs(fences) do local desc = fences[i][2] local item = fences[i][3] local stain = fences[i][4] + local gro = fences[i][5] minetest.register_node("myfences:fence_privacy_"..name, { @@ -44,7 +45,7 @@ minetest.register_node("myfences:fence_privacy_"..name, { {-0.5,-0.5,0.25,0.5,0.5,0.5}, } }, - groups = {choppy = 2, flammable = 1}, + groups = gro, sounds = default.node_sound_stone_defaults(), }) @@ -73,7 +74,6 @@ minetest.register_node("myfences:fence_privacy_"..name.."_corner", { {-0.1458, -0.5, 0.4375, 0.1458, 0.5, 0.5}, {0.1772, -0.5, 0.4375, 0.4896, 0.5, 0.5}, - --{0.1875, -0.5, 0.375, 0.4375, 0.5, 0.5}, {0.1875, -0.5, -0.5, 0.4375, 0.5, -0.375}, {0.3125, -0.375, -0.375, 0.4375, -0.1875, 0.375}, {0.3125, 0.1875, -0.375, 0.4375, 0.375, 0.375}, @@ -89,7 +89,20 @@ minetest.register_node("myfences:fence_privacy_"..name.."_corner", { {0.25,-0.5,-0.5,0.5,0.5,0.5}, } }, - groups = {choppy = 2, flammable = 1}, + groups = gro, sounds = default.node_sound_stone_defaults(), }) end +minetest.register_craft({ + output = "myfences:fence_privacy_wood", + recipe = { + {"","",""}, + {"default:wood","myfences:board","myfences:board"}, + {"default:wood","myfences:board","myfences:board"}, + } +}) +minetest.register_craft({ + type = "shapeless", + output = "myfences:fence_privacy_wood_corner", + recipe = {"myfences:fence_privacy_wood","myfences:fence_privacy_wood"}, +}) diff --git a/textures/myfences_board.png b/textures/myfences_board.png new file mode 100644 index 0000000..dfa3813 Binary files /dev/null and b/textures/myfences_board.png differ diff --git a/textures/myfences_paint_brush.png b/textures/myfences_paint_brush.png new file mode 100644 index 0000000..195e282 Binary files /dev/null and b/textures/myfences_paint_brush.png differ diff --git a/textures/myfences_paint_brush_bristles.png b/textures/myfences_paint_brush_bristles.png new file mode 100644 index 0000000..f9e8d82 Binary files /dev/null and b/textures/myfences_paint_brush_bristles.png differ diff --git a/textures/myfences_paint_green.png b/textures/myfences_paint_green.png new file mode 100644 index 0000000..8e0c284 Binary files /dev/null and b/textures/myfences_paint_green.png differ diff --git a/textures/myfences_paint_red.png b/textures/myfences_paint_red.png new file mode 100644 index 0000000..6647174 Binary files /dev/null and b/textures/myfences_paint_red.png differ diff --git a/textures/myfences_paint_white.png b/textures/myfences_paint_white.png new file mode 100644 index 0000000..097ffdc Binary files /dev/null and b/textures/myfences_paint_white.png differ diff --git a/textures/paint.png b/textures/paint.png new file mode 100644 index 0000000..a5e0e5c Binary files /dev/null and b/textures/paint.png differ diff --git a/textures/paint.xcf b/textures/paint.xcf new file mode 100644 index 0000000..de043d9 Binary files /dev/null and b/textures/paint.xcf differ