From 803f24ba358ff8934340612b6b77ece34abe90fc Mon Sep 17 00:00:00 2001 From: DonBatman Date: Wed, 16 Mar 2016 11:13:00 -0700 Subject: [PATCH] Added crafting and paint --- garden.lua | 28 +++- init.lua | 11 ++ models/myfences_can.obj | 106 ++++++++++++++ paint.lua | 163 +++++++++++++++++++++ picket.lua | 43 +++++- post.lua | 21 ++- privacy.lua | 27 +++- textures/myfences_board.png | Bin 0 -> 203 bytes textures/myfences_paint_brush.png | Bin 0 -> 722 bytes textures/myfences_paint_brush_bristles.png | Bin 0 -> 257 bytes textures/myfences_paint_green.png | Bin 0 -> 2255 bytes textures/myfences_paint_red.png | Bin 0 -> 2213 bytes textures/myfences_paint_white.png | Bin 0 -> 1772 bytes textures/paint.png | Bin 0 -> 2143 bytes textures/paint.xcf | Bin 0 -> 46633 bytes 15 files changed, 371 insertions(+), 28 deletions(-) create mode 100644 models/myfences_can.obj create mode 100644 paint.lua create mode 100644 textures/myfences_board.png create mode 100644 textures/myfences_paint_brush.png create mode 100644 textures/myfences_paint_brush_bristles.png create mode 100644 textures/myfences_paint_green.png create mode 100644 textures/myfences_paint_red.png create mode 100644 textures/myfences_paint_white.png create mode 100644 textures/paint.png create mode 100644 textures/paint.xcf 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 0000000000000000000000000000000000000000..dfa38138be8fe871608c634d86fd9eecc47cabbc GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY4R=;;&9qt8=v9|s5M-~s zu+F0~*?4ZHYiG7?vbR=ywynF;jORebj3q&S!3+-1Zlr-YN#5=*3>~bp9zYIffk$L9 z0|U1(2s1Lwnj--eWH0gbb!C6REWm4IJ+o_5Hc&{})5S4_<9c#}0=Gt^;|9a#g$oP? lB)E)bXoaeA0fBJ<8-wL67AfQB&HO;+44$rjF6*2UngG1@GCBYN literal 0 HcmV?d00001 diff --git a/textures/myfences_paint_brush.png b/textures/myfences_paint_brush.png new file mode 100644 index 0000000000000000000000000000000000000000..195e28271528d5fa336d8396510756aebfdf74cd GIT binary patch literal 722 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyR|9-PT!AzX7Z)!#H!lwl9}f>d z5b^Tz^YQWX^9%6t3Gnj^^6?1@2nY!Z3JD1b3kit`3W^8|i-?GbiHb@}Nc3`YPUPgA z%*i>8i)$7a*E}w+h1}drxVe{ebFb#+UdzqBk(+xP56@0s-o3oM2Y7jp@baGIVPN2`&grMY>94^V07ROcftsAbK%~VPqRknq!x;ud zx}4#b~FHu+IHg06QIZROM?7@fi%&8iJ47(>PJQf z2F6-X7srqa#v{FfMa>30thX6=C)jd7d2St2a_gSb&i@mcCM!0pKe4{_d|jA)zGS`U zq85wp|EDacEm(G}zMTKz8yQW;XZ3YErRFOsNeG>(IXe5m&R!O=8s1a9>!Y*QUXyL* zJ29*9c=p0c!S_YjCTxifxb&e?#7*PmChkbn?BEVf$(6eU8Z<8LdC}}!!Len>pPt?i zdp-E?RjE#2+Tp0sCB?IHQ$%`&!({=ZjR#s!^#lsvfBe6G^6Zm~O5aDyzu0%RT-YUj zue#;#NuLiKeLIuULDNd<`J|rR){leSRG6f_Ii-At>TJ MUHx3vIVCg!06C-ljQ{`u literal 0 HcmV?d00001 diff --git a/textures/myfences_paint_brush_bristles.png b/textures/myfences_paint_brush_bristles.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e8d82d88e9a583b377ce67fcbf9822b8055857 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyfdM`tt{2WtfFK1K84CjgZ*@*T z4NiXz&Hy0N~bp9zYIffk$L90|U1(2s1Lwnj--eWH0gb zb!C6REWpnx!E*bDKTt^1)5S5w;&gI?#4?AVt_G7hR)tI(E`>|Zv5dwd4?+$wu|An? dz}05Kz_5NFoA<`9f|Ec^44$rjF6*2UngEZLK@$J~ literal 0 HcmV?d00001 diff --git a/textures/myfences_paint_green.png b/textures/myfences_paint_green.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0c284277eddd3a9cdb5cbc8ed8c513f384b49d GIT binary patch literal 2255 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 literal 0 HcmV?d00001 diff --git a/textures/myfences_paint_white.png b/textures/myfences_paint_white.png new file mode 100644 index 0000000000000000000000000000000000000000..097ffdc73004ddd0613d7047b79e9c6f98d7b4f8 GIT binary patch literal 1772 zcmb_cc~BB)6#wwTbSd3HOcY(KNwPGxRKNriue>t1TrrO^&&)Dql|+G#&C0ZKOD$W= z&Ctpd%Cu1tS4G!r)ea9r%`>gUTM~t(X8+us-P!5AdGmhrX5Km9_q%e)!wIIQqXqzg zxj2&!0|1dj2vAj#yJN8r!{kmS*wu*yWS=#!w(y2LvLVLVHx2;x&7Tbda(>a42cZ-f zcL(UOqK2l?cK%J%W_jXS7n0rg)PaveztiwgUEW*SuC7!2w;6h&yfGTrsh4AW)bkyi zNTY?_DB(p^+U)kl&PMN%%x)6V&I@zMZ~gV93(q;o`uUrNp1$XC;bHK1VcYG?DUApSPy!l&`1wNr6=(o^ zpa4{X0bqi!1^!Q^^2RS4DOxN1H9B+L*cF4_pqlO(*&Ei=qJb z?J}Q0Dz=ABe!z~r;Ji{cX}hsT+%OV0w&O%bTB*5m`I~gG8q4g3k+MQF_)D( zcgavM*Gxl|SauMzTb!x?h`-vsv;?JjW9fo*e@`1zC1%(J>rR{5*nfG*9$s1>*$BMT9shN>X+i4=;zBWjxj~Y{Dvi$5SvqrPa=sRubQ!VB7 zc3`!B`bjntP5ao;i?mJDzL&liiz?&J#=a$AfW5aQ;jjV=(XIzq$h!R&N2%y3LBF%e zr(|0JXp_vwvI)k?Ua39&`b!LHQ$SSLhdBRtk{+uHBVqaMLVv~aaGRy}7w)D}4R)MX zbz-G*9>O@DD?1jl0{hVcSQZO3nhVpdp6V7ZbGI~XvfT+341l{+(9rXi8U5)9kkcy&cp{h7?kz{ipwq;~rbAIwNAzIxL8Y-gp~lalei`B`Cx{=>TOSY^0M z&CJ)ENTkNMLa2;xf`Y20EcHK&eQJJ1 z{OE|`m-01dCpa4BR*J7@_GC;-#}?4^x%sc}nbE(em0vYA#%ya=STWgt8v^&4s5Ws2F|T za{ZN|K3;a0u83k}g<8^eA(SHiM0Q%TbvULIEB^@0tu+3`-2+M3&2w?+7y04A5o0*W zudEvNE}lvS+&**JCx38B@~P1+1O*-7)C?-eC=m;aA;qj>{a5y^AdueoH3ZcQBhze<)W)g#?Ok(uYpDWRU6LE zdCzdIb=kt`J{pI?pIP(2w6LitgW;FzkH2eSQ~+v?lg&4u>9}eHlT%3yJ<)Q+4c#Ao yO5;2L1%FGD|3-I|lH$XU#0>_+s$a;NIW97F?d@%gUA!m-a&d9+Ae9~nI{zn93Az~o literal 0 HcmV?d00001 diff --git a/textures/paint.png b/textures/paint.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e0e5c9807a11be3c55487fe9ee4b339207ef2f GIT binary patch literal 2143 zcmb_dX;70{7X1=u0Fgy@(10LINJbhcn-QG^ z#U^Z`5Ktf>0|+q*i$DhuWJ!lTC}A-KP#{5qz{IJV`7_-$(^YeCy}GB)tM^XbTes@m zK8Jy8Y3OSJ0HB39yAi>ecfXQUi$S2>)FyZ6?l%6W-Gb()WTXgJm+xPvLLA$XX0Gpl3~--P^C$G!vym)~CF0kovUz zO1fIRhk8)GNd?FEO^gdJ@J=%&-=o1w>Hm8)eLfu2lUsJ8m2+J#9riP?%9e%SN`w=3 z1I}NjvlGz$-vOvf{r5lmFABdy{@*_>R+DDBe+spx?gkD3Q~&@2Qr}{3LMy`A3j7-# z5tB8;!OQH{8mG1N?Ga0NfV!KCZ9@y{(7({i1p&pTzIA-TiS-uHMe%IP6-4?#@Z)G~y64{)(9lu1a_a z?q-c@9tjIQh9Z?_=gvW~I=IXmN$;GTP@7ND4P!lR^DPi+MN$j%N%{S(Fq`R3(`l@E z*{r7rBUVmmUfES9zzykAHw{zQa>Qd&D3$cG!0}xY0Iu3Tbd8JPIOcDr!c~A-Ks#+^ zO8i!fvHogiyaH~m2X%adT{Ndh?`jRHgd;q|NF21~Nj?nSX_Vh0Y(-$S=;?|4zW4K9 z3~pNQsCer7@_D+)k7PGM{>c2bwD-@wi&7bvmTO>wUBzif9sAZRKiO~|=44P(7a?hL zAcR#7%)e)RZWv+ld-u_BDOp=-lQOymw1HRPcnY;ygxKr|?W}FAp+r0IxB{UmF!o1t zLkC$)IM5lTvk;!sHxI?iJ&fm>-0GZV{-W=dQY6C1XOa6=zf9jq%H%%JQjDDKyZ}3s zw}ZHG&}$CLBcRAJaiV_vQhpZ_fBKVfdpp~dVswZ~_Am2~WG8Ioz053$-snP;BJ72} z&-gbLk%khej*Lc6$=Z|hQ=cs@lKzxYxI448=VZD!WI{uVjuZe_kHxf9KIUDuI-8!eR|=KH>kne zt65>y5+wmhqx=cY)j_N2za+0Qr|^&2yt(Pnj$+;vJ4V-AKWb@>BG^s+Zm)`ZlTQr8 z%@jZ3E%HIGON|IjV*w{xmt6f?D6GZ!9Z)W7fjeaCM111$2AAMxhkk@B=;n})&KUIw zgz5l20I&Y$TDEo(ej%1-+wlD83Z=dm(v)obfpKDe=5It{{f7-CI$zI}nQqn+(m1HVq@FNYe1TTe%5;H{o5*xnxj-3#@WbJAeBv z8<1YCzZ5`XvXf5H#6o1;R+$diD(G?gWqNj_&Q?MV+Ar&aepy?T<<7kDNL> za{x$e^WPkvu0lw7aK6Li%!4;NDqe9yC+`5=#hHODSUhEX%@j6f1&Y0p4MI#$>%)De2*+fw7+5cV@qiz?YJPgfK9(YxrZ z(T_t`pds_liYHtLOujd-^?}b3I{_mJcjvV`SjZ3;JmZ5jo%ON@Pr~^b$XF8`)lS}X zSk^B$es_s=k{@Pn7N!<=@SL6K$rd?qd8glBff*7EgCLV_WDPmt54B^AJ}s=;QD;4M zR-3mM!M!fYK8F=_Hix Y9d7~^j(aHS-GDL>ZW!0fZ;7}50ZE^ks{jB1 literal 0 HcmV?d00001 diff --git a/textures/paint.xcf b/textures/paint.xcf new file mode 100644 index 0000000000000000000000000000000000000000..de043d9732258075e64784cdbed3ff3551384bf9 GIT binary patch literal 46633 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