From 35c5593a9f729538b9842a4fc77c783e456cd778 Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Mon, 17 Sep 2012 17:48:37 +0200 Subject: [PATCH] First commit --- README.txt | 46 ++ bananas.lua | 63 +++ cactus.lua | 22 + carrots.lua | 89 ++++ changelog.txt | 17 + cocoa.lua | 73 ++++ cotton.lua | 90 ++++ depends.txt | 3 + hoes.lua | 83 ++++ init.lua | 248 +++++++++++ oranges.lua | 89 ++++ papyrus.lua | 25 ++ potatoes.lua | 72 ++++ pumpkin.lua | 446 ++++++++++++++++++++ rhubarb.lua | 72 ++++ rubber.lua | 104 +++++ soil.lua | 45 ++ strawberries.lua | 89 ++++ textures/farming_banana.png | Bin 0 -> 515 bytes textures/farming_banana_leaves.png | Bin 0 -> 621 bytes textures/farming_banana_sapling.png | Bin 0 -> 647 bytes textures/farming_bread.png | Bin 0 -> 918 bytes textures/farming_bread_pumpkin.png | Bin 0 -> 511 bytes textures/farming_bucket_rubber.png | Bin 0 -> 317 bytes textures/farming_cake_mix.png | Bin 0 -> 343 bytes textures/farming_cake_mix_pumpkin.png | Bin 0 -> 343 bytes textures/farming_carrot.png | Bin 0 -> 575 bytes textures/farming_carrot_1.png | Bin 0 -> 438 bytes textures/farming_carrot_2.png | Bin 0 -> 453 bytes textures/farming_carrot_3.png | Bin 0 -> 507 bytes textures/farming_carrot_4.png | Bin 0 -> 550 bytes textures/farming_carrot_seed.png | Bin 0 -> 476 bytes textures/farming_cocoa.png | Bin 0 -> 535 bytes textures/farming_cocoa_bean.png | Bin 0 -> 184 bytes textures/farming_cocoa_sapling.png | Bin 0 -> 644 bytes textures/farming_cotton.png | Bin 0 -> 428 bytes textures/farming_cotton_1.png | Bin 0 -> 359 bytes textures/farming_cotton_2.png | Bin 0 -> 351 bytes textures/farming_cotton_seed.png | Bin 0 -> 280 bytes textures/farming_flour.png | Bin 0 -> 344 bytes textures/farming_hoe_steel.png | Bin 0 -> 338 bytes textures/farming_hoe_stone.png | Bin 0 -> 333 bytes textures/farming_hoe_wood.png | Bin 0 -> 325 bytes textures/farming_orange.png | Bin 0 -> 504 bytes textures/farming_orange_1.png | Bin 0 -> 430 bytes textures/farming_orange_2.png | Bin 0 -> 468 bytes textures/farming_orange_3.png | Bin 0 -> 544 bytes textures/farming_orange_4.png | Bin 0 -> 540 bytes textures/farming_orange_seed.png | Bin 0 -> 281 bytes textures/farming_potatoe.png | Bin 0 -> 525 bytes textures/farming_potatoe_1.png | Bin 0 -> 473 bytes textures/farming_potatoe_2.png | Bin 0 -> 502 bytes textures/farming_potatoe_3.png | Bin 0 -> 292 bytes textures/farming_potatoe_seed.png | Bin 0 -> 221 bytes textures/farming_pumpkin_big_side.png | Bin 0 -> 600 bytes textures/farming_pumpkin_big_top.png | Bin 0 -> 600 bytes textures/farming_pumpkin_big_top_corner.png | Bin 0 -> 289 bytes textures/farming_pumpkin_big_top_side.png | Bin 0 -> 378 bytes textures/farming_pumpkin_face.png | Bin 0 -> 622 bytes textures/farming_pumpkin_face_light.png | Bin 0 -> 632 bytes textures/farming_pumpkin_seed.png | Bin 0 -> 312 bytes textures/farming_pumpkin_side.png | Bin 0 -> 627 bytes textures/farming_pumpkin_top.png | Bin 0 -> 623 bytes textures/farming_rhubarb.png | Bin 0 -> 502 bytes textures/farming_rhubarb_1.png | Bin 0 -> 530 bytes textures/farming_rhubarb_2.png | Bin 0 -> 365 bytes textures/farming_rhubarb_3.png | Bin 0 -> 301 bytes textures/farming_rhubarb_seed.png | Bin 0 -> 219 bytes textures/farming_rubber_sapling.png | Bin 0 -> 333 bytes textures/farming_rubber_tree_empty.png | Bin 0 -> 835 bytes textures/farming_rubber_tree_full.png | Bin 0 -> 808 bytes textures/farming_scarecrow_front.png | Bin 0 -> 634 bytes textures/farming_scarecrow_front_light.png | Bin 0 -> 641 bytes textures/farming_scarecrow_side.png | Bin 0 -> 613 bytes textures/farming_scarecrow_top.png | Bin 0 -> 639 bytes textures/farming_soil.png | Bin 0 -> 947 bytes textures/farming_soil_wet.png | Bin 0 -> 880 bytes textures/farming_soil_wet_side.png | Bin 0 -> 867 bytes textures/farming_strawberry.png | Bin 0 -> 250 bytes textures/farming_strawberry_1.png | Bin 0 -> 356 bytes textures/farming_strawberry_2.png | Bin 0 -> 342 bytes textures/farming_strawberry_3.png | Bin 0 -> 357 bytes textures/farming_strawberry_4.png | Bin 0 -> 400 bytes textures/farming_strawberry_seed.png | Bin 0 -> 212 bytes textures/farming_string.png | Bin 0 -> 367 bytes textures/farming_tomato.png | Bin 0 -> 581 bytes textures/farming_tomato_1.png | Bin 0 -> 482 bytes textures/farming_tomato_2.png | Bin 0 -> 506 bytes textures/farming_tomato_3.png | Bin 0 -> 578 bytes textures/farming_tomato_4.png | Bin 0 -> 591 bytes textures/farming_tomato_seed.png | Bin 0 -> 221 bytes textures/farming_weed.png | Bin 0 -> 591 bytes textures/farming_wheat.png | Bin 0 -> 536 bytes textures/farming_wheat_1.png | Bin 0 -> 540 bytes textures/farming_wheat_2.png | Bin 0 -> 534 bytes textures/farming_wheat_3.png | Bin 0 -> 500 bytes textures/farming_wheat_harvested.png | Bin 0 -> 597 bytes textures/farming_wheat_seed.png | Bin 0 -> 286 bytes tomatoes.lua | 89 ++++ weed.lua | 39 ++ wheat.lua | 169 ++++++++ 101 files changed, 1973 insertions(+) create mode 100644 README.txt create mode 100644 bananas.lua create mode 100644 cactus.lua create mode 100644 carrots.lua create mode 100644 changelog.txt create mode 100644 cocoa.lua create mode 100644 cotton.lua create mode 100644 depends.txt create mode 100644 hoes.lua create mode 100644 init.lua create mode 100644 oranges.lua create mode 100644 papyrus.lua create mode 100644 potatoes.lua create mode 100644 pumpkin.lua create mode 100644 rhubarb.lua create mode 100644 rubber.lua create mode 100644 soil.lua create mode 100644 strawberries.lua create mode 100644 textures/farming_banana.png create mode 100644 textures/farming_banana_leaves.png create mode 100644 textures/farming_banana_sapling.png create mode 100644 textures/farming_bread.png create mode 100644 textures/farming_bread_pumpkin.png create mode 100644 textures/farming_bucket_rubber.png create mode 100644 textures/farming_cake_mix.png create mode 100644 textures/farming_cake_mix_pumpkin.png create mode 100644 textures/farming_carrot.png create mode 100644 textures/farming_carrot_1.png create mode 100644 textures/farming_carrot_2.png create mode 100644 textures/farming_carrot_3.png create mode 100644 textures/farming_carrot_4.png create mode 100644 textures/farming_carrot_seed.png create mode 100644 textures/farming_cocoa.png create mode 100644 textures/farming_cocoa_bean.png create mode 100644 textures/farming_cocoa_sapling.png create mode 100644 textures/farming_cotton.png create mode 100644 textures/farming_cotton_1.png create mode 100644 textures/farming_cotton_2.png create mode 100644 textures/farming_cotton_seed.png create mode 100644 textures/farming_flour.png create mode 100644 textures/farming_hoe_steel.png create mode 100644 textures/farming_hoe_stone.png create mode 100644 textures/farming_hoe_wood.png create mode 100644 textures/farming_orange.png create mode 100644 textures/farming_orange_1.png create mode 100644 textures/farming_orange_2.png create mode 100644 textures/farming_orange_3.png create mode 100644 textures/farming_orange_4.png create mode 100644 textures/farming_orange_seed.png create mode 100644 textures/farming_potatoe.png create mode 100644 textures/farming_potatoe_1.png create mode 100644 textures/farming_potatoe_2.png create mode 100644 textures/farming_potatoe_3.png create mode 100644 textures/farming_potatoe_seed.png create mode 100644 textures/farming_pumpkin_big_side.png create mode 100644 textures/farming_pumpkin_big_top.png create mode 100644 textures/farming_pumpkin_big_top_corner.png create mode 100644 textures/farming_pumpkin_big_top_side.png create mode 100644 textures/farming_pumpkin_face.png create mode 100644 textures/farming_pumpkin_face_light.png create mode 100644 textures/farming_pumpkin_seed.png create mode 100644 textures/farming_pumpkin_side.png create mode 100644 textures/farming_pumpkin_top.png create mode 100644 textures/farming_rhubarb.png create mode 100644 textures/farming_rhubarb_1.png create mode 100644 textures/farming_rhubarb_2.png create mode 100644 textures/farming_rhubarb_3.png create mode 100644 textures/farming_rhubarb_seed.png create mode 100644 textures/farming_rubber_sapling.png create mode 100755 textures/farming_rubber_tree_empty.png create mode 100755 textures/farming_rubber_tree_full.png create mode 100644 textures/farming_scarecrow_front.png create mode 100644 textures/farming_scarecrow_front_light.png create mode 100644 textures/farming_scarecrow_side.png create mode 100644 textures/farming_scarecrow_top.png create mode 100644 textures/farming_soil.png create mode 100644 textures/farming_soil_wet.png create mode 100755 textures/farming_soil_wet_side.png create mode 100644 textures/farming_strawberry.png create mode 100644 textures/farming_strawberry_1.png create mode 100644 textures/farming_strawberry_2.png create mode 100644 textures/farming_strawberry_3.png create mode 100644 textures/farming_strawberry_4.png create mode 100644 textures/farming_strawberry_seed.png create mode 100644 textures/farming_string.png create mode 100644 textures/farming_tomato.png create mode 100644 textures/farming_tomato_1.png create mode 100644 textures/farming_tomato_2.png create mode 100644 textures/farming_tomato_3.png create mode 100644 textures/farming_tomato_4.png create mode 100644 textures/farming_tomato_seed.png create mode 100644 textures/farming_weed.png create mode 100644 textures/farming_wheat.png create mode 100644 textures/farming_wheat_1.png create mode 100644 textures/farming_wheat_2.png create mode 100644 textures/farming_wheat_3.png create mode 100644 textures/farming_wheat_harvested.png create mode 100644 textures/farming_wheat_seed.png create mode 100644 tomatoes.lua create mode 100644 weed.lua create mode 100644 wheat.lua diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..7f3ffa6 --- /dev/null +++ b/README.txt @@ -0,0 +1,46 @@ +===FARMING MOD for MINETEST-C55=== +by PilzAdam + +Introduction: +This mod adds farming to Minetest. + +How to install: +Unzip the archive an place it in minetest-base-directory/mods/minetest/ +if you have a windows client or a linux run-in-place client. If you have +a linux system-wide instalation place it in ~/.minetest/mods/minetest/. +If you want to install this mod only in one world create the folder +worldmods/ in your worlddirectory. +For further information or help see: +http://wiki.minetest.com/wiki/Installing_Mods + +How to use the mod: +Craft a wood/stone/steel hoe: +material material + stick + stick +Dig dirt with it and turn it to soil. Water the soil and plant the seeds +you get by digging dirt with the hoe. Wait until the seeds are seasoned +and harvest them. When harvesting you will get the product and new seeds. +For further information or help see: +http://minetest.net/forum/viewtopic.php?id=2787 + +License: +Sourcecode: WTFPL (see below) +Graphics: WTFPL (see below) + +See also: +http://minetest.net/ + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/bananas.lua b/bananas.lua new file mode 100644 index 0000000..723be55 --- /dev/null +++ b/bananas.lua @@ -0,0 +1,63 @@ +minetest.register_node("farming:banana_sapling", { + description = "Banana Tree Sapling", + drawtype = "plantlike", + tiles = {"farming_banana_sapling.png"}, + inventory_image = "farming_banana_sapling.png", + wield_image = "farming_banana_sapling.png", + paramtype = "light", + walkable = false, + groups = {dig_immediate=3,flammable=2}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("farming:banana_leaves", { + drawtype = "allfaces_optional", + tiles = {"farming_banana_leaves.png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3, flammable=2, not_in_creative_inventory=1}, + drop = { + max_items = 1, + items = { + { + items = {'farming:banana_sapling'}, + rarity = 20, + }, + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_abm({ + nodenames = {"farming:banana_sapling"}, + interval = 60, + chance = 20, + action = function(pos, node) + farming:generate_tree(pos, "default:tree", "farming:banana_leaves", {"default:dirt", "default:dirt_with_grass"}, {["farming:banana"]=20}) + end +}) + +minetest.register_on_generated(function(minp, maxp, blockseed) + if math.random(1, 100) > 5 then + return + end + local tmp = {x=(maxp.x-minp.x)/2+minp.x, y=(maxp.y-minp.y)/2+minp.y, z=(maxp.z-minp.z)/2+minp.z} + local pos = minetest.env:find_node_near(tmp, maxp.x-minp.x, {"default:dirt_with_grass"}) + if pos ~= nil then + farming:generate_tree({x=pos.x, y=pos.y+1, z=pos.z}, "default:tree", "farming:banana_leaves", {"default:dirt", "default:dirt_with_grass"}, {["farming:banana"]=10}) + end +end) + +minetest.register_node("farming:banana", { + description = "Banana", + tiles = {"farming_banana.png"}, + inventory_image = "farming_banana.png", + wield_image = "farming_banana.png", + drawtype = "torchlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + groups = {fleshy=3,dig_immediate=3,flammable=2}, + sounds = default.node_sound_defaults(), + + on_use = minetest.item_eat(6), +}) diff --git a/cactus.lua b/cactus.lua new file mode 100644 index 0000000..3723e70 --- /dev/null +++ b/cactus.lua @@ -0,0 +1,22 @@ +minetest.register_abm({ + nodenames = {"default:cactus"}, + interval = 50, + chance = 20, + action = function(pos, node) + pos.y = pos.y-1 + local name = minetest.env:get_node(pos).name + if name == "default:desert_sand" or name == "default:sand" then + pos.y = pos.y+1 + local height = 0 + while minetest.env:get_node(pos).name == "default:cactus" do + height = height+1 + pos.y = pos.y+1 + end + if height < 4 then + if minetest.env:get_node(pos).name == "air" then + minetest.env:set_node(pos, node) + end + end + end + end +}) diff --git a/carrots.lua b/carrots.lua new file mode 100644 index 0000000..0195525 --- /dev/null +++ b/carrots.lua @@ -0,0 +1,89 @@ +minetest.register_craftitem("farming:carrot_seed", { + description = "Carrot Seeds", + inventory_image = "farming_carrot_seed.png", + on_place = function(itemstack, placer, pointed_thing) + local above = minetest.env:get_node(pointed_thing.above) + if above.name == "air" then + above.name = "farming:carrot_1" + minetest.env:set_node(pointed_thing.above, above) + itemstack:take_item(1) + return itemstack + end + end +}) + +minetest.register_node("farming:carrot_1", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_carrot_1.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+3/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:carrot_2", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_carrot_2.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+5/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:carrot_3", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_carrot_3.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+12/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:carrot", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + tiles = {"farming_carrot_4.png"}, + drop = { + max_items = 6, + items = { + { items = {'farming:carrot_seed'} }, + { items = {'farming:carrot_seed'}, rarity = 2}, + { items = {'farming:carrot_seed'}, rarity = 5}, + { items = {'farming:carrot_item'} }, + { items = {'farming:carrot_item'}, rarity = 2 }, + { items = {'farming:carrot_item'}, rarity = 5 } + } + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craftitem("farming:carrot_item", { + description = "Carrot", + inventory_image = "farming_carrot.png", + on_use = minetest.item_eat(3), +}) + +farming:add_plant("farming:carrot", {"farming:carrot_1", "farming:carrot_2", "farming:carrot_3"}, 50, 20) diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..80138c5 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,17 @@ +Version 3: +- make pumpkins with face not craftable but created by punching with a sword +- change groups of pumpkins to more wood like +- add big pumpkin +- add scarecrow +- make bread non stackable +- make saplings plantable everywhere (they still grow only with light and wet soil) +- add weed +- add fuel attributes to nearly everything +- add pumpkin bread +Version 2: +- soil dont turn to dirt when walking over it +- fix hoe bug +- rename corn to wheat +- new textures for harvested wheat +- make cotton drop strings when harvested +- add rubber diff --git a/cocoa.lua b/cocoa.lua new file mode 100644 index 0000000..4ce0fdd --- /dev/null +++ b/cocoa.lua @@ -0,0 +1,73 @@ +minetest.register_node("farming:cocoa_sapling", { + description = "Cocoa Tree Sapling", + drawtype = "plantlike", + tiles = {"farming_cocoa_sapling.png"}, + inventory_image = "farming_cocoa_sapling.png", + wield_image = "farming_cocoa_sapling.png", + paramtype = "light", + walkable = false, + groups = {dig_immediate=3,flammable=2}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("farming:cocoa_leaves", { + drawtype = "allfaces_optional", + tiles = {"farming_banana_leaves.png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3, flammable=2, not_in_creative_inventory=1}, + drop = { + max_items = 1, + items = { + { + items = {'farming:cocoa_sapling'}, + rarity = 20, + }, + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_abm({ + nodenames = {"farming:cocoa_sapling"}, + interval = 60, + chance = 20, + action = function(pos, node) + farming:generate_tree(pos, "default:tree", "farming:cocoa_leaves", {"default:sand", "default:desert_sand"}, {["farming:cocoa"]=20}) + end +}) + +minetest.register_on_generated(function(minp, maxp, blockseed) + if math.random(1, 100) > 5 then + return + end + local tmp = {x=(maxp.x-minp.x)/2+minp.x, y=(maxp.y-minp.y)/2+minp.y, z=(maxp.z-minp.z)/2+minp.z} + local pos = minetest.env:find_node_near(tmp, maxp.x-minp.x, {"default:desert_sand"}) + if pos ~= nil then + farming:generate_tree(pos, "default:tree", "farming:cocoa_leaves", {"default:sand", "default:desert_sand"}, {["farming:cocoa"]=20}) + end +end) + +minetest.register_node("farming:cocoa", { + description = "Cocoa", + tiles = {"farming_cocoa.png"}, + visual_scale = 0.5, + inventory_image = "farming_cocoa.png", + wield_image = "farming_cocoa.png", + drawtype = "torchlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + groups = {fleshy=3,dig_immediate=3,flammable=2}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_craftitem("farming:cocoa_bean", { + description = "Cocoa Bean", + inventory_image = "farming_cocoa_bean.png", +}) + +minetest.register_craft({ + output = "farming:cocoa_bean 10", + type = "shapeless", + recipe = {"farming:cocoa"}, +}) diff --git a/cotton.lua b/cotton.lua new file mode 100644 index 0000000..3ea3390 --- /dev/null +++ b/cotton.lua @@ -0,0 +1,90 @@ +minetest.register_craftitem("farming:cotton_seed", { + description = "Cotton Seeds", + inventory_image = "farming_cotton_seed.png", + on_place = function(itemstack, placer, pointed_thing) + local above = minetest.env:get_node(pointed_thing.above) + if above.name == "air" then + above.name = "farming:cotton_1" + minetest.env:set_node(pointed_thing.above, above) + itemstack:take_item(1) + return itemstack + end + end +}) + +minetest.register_node("farming:cotton_1", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_cotton_1.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+6/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cotton_2", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_cotton_2.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+12/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:cotton", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + tiles = {"farming_cotton.png"}, + drop = { + max_items = 6, + items = { + { items = {'farming:cotton_seed'} }, + { items = {'farming:cotton_seed'}, rarity = 2}, + { items = {'farming:cotton_seed'}, rarity = 5}, + { items = {'farming:string'} }, + { items = {'farming:string'}, rarity = 2 }, + { items = {'farming:string'}, rarity = 5 } + } + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +farming:add_plant("farming:cotton", {"farming:cotton_1", "farming:cotton_2"}, 50, 20) + +minetest.register_craftitem("farming:string", { + description = "String", + inventory_image = "farming_string.png", +}) + +minetest.register_craft({ + output = "wool:white", + recipe = {{"farming:string"}} +}) + +-- ========= FUEL ========= +minetest.register_craft({ + type = "fuel", + recipe = "farming:cotton_seed", + burntime = 1 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:string", + burntime = 1 +}) diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..0b8ebe0 --- /dev/null +++ b/depends.txt @@ -0,0 +1,3 @@ +default +bucket +wool diff --git a/hoes.lua b/hoes.lua new file mode 100644 index 0000000..33cf462 --- /dev/null +++ b/hoes.lua @@ -0,0 +1,83 @@ +local function create_soil(pos, inv, p) + if pos == nil then + return false + end + local node = minetest.env:get_node(pos) + local name = node.name + local above = minetest.env:get_node({x=pos.x, y=pos.y+1, z=pos.z}) + if name == "default:dirt" or name == "default:dirt_with_grass" then + if above.name == "air" then + node.name = "farming:soil" + minetest.env:set_node(pos, node) + if inv and p and name == "default:dirt_with_grass" then + for name,rarity in pairs(farming.seeds) do + if math.random(1, rarity-p) == 1 then + inv:add_item("main", ItemStack(name)) + end + end + end + return true + end + end + return false +end + +minetest.register_tool("farming:hoe_wood", { + description = "Wood Hoe", + inventory_image = "farming_hoe_wood.png", + on_use = function(itemstack, user, pointed_thing) + if create_soil(pointed_thing.under, user:get_inventory(), 0) then + itemstack:add_wear(65535/30) + return itemstack + end + end +}) + +minetest.register_craft({ + output = "farming:hoe_wood", + recipe = { + {"default:wood", "default:wood"}, + {"", "default:stick"}, + {"", "default:stick"} + } +}) + +minetest.register_tool("farming:hoe_stone", { + description = "Stone Hoe", + inventory_image = "farming_hoe_stone.png", + on_use = function(itemstack, user, pointed_thing) + if create_soil(pointed_thing.under, user:get_inventory(), 5) then + itemstack:add_wear(65535/50) + return itemstack + end + end +}) + +minetest.register_craft({ + output = "farming:hoe_stone", + recipe = { + {"default:cobble", "default:cobble"}, + {"", "default:stick"}, + {"", "default:stick"} + } +}) + +minetest.register_tool("farming:hoe_steel", { + description = "Steel Hoe", + inventory_image = "farming_hoe_steel.png", + on_use = function(itemstack, user, pointed_thing) + if create_soil(pointed_thing.under, user:get_inventory(), 10) then + itemstack:add_wear(65535/80) + return itemstack + end + end +}) + +minetest.register_craft({ + output = "farming:hoe_steel", + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"", "default:stick"}, + {"", "default:stick"} + } +}) diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..ae98822 --- /dev/null +++ b/init.lua @@ -0,0 +1,248 @@ +farming = {} + +function farming:add_plant(full_grown, names, interval, chance) + minetest.register_abm({ + nodenames = names, + interval = interval, + chance = chance, + action = function(pos, node) + pos.y = pos.y-1 + if minetest.env:get_node(pos).name ~= "farming:soil_wet" then + return + end + pos.y = pos.y+1 + if minetest.env:get_node_light(pos) < 8 then + return + end + local step = nil + for i,name in ipairs(names) do + if name == node.name then + step = i + break + end + end + if step == nil then + return + end + local new_node = {name=names[step+1]} + if new_node.name == nil then + new_node.name = full_grown + end + minetest.env:set_node(pos, new_node) + end +} ) +end + +function farming:generate_tree(pos, trunk, leaves, underground, replacements) + pos.y = pos.y-1 + local nodename = minetest.env:get_node(pos).name + local ret = true + for _,name in ipairs(underground) do + if nodename == name then + ret = false + break + end + end + pos.y = pos.y+1 + if ret or minetest.env:get_node_light(pos) < 8 then + return + end + + node = {name = ""} + for dy=1,4 do + pos.y = pos.y+dy + if minetest.env:get_node(pos).name ~= "air" then + return + end + pos.y = pos.y-dy + end + node.name = trunk + for dy=0,4 do + pos.y = pos.y+dy + minetest.env:set_node(pos, node) + pos.y = pos.y-dy + end + + if not replacements then + replacements = {} + end + + node.name = leaves + pos.y = pos.y+3 + for dx=-2,2 do + for dz=-2,2 do + for dy=0,3 do + pos.x = pos.x+dx + pos.y = pos.y+dy + pos.z = pos.z+dz + + if dx == 0 and dz == 0 and dy==3 then + if minetest.env:get_node(pos).name == "air" and math.random(1, 5) <= 4 then + minetest.env:set_node(pos, node) + for name,rarity in pairs(replacements) do + if math.random(1, rarity) == 1 then + minetest.env:set_node(pos, {name=name}) + end + end + end + elseif dx == 0 and dz == 0 and dy==4 then + if minetest.env:get_node(pos).name == "air" and math.random(1, 5) <= 4 then + minetest.env:set_node(pos, node) + for name,rarity in pairs(replacements) do + if math.random(1, rarity) == 1 then + minetest.env:set_node(pos, {name=name}) + end + end + end + elseif math.abs(dx) ~= 2 and math.abs(dz) ~= 2 then + if minetest.env:get_node(pos).name == "air" then + minetest.env:set_node(pos, node) + for name,rarity in pairs(replacements) do + if math.random(1, rarity) == 1 then + minetest.env:set_node(pos, {name=name}) + end + end + end + else + if math.abs(dx) ~= 2 or math.abs(dz) ~= 2 then + if minetest.env:get_node(pos).name == "air" and math.random(1, 5) <= 4 then + minetest.env:set_node(pos, node) + for name,rarity in pairs(replacements) do + if math.random(1, rarity) == 1 then + minetest.env:set_node(pos, {name=name}) + end + end + end + end + end + + pos.x = pos.x-dx + pos.y = pos.y-dy + pos.z = pos.z-dz + end + end + end +end + +farming.seeds = { + ["farming:wheat_seed"]=20, + ["farming:cotton_seed"]=30, + ["farming:pumpkin_seed"]=60, + ["farming:strawberry_seed"]=30, + ["farming:rhubarb_seed"]=30, + ["farming:potatoe_seed"]=30, + ["farming:tomato_seed"]=30, + ["farming:orange_seed"]=30, + ["farming:carrot_seed"]=30, +} + +-- ========= ALIASES FOR FARMING MOD BY SAPIER ========= +-- hoes +minetest.register_alias("farming:wood_hoe", "farming:hoe_wood") +minetest.register_alias("farming:cobble_hoe", "farming:hoe_stone") +minetest.register_alias("farming:steel_hoe", "farming:hoe_steel") +minetest.register_alias("farming:mese_hoe", "farming:hoe_steel") + +-- wheat -> wheat +minetest.register_alias("farming:wheat_node", "farming:wheat") +--minetest.register_alias("farming:wheat", "farming_wheat_harvested") cant do this +minetest.register_alias("farming:wheat_straw", "farming:wheat") +minetest.register_alias("farming:seed_wheat", "farming:wheat_seed") +for lvl = 1, 6, 1 do + minetest.register_entity(":farming:wheat_lvl"..lvl, { + on_activate = function(self, staticdata) + minetest.env:set_node(self.object:getpos(), {name="farming:wheat_1"}) + end + }) +end + +-- rye -> wheat +minetest.register_alias("farming:rhy_node", "farming:wheat") +minetest.register_alias("farming:rhy", "farming:wheat_harvested") +minetest.register_alias("farming:rhy_straw", "farming:wheat") +minetest.register_alias("farming:seed_rhy", "farming:wheat_seed") +for lvl = 1, 6, 1 do + minetest.register_entity(":farming:rhy_lvl"..lvl, { + on_activate = function(self, staticdata) + minetest.env:set_node(self.object:getpos(), {name="farming:wheat_1"}) + end + }) +end + +-- potatoe -> potatoe +minetest.register_alias("farming:potatoe_node", "farming:potatoe") +--minetest.register_alias("farming:potatoe", "farming:potatoe_item") cant do this +minetest.register_alias("farming:potatoe_straw", "farming:potatoe") +minetest.register_alias("farming:seed_potatoe", "farming:potatoe_seed") +for lvl = 1, 6, 1 do + minetest.register_entity(":farming:potatoe_lvl"..lvl, { + on_activate = function(self, staticdata) + minetest.env:set_node(self.object:getpos(), {name="farming:potatoe_1"}) + end + }) +end + +-- corn -> wheat +minetest.register_alias("farming:corn_node", "farming:wheat") +minetest.register_alias("farming:corn", "farming:wheat_harvested") +minetest.register_alias("farming:corn_straw", "farming:wheat") +minetest.register_alias("farming:seed_corn", "farming:wheat_seed") +for lvl = 1, 6, 1 do + minetest.register_entity(":farming:corn_lvl"..lvl, { + on_activate = function(self, staticdata) + minetest.env:set_node(self.object:getpos(), {name="farming:wheat_1"}) + end + }) +end + + +-- ========= SOIL ========= +dofile(minetest.get_modpath("farming").."/soil.lua") + +-- ========= HOES ========= +dofile(minetest.get_modpath("farming").."/hoes.lua") + +-- ========= CORN ========= +dofile(minetest.get_modpath("farming").."/wheat.lua") + +-- ========= COTTON ========= +dofile(minetest.get_modpath("farming").."/cotton.lua") + +-- ========= PUMPKINS ========= +dofile(minetest.get_modpath("farming").."/pumpkin.lua") + +-- ========= RUBBER ========= +dofile(minetest.get_modpath("farming").."/rubber.lua") + +-- ========= WEED ========= +dofile(minetest.get_modpath("farming").."/weed.lua") + +-- ========= STRAWBERRIES ========= +dofile(minetest.get_modpath("farming").."/strawberries.lua") + +-- ========= RHUBARB ========= +dofile(minetest.get_modpath("farming").."/rhubarb.lua") + +-- ========= POTATOES ========= +dofile(minetest.get_modpath("farming").."/potatoes.lua") + +-- ========= TOMATOES ========= +dofile(minetest.get_modpath("farming").."/tomatoes.lua") + +-- ========= ORANGES ========= +dofile(minetest.get_modpath("farming").."/oranges.lua") + +-- ========= BANANAS ========= +dofile(minetest.get_modpath("farming").."/bananas.lua") + +-- ========= PAPYRUS ========= +dofile(minetest.get_modpath("farming").."/papyrus.lua") + +-- ========= CACTUS ========= +dofile(minetest.get_modpath("farming").."/cactus.lua") + +-- ========= CARROTS ========= +dofile(minetest.get_modpath("farming").."/carrots.lua") + +-- ========= COCOA ========= +dofile(minetest.get_modpath("farming").."/cocoa.lua") diff --git a/oranges.lua b/oranges.lua new file mode 100644 index 0000000..cebbcfd --- /dev/null +++ b/oranges.lua @@ -0,0 +1,89 @@ +minetest.register_craftitem("farming:orange_seed", { + description = "Orange Seeds", + inventory_image = "farming_orange_seed.png", + on_place = function(itemstack, placer, pointed_thing) + local above = minetest.env:get_node(pointed_thing.above) + if above.name == "air" then + above.name = "farming:orange_1" + minetest.env:set_node(pointed_thing.above, above) + itemstack:take_item(1) + return itemstack + end + end +}) + +minetest.register_node("farming:orange_1", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_orange_1.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+3/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:orange_2", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_orange_2.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+8/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:orange_3", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_orange_3.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+14/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:orange", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + tiles = {"farming_orange_4.png"}, + drop = { + max_items = 6, + items = { + { items = {'farming:orange_seed'} }, + { items = {'farming:orange_seed'}, rarity = 2}, + { items = {'farming:orange_seed'}, rarity = 5}, + { items = {'farming:orange_item'} }, + { items = {'farming:orange_item'}, rarity = 2 }, + { items = {'farming:orange_item'}, rarity = 5 } + } + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craftitem("farming:orange_item", { + description = "Orange", + inventory_image = "farming_orange.png", + on_use = minetest.item_eat(4), +}) + +farming:add_plant("farming:orange", {"farming:orange_1", "farming:orange_2", "farming:orange_3"}, 50, 20) diff --git a/papyrus.lua b/papyrus.lua new file mode 100644 index 0000000..d33e072 --- /dev/null +++ b/papyrus.lua @@ -0,0 +1,25 @@ +minetest.register_abm({ + nodenames = {"default:papyrus"}, + interval = 50, + chance = 20, + action = function(pos, node) + pos.y = pos.y-1 + local name = minetest.env:get_node(pos).name + if name == "default:dirt" or name == "default:dirt_with_grass" then + if minetest.env:find_node_near(pos, 3, {"default:water_source", "default:water_flowing"}) == nil then + return + end + pos.y = pos.y+1 + local height = 0 + while minetest.env:get_node(pos).name == "default:papyrus" do + height = height+1 + pos.y = pos.y+1 + end + if height < 4 then + if minetest.env:get_node(pos).name == "air" then + minetest.env:set_node(pos, node) + end + end + end + end +}) diff --git a/potatoes.lua b/potatoes.lua new file mode 100644 index 0000000..6b886a4 --- /dev/null +++ b/potatoes.lua @@ -0,0 +1,72 @@ +minetest.register_craftitem("farming:potatoe_seed", { + description = "Potatoe Seeds", + inventory_image = "farming_potatoe_seed.png", + on_place = function(itemstack, placer, pointed_thing) + local above = minetest.env:get_node(pointed_thing.above) + if above.name == "air" then + above.name = "farming:potatoe_1" + minetest.env:set_node(pointed_thing.above, above) + itemstack:take_item(1) + return itemstack + end + end +}) + +minetest.register_node("farming:potatoe_1", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_potatoe_1.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+6/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:potatoe_2", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_potatoe_2.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+9/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:potatoe", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + tiles = {"farming_potatoe_3.png"}, + drop = { + max_items = 6, + items = { + { items = {'farming:potatoe_seed'} }, + { items = {'farming:potatoe_seed'}, rarity = 2}, + { items = {'farming:potatoe_seed'}, rarity = 5}, + { items = {'farming:potatoe_item'} }, + { items = {'farming:potatoe_item'}, rarity = 2 }, + { items = {'farming:potatoe_item'}, rarity = 5 } + } + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craftitem("farming:potatoe_item", { + description = "Potatoe", + inventory_image = "farming_potatoe.png", +}) + +farming:add_plant("farming:potatoe", {"farming:potatoe_1", "farming:potatoe_2"}, 50, 20) diff --git a/pumpkin.lua b/pumpkin.lua new file mode 100644 index 0000000..73991ca --- /dev/null +++ b/pumpkin.lua @@ -0,0 +1,446 @@ +minetest.register_craftitem("farming:pumpkin_seed", { + description = "Pumpkin Seed", + inventory_image = "farming_pumpkin_seed.png", + on_place = function(itemstack, placer, pointed_thing) + local above = minetest.env:get_node(pointed_thing.above) + if above.name == "air" then + above.name = "farming:pumpkin_1" + minetest.env:set_node(pointed_thing.above, above) + itemstack:take_item(1) + return itemstack + end + end +}) + +minetest.register_node("farming:pumpkin_1", { + paramtype = "light", + drawtype = "nodebox", + drop = "", + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png"}, + node_box = { + type = "fixed", + fixed = { + {-0.2, -0.5, -0.2, 0.2, -0.1, 0.2} + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.2, -0.5, -0.2, 0.2, -0.1, 0.2} + }, + }, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("farming:pumpkin_2", { + paramtype = "light", + drawtype = "nodebox", + drop = "", + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png"}, + node_box = { + type = "fixed", + fixed = { + {-0.35, -0.5, -0.35, 0.35, 0.2, 0.35} + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.35, -0.5, -0.35, 0.35, 0.2, 0.35} + }, + }, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("farming:pumpkin", { + description = "Pumpkin", + paramtype2 = "facedir", + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + sounds = default.node_sound_wood_defaults(), + + on_punch = function(pos, node, puncher) + local tool = puncher:get_wielded_item():get_name() + if tool and tool == "default:sword_wood" or tool == "default:sword_stone" or tool == "default:sword_steel" then + node.name = "farming:pumpkin_face" + minetest.env:set_node(pos, node) + puncher:get_inventory():add_item("main", ItemStack("farming:pumpkin_seed")) + if math.random(1, 5) == 1 then + puncher:get_inventory():add_item("main", ItemStack("farming:pumpkin_seed")) + end + end + end +}) + +farming:add_plant("farming:pumpkin", {"farming:pumpkin_1", "farming:pumpkin_2"}, 80, 20) + +minetest.register_node("farming:pumpkin_face", { + description = "Pumpkin", + paramtype2 = "facedir", + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("farming:pumpkin_face_light", { + description = "Pumpkin", + paramtype2 = "facedir", + light_source = LIGHT_MAX-2, + tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face_light.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:pumpkin_face_light", + recipe = {"farming:pumpkin_face", "default:torch"} +}) + +-- ========= BIG PUMPKIN ========= +minetest.register_node("farming:big_pumpkin", { + description = "Big Pumpkin", + paramtype2 = "facedir", + tiles = {"farming_pumpkin_big_side.png"}, + selection_box = { + type = "fixed", + fixed = { + {-1, -0.5, -1, 1, 1.5, 1} + } + }, + groups = {choppy=1, oddly_breakable_by_hand=1, flammable=2}, + sounds = default.node_sound_wood_defaults(), + + after_place_node = function(pos, placer) + for dx=-1,1 do + for dy=0,1 do + for dz=-1,1 do + pos.x = pos.x+dx + pos.y = pos.y+dy + pos.z = pos.z+dz + if dx ~= 0 or dy ~= 0 or dz ~= 0 then + if minetest.env:get_node(pos).name ~= "air" then + pos.x = pos.x-dx + pos.y = pos.y-dy + pos.z = pos.z-dz + minetest.env:remove_node(pos) + minetest.after(0.1, function(placer) + local inv = placer:get_inventory() + local index = placer:get_wield_index() + inv:set_stack("main", index, ItemStack("farming:big_pumpkin")) + end, placer) + return + end + end + pos.x = pos.x-dx + pos.y = pos.y-dy + pos.z = pos.z-dz + end + end + end + for dy=0,1 do + pos.y = pos.y+dy + pos.z = pos.z+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_side", param2=2}) + pos.x = pos.x-1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_corner", param2=2}) + pos.x = pos.x+1 + pos.z = pos.z-2 + minetest.env:set_node(pos, {name="farming:big_pumpkin_side", param2=4}) + pos.x = pos.x+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_corner", param2=4}) + pos.z = pos.z+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_side", param2=3}) + pos.z = pos.z+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_corner", param2=3}) + pos.z = pos.z-1 + pos.x = pos.x-2 + minetest.env:set_node(pos, {name="farming:big_pumpkin_side", param2=1}) + pos.z = pos.z-1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_corner", param2=1}) + pos.z = pos.z+1 + pos.x = pos.x+1 + pos.y = pos.y-dy + end + pos.y = pos.y+1 + minetest.env:set_node(pos, {name="farming:big_pumpkin_top"}) + end, + + after_destruct = function(pos, oldnode) + for dx=-1,1 do + for dy=0,1 do + for dz=-1,1 do + pos.x = pos.x+dx + pos.y = pos.y+dy + pos.z = pos.z+dz + local name = minetest.env:get_node(pos).name + if string.find(name, "farming:big_pumpkin") then + minetest.env:remove_node(pos) + end + pos.x = pos.x-dx + pos.y = pos.y-dy + pos.z = pos.z-dz + end + end + end + end +}) + +minetest.register_node("farming:big_pumpkin_side", { + paramtype = "light", + paramtype2 = "facedir", + tiles = {"farming_pumpkin_big_top_side.png", "farming_pumpkin_big_side.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, 0.5, 0.5, 0.5} + } + }, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0} + } + }, + groups = {not_in_creative_inventory=1}, +}) +minetest.register_node("farming:big_pumpkin_corner", { + paramtype = "light", + paramtype2 = "facedir", + tiles = {"farming_pumpkin_big_top_corner.png", "farming_pumpkin_big_side.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0, 0, 0.5, 0.5} + } + }, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0} + } + }, + groups = {not_in_creative_inventory=1}, +}) + +minetest.register_node("farming:big_pumpkin_top", { + paramtype = "light", + tiles = {"farming_pumpkin_big_top.png"}, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0} + } + }, + groups = {not_in_creative_inventory=1}, +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:big_pumpkin", + recipe = {"bucket:bucket_water", "farming:pumpkin"}, + replacements = { + {"bucket:bucket_water", "bucket:bucket_empty"} + } +}) + +-- ========= SCARECROW ========= +local box1 = { + {-1, -8, -1, 1, 8, 1}, +} + +local box2 = { + {-1, -8, -1, 1, 8, 1}, + {-12, -8, -1, 12, -7, 1}, + {-5, -2, -5, 5, 8, 5} +} + +for j,list in ipairs(box1) do + for i,int in ipairs(list) do + list[i] = int/16 + end + box1[j] = list +end + +for j,list in ipairs(box2) do + for i,int in ipairs(list) do + list[i] = int/16 + end + box2[j] = list +end + +minetest.register_node("farming:scarecrow", { + description = "Scarecrow", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"farming_scarecrow_top.png", "farming_scarecrow_top.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_front.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = box2 + }, + selection_box = { + type = "fixed", + fixed = { + {-12/16, -1.5, -0.5, 12/16, 0.5, 0.5} + } + }, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + + after_place_node = function(pos, placer) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + pos.y = pos.y+1 + if minetest.env:get_node(pos).name ~= "air" then + pos.y = pos.y-1 + minetest.env:remove_node(pos) + minetest.after(0.1, function(placer) + local inv = placer:get_inventory() + local index = placer:get_wield_index() + inv:set_stack("main", index, ItemStack("farming:scarecrow")) + end, placer) + return + end + minetest.env:set_node(pos, node) + pos.y = pos.y-1 + node.name = "farming:scarecrow_bottom" + minetest.env:set_node(pos, node) + end, + + after_destruct = function(pos, oldnode) + pos.y = pos.y-1 + if minetest.env:get_node(pos).name == "farming:scarecrow_bottom" then + minetest.env:remove_node(pos) + end + end +}) + +minetest.register_node("farming:scarecrow_bottom", { + paramtype = "light", + paramtype2 = "facedir", + tiles = {"default_wood.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = box1 + }, + groups = {not_in_creative_inventory=1}, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0} + } + } +}) + +minetest.register_craft({ + output = "farming:scarecrow", + recipe = { + {"", "farming:pumpkin_face", "",}, + {"default:stick", "default:stick", "default:stick",}, + {"", "default:stick", "",} + } +}) + +minetest.register_node("farming:scarecrow_light", { + description = "Scarecrow", + paramtype = "light", + paramtype2 = "facedir", + light_source = LIGHT_MAX-2, + tiles = {"farming_scarecrow_top.png", "farming_scarecrow_top.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_front_light.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = box2 + }, + selection_box = { + type = "fixed", + fixed = { + {-12/16, -1.5, -0.5, 12/16, 0.5, 0.5} + } + }, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + + after_place_node = function(pos, placer) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + pos.y = pos.y+1 + if minetest.env:get_node(pos).name ~= "air" then + pos.y = pos.y-1 + minetest.env:remove_node(pos) + minetest.after(0.1, function(placer) + local inv = placer:get_inventory() + local index = placer:get_wield_index() + inv:set_stack("main", index, ItemStack("farming:scarecrow_light")) + end, placer) + return + end + minetest.env:set_node(pos, node) + pos.y = pos.y-1 + node.name = "farming:scarecrow_bottom" + minetest.env:set_node(pos, node) + end, + + after_destruct = function(pos, oldnode) + pos.y = pos.y-1 + if minetest.env:get_node(pos).name == "farming:scarecrow_bottom" then + minetest.env:remove_node(pos) + end + end +}) + +minetest.register_craft({ + output = "farming:scarecrow_light", + recipe = { + {"", "farming:pumpkin_face_light", "",}, + {"default:stick", "default:stick", "default:stick",}, + {"", "default:stick", "",} + } +}) + +-- ========= FUEL ========= +minetest.register_craft({ + type = "fuel", + recipe = "farming:pumpkin_seed", + burntime = 1 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:pumpkin", + burntime = 5 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:pumpkin_face", + burntime = 5 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:pumpkin_face_light", + burntime = 7 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:big_pumpkin", + burntime = 10 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:scarecrow", + burntime = 5 +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:scarecrow_light", + burntime = 5 +}) diff --git a/rhubarb.lua b/rhubarb.lua new file mode 100644 index 0000000..e9dd59b --- /dev/null +++ b/rhubarb.lua @@ -0,0 +1,72 @@ +minetest.register_craftitem("farming:rhubarb_seed", { + description = "Rhubarb Seeds", + inventory_image = "farming_rhubarb_seed.png", + on_place = function(itemstack, placer, pointed_thing) + local above = minetest.env:get_node(pointed_thing.above) + if above.name == "air" then + above.name = "farming:rhubarb_1" + minetest.env:set_node(pointed_thing.above, above) + itemstack:take_item(1) + return itemstack + end + end +}) + +minetest.register_node("farming:rhubarb_1", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_rhubarb_1.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+5/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:rhubarb_2", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_rhubarb_2.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+11/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:rhubarb", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + tiles = {"farming_rhubarb_3.png"}, + drop = { + max_items = 6, + items = { + { items = {'farming:rhubarb_seed'} }, + { items = {'farming:rhubarb_seed'}, rarity = 2}, + { items = {'farming:rhubarb_seed'}, rarity = 5}, + { items = {'farming:rhubarb_item'} }, + { items = {'farming:rhubarb_item'}, rarity = 2 }, + { items = {'farming:rhubarb_item'}, rarity = 5 } + } + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craftitem("farming:rhubarb_item", { + description = "Rhubarb", + inventory_image = "farming_rhubarb.png", +}) + +farming:add_plant("farming:rhubarb", {"farming:rhubarb_1", "farming:rhubarb_2"}, 50, 20) diff --git a/rubber.lua b/rubber.lua new file mode 100644 index 0000000..768466d --- /dev/null +++ b/rubber.lua @@ -0,0 +1,104 @@ +minetest.register_node("farming:rubber_sapling", { + description = "Rubber Tree Sapling", + drawtype = "plantlike", + tiles = {"farming_rubber_sapling.png"}, + inventory_image = "farming_rubber_sapling.png", + wield_image = "farming_rubber_sapling.png", + paramtype = "light", + walkable = false, + groups = {dig_immediate=3,flammable=2}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("farming:rubber_tree_full", { + description = "Rubber Tree", + tiles = {"default_tree_top.png", "default_tree_top.png", "farming_rubber_tree_full.png"}, + groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + drop = "default:tree", + sounds = default.node_sound_wood_defaults(), + + on_dig = function(pos, node, digger) + minetest.node_dig(pos, node, digger) + minetest.env:remove_node(pos) + end, + + after_destruct = function(pos, oldnode) + oldnode.name = "farming:rubber_tree_empty" + minetest.env:set_node(pos, oldnode) + end +}) + + +minetest.register_node("farming:rubber_tree_empty", { + tiles = {"default_tree_top.png", "default_tree_top.png", "farming_rubber_tree_empty.png"}, + groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2, not_in_creative_inventory=1}, + drop = "default:tree", + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_abm({ + nodenames = {"farming:rubber_tree_empty"}, + interval = 60, + chance = 15, + action = function(pos, node) + node.name = "farming:rubber_tree_full" + minetest.env:set_node(pos, node) + end +}) + +minetest.register_node("farming:rubber_leaves", { + drawtype = "allfaces_optional", + visual_scale = 1.3, + tiles = {"default_leaves.png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3, flammable=2, not_in_creative_inventory=1}, + drop = { + max_items = 1, + items = { + { + items = {'farming:rubber_sapling'}, + rarity = 20, + }, + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_abm({ + nodenames = {"farming:rubber_sapling"}, + interval = 60, + chance = 20, + action = function(pos, node) + farming:generate_tree(pos, "farming:rubber_tree_full", "farming:rubber_leaves", {"default:dirt", "default:dirt_with_grass"}) + end +}) + +minetest.register_on_generated(function(minp, maxp, blockseed) + if math.random(1, 100) > 5 then + return + end + local tmp = {x=(maxp.x-minp.x)/2+minp.x, y=(maxp.y-minp.y)/2+minp.y, z=(maxp.z-minp.z)/2+minp.z} + local pos = minetest.env:find_node_near(tmp, maxp.x-minp.x, {"default:dirt_with_grass"}) + if pos ~= nil then + farming:generate_tree({x=pos.x, y=pos.y+1, z=pos.z}, "farming:rubber_tree_full", "farming:rubber_leaves", {"default:dirt", "default:dirt_with_grass"}) + end +end) + +minetest.register_craftitem("farming:bucket_rubber", { + description = "Bucket with Caoutchouc", + inventory_image = "farming_bucket_rubber.png", + stack_max = 1, +}) + +local bucket_tmp = { + source = "farming:rubber_tree_full", + itemname = "farming:bucket_rubber" +} +bucket.liquids["farming:rubber_tree_full"] = bucket_tmp + +-- ========= FUEL ========= +minetest.register_craft({ + type = "fuel", + recipe = "farming:rubber_sapling", + burntime = 10 +}) diff --git a/soil.lua b/soil.lua new file mode 100644 index 0000000..f800335 --- /dev/null +++ b/soil.lua @@ -0,0 +1,45 @@ +minetest.register_node("farming:soil", { + tiles = {"farming_soil.png", "default_dirt.png", "default_dirt.png", "default_dirt.png", "default_dirt.png", "default_dirt.png"}, + drop = "default:dirt", + groups = {crumbly=3, not_in_creative_inventory=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +minetest.register_node("farming:soil_wet", { + tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png", "farming_soil_wet_side.png", "farming_soil_wet_side.png", "farming_soil_wet_side.png", "farming_soil_wet_side.png"}, + drop = "default:dirt", + groups = {crumbly=3, not_in_creative_inventory=1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +minetest.register_abm({ + nodenames = {"farming:soil"}, + interval = 15, + chance = 3, + action = function(pos, node) + if minetest.env:find_node_near(pos, 4, {"default:water_source", "default:water_flowing"}) then + node.name = "farming:soil_wet" + minetest.env:set_node(pos, node) + end + end, +}) + +-- ========= EXPERIMENTAL ========= +-- This will turn soil to dirt when walking over it +--[[minetest.register_abm({ + nodenames = {"farming:soil", "farming:soil_wet"}, + interval = 2, + chance = 2, + action = function(pos, node) + pos.y = pos.y+1 + if #(minetest.env:get_objects_inside_radius(pos, 0.8)) > 0 then + pos.y = pos.y-1 + node.name = "default:dirt" + minetest.env:set_node(pos, node) + end + end, +})]] diff --git a/strawberries.lua b/strawberries.lua new file mode 100644 index 0000000..e2b2132 --- /dev/null +++ b/strawberries.lua @@ -0,0 +1,89 @@ +minetest.register_craftitem("farming:strawberry_seed", { + description = "Strawberry Seeds", + inventory_image = "farming_strawberry_seed.png", + on_place = function(itemstack, placer, pointed_thing) + local above = minetest.env:get_node(pointed_thing.above) + if above.name == "air" then + above.name = "farming:strawberry_1" + minetest.env:set_node(pointed_thing.above, above) + itemstack:take_item(1) + return itemstack + end + end +}) + +minetest.register_node("farming:strawberry_1", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_strawberry_1.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+9/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:strawberry_2", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_strawberry_2.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+12/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:strawberry_3", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + drop = "", + tiles = {"farming_strawberry_3.png"}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.5+14/16, 0.5} + }, + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("farming:strawberry", { + paramtype = "light", + walkable = false, + drawtype = "plantlike", + tiles = {"farming_strawberry_4.png"}, + drop = { + max_items = 6, + items = { + { items = {'farming:strawberry_seed'} }, + { items = {'farming:strawberry_seed'}, rarity = 2}, + { items = {'farming:strawberry_seed'}, rarity = 5}, + { items = {'farming:strawberry_item'} }, + { items = {'farming:strawberry_item'}, rarity = 2 }, + { items = {'farming:strawberry_item'}, rarity = 5 } + } + }, + groups = {snappy=3, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craftitem("farming:strawberry_item", { + description = "Strawberry", + inventory_image = "farming_strawberry.png", + on_use = minetest.item_eat(2), +}) + +farming:add_plant("farming:strawberry", {"farming:strawberry_1", "farming:strawberry_2", "farming:strawberry_3"}, 50, 20) diff --git a/textures/farming_banana.png b/textures/farming_banana.png new file mode 100644 index 0000000000000000000000000000000000000000..f775e14cd96d00ee04e28ff5ed0080e56036f673 GIT binary patch literal 515 zcmV+e0{s1nP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m_e01m_fl`9S#00007bV*G`2iyoB z5CbCwPWwFo00DzZL_t(I%cYXdD@0Kkho5urU}hsb*(eKkV`D2j zd;i8PZIot3N!h3=+fjG0n1#r3XE=bYbj-rn;FDJ4$pY-<&l z({ONckmdatic^587CLtf2!@US0g5G@4Dn!NfY+Nup@ZR`4vyAG{si!tDhiDSz~p!w z`Fw@BIq}=+%ZJAdHV*|rf0sr&p5i=t!tL%DPdhUe!^v$QrYccnrnKh*@YFZ+VnO=+ zf`%52+|D!~o;T_=ANP01sOAl}o#Q!uOE8>bzRd%G*KeSB{YHs4w`9v?UPvo@jVqTY z6J5cbkK%gIku(g__gNOETFU=ID4-KQO~|1>jn1ZCA{To?sj{h772ZFqv4lX=+hxLt z0f^$mKUD7T(s(i9=qiHV-63o0o2b)#JYKGmipTg4^C4Qxdk_lf#iayLtv8e^8-W{3 z2mrFwic$YzWs$xi747o+4e=`zLjk>XU`dtX*{CRY?+bQ;r%1TN|Ahbm002ovPDHLk FV1iwP-J}2j literal 0 HcmV?d00001 diff --git a/textures/farming_banana_leaves.png b/textures/farming_banana_leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8eecbf1251e08347e964853dabed27c627c9c1 GIT binary patch literal 621 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww*V5f^YV91b zkZVMVV`)i7ei6gUb!R+)LR=+4A?N&p%A(Blj1q=5{Aa9yqI_V{qSVBa%=|oslFZyx z2Gj5SoIn{)kW6rXT1k0gQ7S`h!GDl)Zjhi$W^r;(B2Z}&!}bGP`hmh6AmQ-DqP)z! zbcO@c&)R`v>=6B>MaiiQU;j71hADH-&&^HED`EI{X4-zB7#m1gNM=b+D#MC*m(+nG zKRjI=Lo9mNPBP3sY#`7&-$#gJp{C+&Ly0c#s4Xck?Jw4Un`9r5EFh7qq;iyF$$`=g z|B0Km@&#=QFO`4y6A-l97jbT=B~E zd_O;bN8SH~H@zqHXF6rhKLz3xYk)|@-0-_^MPE{EQuf?NCdwPs1JIq_M( zT6xN}Dk&pf9Jf8hUt7<1gZRASkVVs7fs)D#-Al Ze$|J$Odc;*=K#Zi!PC{xWt~$(697ur;#U9w literal 0 HcmV?d00001 diff --git a/textures/farming_banana_sapling.png b/textures/farming_banana_sapling.png new file mode 100644 index 0000000000000000000000000000000000000000..821c64ff374ad182b4b0bb87d4a4f7a44b450430 GIT binary patch literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{FwwmonjgZoD2W ziU&OF--5C#{5LXFM$T`2DvM4h>ql94%{~0TwC?8m~C^fMpGe1wEBr`Xa z!Sp*nCs2kHBomyUR#Ki=l*$lW@E@d{8zktGS)81c2vl0cu>HW6exNW1NH{#PC@(WF zo#BA=vv!~uJ4AnJQF1E7*Z+aL#|S@MTYn?|&dS>`lg!Z}QV+jMQ$iTEsS=XHB!xDhR)^ zGb6E7kSje>`SAbd%MuT`zJ@&gw^+LCovDcanR_daZFs2Aq<`l0!Gv|If6Z@fY&>`} z;_v>(SGsJ>SEDuT5?uP-)RVvd|FdTg&ujiUi6us1|NnozZqJryrq;H8|3AYydunD2 z+HwT&SeVTH`2X^C9v|Ms~&PkjBq)CXzl$1*t??jF*;>6opb0}L+)Pgg&ebxsLQ0A8N` Am;e9( literal 0 HcmV?d00001 diff --git a/textures/farming_bread.png b/textures/farming_bread.png new file mode 100644 index 0000000000000000000000000000000000000000..6dca9831cc77450685c708758f2207294995f8fe GIT binary patch literal 918 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*bKrO34m@#Ixngjy_v!nwN`(;m!MB z47Z>CVEFv)F9Q=;6p4V@1QP;jfPwG7|1pU2vx2z@Q6LwjDa1yE;nUB*3|H@e1uM{2 zarp^Z6Nn8DRU;K{oB@HZ39b>u07VJ10$5^3 a7DHzLo3u}!^TzcPATdu@KbLh*2~7Yq>)hD@ literal 0 HcmV?d00001 diff --git a/textures/farming_bread_pumpkin.png b/textures/farming_bread_pumpkin.png new file mode 100644 index 0000000000000000000000000000000000000000..44db02e254c97d2d3ae003eb3192236258aeca54 GIT binary patch literal 511 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m1E01m1FT&pG+00007bV*G`2iyn` z5eysp4`Rds00DnVL_t(2&xMk|O9EjS$3GY4A{fdAq7Zl_2sIUvLP3KBbxr;ihcY5J{KhNjO^E`rW+x&Lq zWXSWVlsW>y*k4do^r0N+Xn;F zM!WBSfpRiruPp}2$r`l>C|2SCtj<-5h2iij!da%p&Z$VZXAMCo-fYYdKu*@kD-xRv z8pTQ+wP66zd^YL!ER<4572#`ty*j&(nVZ2e0 z3#JkQ@`^+zUFBt9QLMyiJoVXMZ;gZi#+{4P6ackhd~3u{2te3a3fl8Ce#D@Uwr-M5 zH@PT8el@vKl~PBzy))c7#lrjxeOrK^3;h=a@Chq7+kHZuO{4$-002ovPDHLkV1k^( B(3t=L literal 0 HcmV?d00001 diff --git a/textures/farming_bucket_rubber.png b/textures/farming_bucket_rubber.png new file mode 100644 index 0000000000000000000000000000000000000000..effdcac6668055ea457970d96759feec677d797b GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf<4n6@6vB)*o^npTqJzX3_EKZ-D zbda~jfQRM!i(L+laW7QXE)ncDtGK{rq*3~&mVwnnK&an(|00du^GbRC>{?QAez}w; z=gGzG9&zgF8)x2C+MZi|!HcunIBOQ$XPfy)Z~h1gU8NOn%(P(U#WNfYiY!&{XPW(f zV$h!G&?CrT(5Jj>oim4`^h&RZd%jO+KfUSA^UPTbRZWr$W&fX4dV9Zep8KWPduuj5c>jv~)Oo+hjj!xa06oIs>FVdQ I&MBb@0M0#oCjbBd literal 0 HcmV?d00001 diff --git a/textures/farming_cake_mix.png b/textures/farming_cake_mix.png new file mode 100644 index 0000000000000000000000000000000000000000..5c4b19758af8a5804049ebb615aafdd7c758c972 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf<4qib4wyWi{PXmRnd%8G=Se(8a zq{w&JfM-w0;^c!<+kQ2C`kSb7sUXvx?OR9Vzl4gQ6LkUsMpxLUux&Y#!+*kInx1Fy zRKLwBC(CNS-Q@ewUbG`J_LFj=@rHM6=Zb&MxyyXllp}TXl06$jJsN7~cU&-QI{M%}NB^l+>}pCDY;%g=oWI19 zW51ZiJH*R3fxTxYL&J{!GqUICHYVTJ*XWOaJZ+Ds>hHP1h39^j_=&{_dSzbwH%p*t isr@A{L-`-ppV-15#66uI@wXZ1MFvk-KbLh*2~7Y>4TyOF literal 0 HcmV?d00001 diff --git a/textures/farming_cake_mix_pumpkin.png b/textures/farming_cake_mix_pumpkin.png new file mode 100644 index 0000000000000000000000000000000000000000..171e486703dae23880edc55c83aa53c49815ffc5 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf<4t_yy^;wD?EkL2`o-U3d7N_q9 zE#y07AW$1?@VoP-+hCRN?r?J?>Zx- zw{uDP-tX`3K5ekya`)!1AQ_37jaL)yN7}6qV^+BBsWnqHb!VwN%K|ygR}*j5T-4Fv zNSP&U>SWB|aJ@)LG$7@hzm|hdZ4<|h{?@b?QGQMz%3GwjzH4kvE8sdcLNEG}l)CqW4{wFP9d9r6zIUYS@41aNGm9LKy<>2wPfdG!ZI!M1 hN9QQT&yD+&^*t^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{EBB*Wuq6=JW_G ziU&OF--5C#{5LXFM$T`2DvM4h>ql94%{~0TwC?8m~C^fMpGe1wEBr`Xa z!Sp*nCs2kHBomyUR#Ki=l*$lW@E@d{8zktGS)81c2vl0cu>HW6exNW1NH{#PC@(WF zo#BA=vv!~uJ4AnJQF1E7*ZWC7o9Pe{8~#uaoot*W`nfXUiTA*u!>U4)^7r)2Rjx z4_Q+h)^MgNR8>6q%4BwZ!S0p>FPHD9fciSWGw~eAaW&(4X0?dN!JNZV#>0p~dVz&G a6T_VNEl)1DZ0rR3iow&>&t;ucLK6U;PT(Z~ literal 0 HcmV?d00001 diff --git a/textures/farming_carrot_1.png b/textures/farming_carrot_1.png new file mode 100644 index 0000000000000000000000000000000000000000..09cfe7391f52a0230312094a3f2cc990076fa459 GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{EBBSJXF{CX)^p za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOxq6>V*@D*$t=l9Wmxg^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{EBBR}#IueVQ0p z$TgzGv9u&3zldSwx-%X?A+8djkaK=PWl?5&MhU|j{xeoUQ9iI}QEFmIW`3SRNoH;; zgXwpEPM{1YNG3Qxt)x7$D3u|$;6F$?H%QPWvp6{?5va6?Vf%qC{Xk(3kZ^cnQC?Q0!XYD{Sc8LDcqU2PDum780!<0Ga=jNv7l`woeGi^Umj18nLB(o$Zm0`uZOX@(8 z08bak5R2aAKmY&RGpjaqD&1Yo)+6Om%)HHZ`tS97PJXxVIhJ|o|NsAnAFicu`k%Pv zlG}VB?|*v3#TOE*84cEKx%k}vj6uwd1!+!g0dJTXWFH^ZP1rL3F3@ZSPgg&ebxsLQ E05U(Gng9R* literal 0 HcmV?d00001 diff --git a/textures/farming_carrot_3.png b/textures/farming_carrot_3.png new file mode 100644 index 0000000000000000000000000000000000000000..74e3dc89c8dc55cd5e870dc7a8d63b02aafdcdac GIT binary patch literal 507 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{EBBSLRs0>U1Ai z$TgzGv9u&3zldSwx-%X?A+8djkaK=PWl?5&MhU|j{xeoUQ9iI}QEFmIW`3SRNoH;; zgXwpEPM{1YNG3Qxt)x7$D3u|$;6F$?H%QPWvp6{?5va6?Vf%qC{Xk(3kZ^cnQC?Q0!XYD{Sc8LDcqU2PDum780!<0Ga=jNv7l`woeGi^Umj18nLB(o$Zm0`uZOX@(8 zHcuDF5R2Zc0iIk920SuH{VO)G|LuK|Ec&L|X3KdA|3<0X3pkn@6`vSHYfY*!{;K`W zo~5Sb%SBQ7s}U{?61Vpn$$HG&(AsxxZQ)9VK07PE*FFpr=B}L-EP7qH6~*Yo zYcA*uU$zcke#7^~%Y9Q7dRGfSap~gx!tZ6kTGDi!X}*dD!`!BATffbH{2b^a22WQ% Jmvv4FO#nUWuQ&hz literal 0 HcmV?d00001 diff --git a/textures/farming_carrot_4.png b/textures/farming_carrot_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6445f39126b115294f9b9e93f77ebce99c4a61 GIT binary patch literal 550 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{EBBS7EORakv2% za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOxq6>V*@D*$t=l9WmxgpplG+fy*XWt`##MEbq{l1_L&$HQQE7xWgf14xnjB6#6y0=K+^tBIDcL_4QJDbP0l+XkK Dd6dN( literal 0 HcmV?d00001 diff --git a/textures/farming_carrot_seed.png b/textures/farming_carrot_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..69bc45040a4fbbd43ba9063841ab88cbf22bcb0f GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{EBB*W>QyeNqV) za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOxq6>V*@D*$t=l9Wmxg^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{E8xlrW4vzI8HK z$TgzGv9u&3zldSwx-%X?A+8djkaK=PWl?5&MhU|j{xeoUQ9iI}QEFmIW`3SRNoH;; zgXwpEPM{1YNG3Qxt)x7$D3u|$;6F$?H%QPWvp6{?5va6?Vf%qC{Xk(3kZ^cnQC?Q0!XYD{Sc8LDcqU2PDum780!<0Ga=jNv7l`woeGi^Umj18nLB(o$Zm0`uZOX@(8 zMV>B>Ar`%RCv4oZ`o#U n|2J+QJd_GO5%(6tPnu6{1-oD!MbP0l+XkK4GlW^ literal 0 HcmV?d00001 diff --git a/textures/farming_cocoa_sapling.png b/textures/farming_cocoa_sapling.png new file mode 100644 index 0000000000000000000000000000000000000000..73c588f2525ae676735f8002c22094ed70f6aac1 GIT binary patch literal 644 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{E8xl+xk(zWW4N z$TgzGv9u&3zldSwx-%X?A+8djkaK=PWl?5&MhU|j{xeoUQ9iI}QEFmIW`3SRNoH;; zgXwpEPM{1YNG3Qxt)x7$D3u|$;6F$?H%QPWvp6{?5va6?Vf%qC{Xk(3kZ^cnQC?Q0!XYD{Sc8LDcqU2PDum780!<0Ga=jNv7l`woeGi^Umj18nLB(o$Zm0`uZOX>^^ zjQpN1jv*Gk$$$R;w`W#u;GF+t-7Ahm%l`lWFRxu@67;*@n@{p_siXSh8}&Iki}r5t zYnMNF@0pU<4Q^SUMgPmgS`W`%w_NMH{N3mman6MY{gfTsKIi^^P?H$P$5tGB^*;{~ z_#J!o|L*y{=>_)R<&HA;ytw!xWzE0&^QTWw{M%^U1CrhU@7M7IXOA8E@b$WV+vMr_ z#*2P49A$`bSbO(k!%{|`7pqVHfByV&a>CF5-1`-OJi6iI z-kK0~K(cqoqq!>LFIJxV%fG?=*lVsmoG%}(ZSTq7|L4eShCOT+lB@rVKTAyKC^0zr yQdTTRsQcNuKmWgd=5JeX|KF%!v+?6CEDVaP8J@{0tWF087K5j&pUXO@geCw&Ed_4? literal 0 HcmV?d00001 diff --git a/textures/farming_cotton.png b/textures/farming_cotton.png new file mode 100644 index 0000000000000000000000000000000000000000..8b8d3670cc82ee7bb5b2a244e785ea0b5072dead GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^KYO z@yzdEZJXOv zUamPXTxE@Z3{JO0`AEuZ$h zZ{am{HLLeeVoca<`o8~fHIF=lTGOSF+;ELkQeLcw6_2<^ChzsR@m1IQ+Wz_fmdPHP zwu@zw3d4(i7v{T6TRt~4@LIvO0Nd)xpHpq>CiUM@=VUEmb(GF}u6jUS;y3ftb&LQL70(Y)*K0-AbW|YuPgf<4qhP!rG+0Z3ju{BOI#yLobz*Y zQ}ap~oQqNuOHxx5$}>wc6x=<11Hv2m#DR(qdAc};Se$-4(VnZ>K;mfplGV=JofLOf zHR(tiS8?i3nOt%<~5Y644w=Qcc--1 zt)KiS?J#RYsg+bz*0q-tekyt@ntHK4%E^uq(tZB(UBZ+W0Vak+k{@a`T8~tR{r=SC zZmk{p_OzAnVwK>!wOXGLXst}5hc#~ zxw)x%B@E6*sfi`2DGKG8B^e6tp1uL$jeO!jMY}v*978Nlzn!p`x7k3T_5Q*wA}^I( zjWTB*;9YuJXJYFN72VJ!S8g^)X?m21@O)U&_aV8N{eCB+u$*{vd z@6PAdev{5g{nKMOwJJfwTSJM7p~|m9s!K8O zd{VrY#;w4UN%8lVvZ$TE)N0Py@cnc5w%5%+ex0@PuG~B4V%c7ot-mjP*0FWt+53CT q)9=}rq>!LLAHFnGH9xvX<>&kwIgI7r2^4WQj1fY;)iEBiObAE1a zYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8afsr;B5V#p$b;4Y>{|@UUKxe;HuYXpwft zuZK9 Pp!E!%u6{1-oD!MQL70(Y)*K0-AbW|YuPgf<4qib%!=2rX(mnJn(L9DDa z%BtcPaSnuY(;6@dPgI#eRR TUsYlr(02@;u6{1-oD!M-Npt$@a4-FgGWK_!A%j)1yT=|965Oa2o!QJcm1#_a! zr#kw(&zm@Z_EZb~1I(Ahp8mhQ++T9u-^8RR&(m6W_bd>fU|OG=p1!B>J#**9jwO;e z!xr%=_!dH?_b literal 0 HcmV?d00001 diff --git a/textures/farming_hoe_wood.png b/textures/farming_hoe_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..6b33f6ec31948b7cf6731c84a1c9684f90c4561b GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^M2+ zY#CHE3zWoxBAf*tk;M!Q+`=Ht$S`Y;1W=H@#M9T6{SF5&zrN9~rKc@`LPtGa978Nl zC#M`>oHNDZzqhxyu>lb1*wwTPPPdvPbVTYsjDG@WmleBFM*?zV@|XY2px-}8fQ`;5*;jt%ecmAkRAv9&GtpKtWy z^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww7gpTiU&OF--5C#{5LXFM$T`2DvM4h>ql94%{~0TwC?8m~C^fMpGe1wEBr`Xa z!Sp*nCs2kHBomyUR#Ki=l*$lW@E@d{8zktGS)81c2vl0cu>HW6exNW1NH{#PC@(WF zo#BA=vv!~uJ4AnJQF1E7*ZOj~ic0Wd2gWjPcb0wnv)EKN|`Q{COs9=Vnn+inzEfgqPuW z!BQEcsJs`s&c!TxHu{$Fles4~6iv{)vdYupSowjzsx@C!I(ArV<}j7b-tlb{gWtvF zGaZs^A2{+Vn3v4mlKn!oYWei;zdI+|2x#9qCBOBLbpE7;4zGW;S#AY7hr!d;&t;uc GLK6TGxvawg literal 0 HcmV?d00001 diff --git a/textures/farming_orange_1.png b/textures/farming_orange_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ab553c899d680e34f02b0658bd3984e01889f8f2 GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww7gYJWql94%{~0TwC?8m~C^fMpGe1wEBr`Xa z!Sp*nCs2kHBomyUR#Ki=l*$lW@E@d{8zktGS)81c2vl0cu>HW6exNW1NH{#PC@(WF zo#BA=vv!~u*a^Y;rA5i93}62@zlJGu&d<$F%`0K}c4pdspcorSYe;5EPAbEScbC+G zB9@*mjv*Gk$$$R;w`W#u=v2D9n5{?3fQjeEx0rYTw>>XnDVA~+7chD9|NnoBkLOl> f`2PdMJkP+u<8QU}|KoIDpdk#Nu6{1-oD!M^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww7qqTe^ZhGW z$TgzGv9u&3zldSwx-%X?A+8djkaK=PWl?5&MhU|j{xeoUQ9iI}QEFmIW`3SRNoH;; zgXwpEPM{1YNG3Qxt)x7$D3u|$;6F$?H%QPWvp6{?5va6?Vf%qC{Xk(3kZ^cnQC?Q0!XYD{Sc8LDcqU2PDum780!<0Ga=jNv7l`woeGi^Umj18nLB(o$Zm0`uZOX@(8 zcuyC{5R2aAKmY&RGpjaqD&1Yo#*@ap&33x7T_I3VUi;oJpKta?(lh&eB0os>y%Ews z>E3hWN`geg*`GU1k}DYRuG}%Fx5to4@TS=`&9EOeCk`BF5aX_x>(#^fgn=PBIN#7H Sx%@8BDh5wiKbLh*2~7YwGoHr) literal 0 HcmV?d00001 diff --git a/textures/farming_orange_3.png b/textures/farming_orange_3.png new file mode 100644 index 0000000000000000000000000000000000000000..af60f387975a7d24b0299856c6c0282bf8f2918b GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww7n09!a(E6F za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOxq6>V*@D*$t=l9WmxgODdIh(@7|{+thu5H_`EW!`Ybz;v0<}7Dov6 qi*I1eX`7V7VAt@FH7M3`BR9i~;J^#X!5ScsFnGH9xvX^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww7v}k-ZcqUh za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOxq6>V*@D*$t=l9Wmxgu zV~xY~BXUw3+gVSGXzw_vzUO~JsjQn$Lb2VZ?hCvJJB)MAwd_2>w9JOJUwi{&PTQmu n20Mq6O^2Uyb;TO+@Gvl#zw?isE5M`!bTWgdtDnm{r-UW|E@`!b literal 0 HcmV?d00001 diff --git a/textures/farming_orange_seed.png b/textures/farming_orange_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..3873bade454bb2804fe4926ed7db9b02ffc8dd85 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf<4taigt)BV6I)OrxC9V-A&iT2y zsd*&~&PAz-C8;S2<(VZJ3hti10pX2&;y^_uo-U3d7N?W{{QqyytlH4o=yZT7{qMR4 zi&jgKtSyGhb7LF01qvh&vDV*}khlAF{=`{&Uq}D| literal 0 HcmV?d00001 diff --git a/textures/farming_potatoe.png b/textures/farming_potatoe.png new file mode 100644 index 0000000000000000000000000000000000000000..50411f837b4a462692733b892bbde51f8bc0e8a8 GIT binary patch literal 525 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww(-(bG+g$(_ za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOxq6>V*@D*$t=l9WmxgHT|jDUc^T(Ud{*%^I%b>b;o^X16(aGA-v$*d|=W8mGU2Ipz8TQ-;}2G3yRyF>G>* zX?qCdCGOx!a`8W9AtcBQ1kEk;Ox?PUyk>Gbcl;Go%(??<*38U(dl*7JLedVsVgg39 Yz{22Z+pBDAfo^2*boFyt=akR{02iUMg#Z8m literal 0 HcmV?d00001 diff --git a/textures/farming_potatoe_1.png b/textures/farming_potatoe_1.png new file mode 100644 index 0000000000000000000000000000000000000000..75a36d9251c7a25e40a17f0f080e00fc960193f1 GIT binary patch literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww)6{t7pYR+k ziU&OF--5C#{5LXFM$T`2DvM4h>ql94%{~0TwC?8m~C^fMpGe1wEBr`Xa z!Sp*nCs2kHBomyUR#Ki=l*$lW@E@d{8zktGS)81c2vl0cu>HW6exNW1NH{#PC@(WF zo#BA=vv!~uJ4AnJQF1E7*ZWXh(+()$-Z0+iX5%;oz+*q4k=%I?sDY4H7pw?ByOp3{Il8LtEEzybpGNO)|dnF z4zF5QPJf!yEPk`*nqt)K(vB<>HinDw9}dZ0_|C|n;wZE+H7n=twdB)ZcBMYx-thUc a?jC86%6X3_{y7P>kHOQ`&t;ucLK6U$l%rMv literal 0 HcmV?d00001 diff --git a/textures/farming_potatoe_2.png b/textures/farming_potatoe_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6491d34ddc2d6ad713f554468e5a89678eda1b52 GIT binary patch literal 502 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fww(^690e#;6h ziU&OF--5C#{5LXFM$T`2DvM4h>ql94%{~3@%KCoy}YGO%dex5=}W^O8j z>34okpbRHSCOAK>q&%@Gl_9p^KS((@NYEv-I5{T~sI-V-`++U}Kw%D$aCl--US?i8 z!vX1M?LaYhi2l-|Q|C?XKlsV_;=BDPAFnl{RZ9hOhf3 zPZ!4!i{7_Ej$8*6cvf$k{-XTK{#EZkYNv^(E)5pEQ`qRFnL8^(l)moS%W}ZPr)26=gNu&eH0nHRikp+XLS8$b?|h;7;&99+-+j|2Z1t6!^dhzK zw5ZvE>LtBTr9GMgdFmaLQWLuqUhGYLJt6I|i;MZTj~hL{*KUmhI)=g1)z4*}Q$iB} DUS6;$ literal 0 HcmV?d00001 diff --git a/textures/farming_potatoe_3.png b/textures/farming_potatoe_3.png new file mode 100644 index 0000000000000000000000000000000000000000..37a2c972bf486830438d387b1c00aefe86cf6edb GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sDEfH31!Z9ZwBAbW|YuPgf<4tahS@!Es6OhBO}o-U3d7N?g^ zIw*KpfrrJvr(UzU>cQN&n2z5K@m3y!SBid0^tVkk@O;aKYPv=}5t{GI_;atd{(1%Ot#a z-MYYam|1b!k$KCkx5oS~XRkG9&92dVkS3IEKgp2O+%=+b{?-j^p{y|y+EN@PZ!4!i_^&o z5*Y_LlD|BU`jeiJkWlgKnKm;JIG_J?y61?*0hg8B5geKdPmFeObE(fym@;u%g2DB0 zwOcTQX!a9K2Q*+ou<>c>XqN*&TUK#LeWUHx3v IIVCg!0QfyfsQ>@~ literal 0 HcmV?d00001 diff --git a/textures/farming_pumpkin_big_side.png b/textures/farming_pumpkin_big_side.png new file mode 100644 index 0000000000000000000000000000000000000000..2651380b2f624c3d4859b36a054a6ab5059de262 GIT binary patch literal 600 zcmV-e0;m0nP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z4k0JvFreW800G!ZL_t(2&n=QmZX-t!1tYVvKV(ysX5bV1nm&PHKoTf5$*#(e7n(@}pV*rBXS=*q4$|FS1p|N#XP}GDf2r7s98qYxf733= z{2~>`EyLB1Z^U%D>P(bGR>cv0Z|keO>qZ=3QsMV^)U=t#zY%?>GK)5yDucG>4wW{| zww-gQ#-2NXOq=FTNh7;XXUfe?n=ujJU(y!QW>*{gVOR70S%~U}R3Mh)?)wwS@wDxn zMdk2*m-Uw{4V?j1Rei%hfXp3P8g0#S*J-uwOl5q9RM`19Boh@w?PR(^rM=E(CfZcB zf4++dl{!-yH6DNpT5r zO{PuSGCp>ZCe!IBQFc`43vFdUzu7c1U5GArDrrB6=zHw{A(qDtPyoLJF%Gd4qSzUr z-+<|D`D4}w*s3ZuGF&cAZLYEV{avS(?Bnwwy>w~Q(&nxFA?vTqRCjOl)>LS#KfI2} z@hpThlvC;MRe@N=$U^Ig=sRsCI|DnPDe#s7^ me)Fo5>4a!iRUGLZTmJ|1{4#PGCFczQ0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z4kI$X+a`zr00G!ZL_t(2&n=QmZX-t!1tYVvKV(ysX5bV1nm&PHKoTf5$*#(e7n(@}pV*rBXS=*q4$|FS1p|N#XP}GDf2r7s98qYxf733= z{2~>`EyLB1Z^U%D>P(bGR>cv0Z|keO>qZ=3QsMV^)U=t#zY%?>GK)5yDucG>4wW{| zww-gQ#-2NXOq=FTNh7;XXUfe?n=ujJU(y!QW>*{gVOR70S%~U}R3Mh)?)wwS@wDxn zMdk2*m-Uw{4V?j1Rei%hfXp3P8g0#S*J-uwOl5q9RM`19Boh@w?PR(^rM=E(CfZcB zf4++dl{!-yH6DNpT5r zO{PuSGCp>ZCe!IBQFc`43vFdUzu7c1U5GArDrrB6=zHw{A(qDtPyoLJF%Gd4qSzUr z-+<|D`D4}w*s3ZuGF&cAZLYEV{avS(?Bnwwy>w~Q(&nxFA?vTqRCjOl)>LS#KfI2} z@hpThlvC;MRe@N=$U^Ig=sRsCI|DnPDe#s7^ me)Fo5>4a!iRUGLZTmJ|1{4#PGCFczQ0000QL70(Y)*K0-AbW|YuPgf<4t_p$0iNrNGJrx0JzX3_Bre;Y zyXbq^K!oAI=kDaCstR=y(_JGM22Bizj=Ej=W5p5Qf|sw2-y6KU`{m!lSies(E|FI+ zNA|3peCWnsZ%xUsO8ZjuEE?U$$-ECVXlXd7|90#XR}-C9BSu zH*Z(nKbI6I5&Gqx@6)3qotYQwcmLfe`8IF*k$*RGzW%D|@luxWzL>W}$K==dV!p>- eTI=0hx$2`=cqu+RD0v&`SO!m5KbLh*2~7Y1%5)k4 literal 0 HcmV?d00001 diff --git a/textures/farming_pumpkin_big_top_side.png b/textures/farming_pumpkin_big_top_side.png new file mode 100644 index 0000000000000000000000000000000000000000..e2eb1a75f5528df9ec7a863145c6e976cadd9427 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2~4hMP3{LQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sf9S(jzH51MA3$uJQd(o`pPl)Vq@9%puj$f z-fiBm+9Yx%PqS``c+bGX@P{+u%hYYmtlQWd%Gd+WUEUul(r{MkjNIYMkd3oyKRypV z)sykJ+_mD=lGIC89`%L)dN>Np*RqQ`rPo)kQ~qV`_@=QWWykMt*6#f+PpsUc7Z@*E zc=(&?FJTko+euf{f;746r~OoU@j=>yse^UR@(hNf@8`|bu?{dYJ}z}H;j{eY4HJxF TW;{9s3Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX2o4PfAF2&=CIA2e07*naR4C6) zlD$qFQ51yd{Opf+jZIL5gp@K+_`Om`se^>6sCk|gya(wbMNvd#9Prw^_nv!B3S6Z9 zicd46p@%Og9~LRRAl%*U8Qen`rn;T{hmo@@LU4y zW;@6nRG&~3#S36u(jKJTEVxDqDjrd$k_Ks)X2w0r^h!}|zX2gu^$j5@WfSjwcf4nz@n&7cCRGO)$M+Dk33AeP#eYoG0#9z zKa9}+dooTjh?x2MQJ7+9-$A7y$A zCRG!qaFhaK4_tnITHS$&K3;ED_n@jLX)f0TkzB2J0I2FcL#gf{ik#jwm$ygX$Lr0J ztdEQO^a6kZz>fPo-Yx(<-gE%I-!%V2VgVox)5GWbqEA60A_y-Y)odAg$lIxU*9Qst z1k&(K&GN_3CoWc`?u7}`+QDKfp2q;81Huq)W)TIXQL+OZsgyK8T6jW+cD3g{NL7!& z6m5uvSYUf?dWONCK|}z20M#d+0AhQwh@ff);)sYcxg|*R5A%^NSJ;GpZU6uP07*qo IM6N<$f*3Odk^lez literal 0 HcmV?d00001 diff --git a/textures/farming_pumpkin_face_light.png b/textures/farming_pumpkin_face_light.png new file mode 100644 index 0000000000000000000000000000000000000000..cef48664d85091313841b76e1ef9ba90b7028a10 GIT binary patch literal 632 zcmV-;0*C#HP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX2o4Pk4eT0xBLDyb3Q0skR4C6) zlDlqGQ4mG>N!PG+ycfWtwGAo9@i*A#UsjCQZMbo%(z1t?g}jdW3sG zs!4c(wB7^ZTGiT3y+`EUdjKGvs&5b^@Wj>h+1X^%SDWX&bXV zf4V)6PY-tF>}YG$$6Ejl0JigU`Surp%k%F5uFk*y4~YeUG)xyS>Z2|NiHIP)cvO=` zOmJI!KxJ*0&v zWazZ^yauW2?k`0fA|V#oTAPkxup1B&0PjKd+!H`-w-ympO+XwGQAW1}Y5oD|YAJEa S?TTXn0000F6yYrJh%9Dc;1&j9Muu5)B!GhKC7!;n>~}c$c=VZi`d=vng(OQ{BTAg} zb8}PkN*J7rQWHy3QxwWGOEMJPJ$(bh8~Mb6iY9xyIEGl9PX6=%zdf^RLuaGY0jA_T znU9hafZ)g9pT^8U(46+Y-fB04xWW^o9o!+O%nS?+j0`t?`Y8Oih7AbZVm1~m?|g5+ z=`0TqPftax1IL3R$%||&uGAfP&zjR%x;*lMeTcDgPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX2o4M)C7dfE1poj59cffpbVF}# zZDnqB0000007G(RVRU6=Aa`kWXdp*PO;BVmWd{HN0o+MMK~yNuEs{xY*`Bl9PR zB1|l{SpFF1b;C%MCzm(Y#aA$Ww=fax>Fr48+%` zv`Mtt&H8rO&3toi!=Ipx; zv#kr2@flKK%O8*oRCaB1(-kW1c{DT8rmE-rtB6pkBb8D84yaK6P{1yh_fw|lejep_ zonPosj@octD~|8If&Mmfo5zFHPPypY7=!e(^QEUM?KY-z7`fb(*v`JOUGhD7sZLGfe{;I=F zp8fqGy>x2B)W)^^F7uDd)bMEI+Ei$>-@T5={wRb6%Bghssz9uwCup4!=SG{!la4K8 z_8l>^-@j}&i8RrM?>4Q9<8O!vkQ*{SY9K N002ovPDHLkV1mDD8Lj{T literal 0 HcmV?d00001 diff --git a/textures/farming_pumpkin_top.png b/textures/farming_pumpkin_top.png new file mode 100644 index 0000000000000000000000000000000000000000..edef2d94bd59cd02eeb0dbbec9206e6e638c9521 GIT binary patch literal 623 zcmV-#0+9WQP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX2o4M)Dh!l7lmGw#9cffpbVF}# zZDnqB0000007G(RVRU6=Aa`kWXdp*PO;BVmWd{HN0oX}IK~yNuEs{%aBS#PgBeSwU zWK)!8;1m0rK7nCC5-2svuF8)Wn(bRe0D&j}{QXKiD}&0+^bd5yu5TQl*qZleyS!8m z(%oGJ1Aq)?po`9bso04eQE0k<(=N#TA{E9h!_|*(#B{mpOq4`c#SwjP>#Mu#MjT&K z;rDmcw3)`g5q+mJi#DAqgSO@ll{U?`opYzgo;!d{o90eQBfCy#%FRrhF%jQi(iYKX zR~!3bSM&W@i0Xz^AeQ6q`xD6VwC$Wl#xjIcW?97RA{R|ypG86EQB+ZQ|azifmp@JLhFd=J8dO913S+-?ueQF z`DL?3q=`2CKCLgxz&{WXAa`Vb$qu4^^Qw~RglJV&9O)ff{|EE@GIALu=M4Y=002ov JPDHLkV1n8|5Yqqv literal 0 HcmV?d00001 diff --git a/textures/farming_rhubarb.png b/textures/farming_rhubarb.png new file mode 100644 index 0000000000000000000000000000000000000000..849f61bf4329d95fef070f9fa5ec649fe3ce20db GIT binary patch literal 502 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{FwwlQU}9vRnxk za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOxq6>V*@D*$t=l9WmxguvwF53b#-fFV}L0kEzRsSa%hKXzBesP@Gu#+K;qxq)$ zo^=UFrU@l(6HMj^V-Da^6yUSqRS@Huw8RJK_oyhR9NC+b<^dhU;OXk;vd$@?2>|ak Bre**D literal 0 HcmV?d00001 diff --git a/textures/farming_rhubarb_1.png b/textures/farming_rhubarb_1.png new file mode 100644 index 0000000000000000000000000000000000000000..706d8cf6d56b458f6de2962c4033f25c3ce3c80f GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{FwwlNLH?{8j}l ziU&OF--5C#{5LXFM$T`2DvM4h>ql94%{~0TwC?8m~C^fMpGe1wEBr`Xa z!Sp*nCs2kHBomyUR#Ki=l*$lW@E@d{8zktGS)81c2vl0cu>HW6exNW1NH{#PC@(WF zo#BA=vv!~uJ4AnJQF1E7*Z@_Of>R8 zxqANY33S)~Kfj__(sd$Gs#$Hnkn?m$JLNM4F%5#zX-0SCKK{S_emzh5Uo+!FIVou= zNk4x7muCio!?F9%_EhjX7(KBE@|3xijhV%{*$-Eq7oBnMH_#1!Yj&!>sK0XY)c+q> afFZCd>D^_yq#mF{89ZJ6T-G@yGywqGkGQb_ literal 0 HcmV?d00001 diff --git a/textures/farming_rhubarb_2.png b/textures/farming_rhubarb_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2aadf5fde122960e9f91c6ff3fe35233e16de4d9 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sDEfH31!Z9ZwBAbW|YuPgf<4tYLJmK)P~Sb#!rJzX3_EKa|j zWa#ZwC~~y^_;-!MpTf1x_037d48vImw2w|BWq=wn0uN>XU(iNU}?>B?U69?(c z(4MHne79xJOzT`)nbzRM8gj@ebKc*M<+-k_zUFy;?s@#+M3#D}+viTEsXsP^{>e1H zrytPK<6q4d;JYrA^K?(X+|Q}a`FnO;-MH^U{nYZu+;?sSYkD+jp8$HC!PC{xWt~$( F697bMl`{YU literal 0 HcmV?d00001 diff --git a/textures/farming_rhubarb_3.png b/textures/farming_rhubarb_3.png new file mode 100644 index 0000000000000000000000000000000000000000..833f65b4d75e1874bf566a2d05c9ac75b0455c78 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sDEfH31!Z9ZwBAbW|YuPgf<4tYK;on!ppZGl2-JzX3_EKVN{ z+{t^`fX7B?p2A*fX|_!c+cs?Vcy>}@+p!Z&j7*^~ZJYFZ6*ZdX9dcc_$m3Oo4VP!n zZ6}$6V_aGi+mE{YPfVN}nN@bo%V(bR^w~FlxTLRP<5ckuni)LhSr?0;=UH(}pPuC{ z74Oyg8K$3)R=yP9lsLDWYu@+i>V!Z literal 0 HcmV?d00001 diff --git a/textures/farming_rubber_sapling.png b/textures/farming_rubber_sapling.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c9f5de0c191c2fb3c9e113a113ed69138bff8d GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^JsM z;N)AjnLrWF0*}aI1_o|n5N2eUHAey{$X?><>&kwIgHJ$?^Mp+vFHq>Lr;B5V#p$g< z2f3OYL~61hX)Wn)ymZfq<$bNw{EPixrq((-z0v*jXz3c&8G2$$%T_!K%CI}PN1uVgq>(Mx+ekjBKx1jbBbMLh9IxaUnTDVm=wso0n|R zT%5b~qx==U4)bC!=~>TRm%6J@>^OCG(&eAuDtZ^~>pbejcFwRwGUdSnzXi9yeq;99 W5#n{Q?w1qLV+@|IelF{r5}E)?uYE%R literal 0 HcmV?d00001 diff --git a/textures/farming_rubber_tree_empty.png b/textures/farming_rubber_tree_empty.png new file mode 100755 index 0000000000000000000000000000000000000000..1792951edd5e5783c39432d545a82be85c54fbaf GIT binary patch literal 835 zcmV-J1HAl+P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn_ z5CR+B@r3A6mdXN25~mJai_QxT^b`9rl-2QKJUG+i;m|HoR8<2 zCub9NE@3>%`Rw2a0It9EEItO3Y{30{_t|>v4D-_!!#pPu!@OL9QRd|ei9nhqG)>R` z)4Kp%eg0)2k~v{sF3Ho3)H$4UsIhe3W353$M8rUvS;Ps(7;av_#)X|dX4~h98i}gZ zb<4QOiNUj|Rsi&U00V*%oU>RfBx3pN&p!Zo`_}vP3aLw|>W0pH+NL9F1R#V+R1kyW zePA>k(8oaE^#JT&-Nkn;o0AR7MTHZgY8#?P5^HJN0D!0}O&2i6(D#9e@WzYJP}LP} z(=je`FhbRIbalt4UmQ}k9Wi*&hZP3ak~+t7S)oxuz>09^^KTdq60A{%gB1TTe%-c+ z5yXHqs)!Tns=)_O3?8wLFTekZqr-1eE2t_#m28l$`^P}Q5Mhlm%M!|ELs8^3Z3nEK zcJ?k)E-TumC(AN6i=3M`Ugx``U+@|bz!?;^%IRXsx!I$1ZHuDpU)g0golq_ow0=Eo znq}O2?*m?a;R;zcpldrsF$h9lq)avniaf_+@V>{Tj?Q9|$e@RP5JG14|Iy$={Ms47kbfafk>Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn_ z5CJtR2^p@NZCU9<}q5?q+?yqS0J zJzY%Rl=LjmIscDy{_3^*I`RF08xvCi9C&v-QJBLxOAyvD{cM_-*RNw{c9AQ;jRLU$ zt<9i>nYl%@18z)AF*bS&0OuU#qyjiXUo$heK$HtJFhF7qo~ID&&|0OFT>XK%+rOcJxU?j`nYZ3N)VsV{Ki2t1E+Yyr?BDZ%4EA7lh)zrMu4_umnh z6AHBvRhP+fLLncq6el=qKtNZA|2+ANt(zJ$k|W2u>AzMYUlZV|RK$qGTFY`Aqm@Q0 z&}zlO4?kbWSVMQ$p;iA7Pg8Xn)`aQ(&SIU#K^o)TiQ9~i-r_<}FO%bAD?j-LfVqVw z;&KImp_`Kwua@}Z?jwv?G~g?Qug-nR)4!iHGIk&BRg?IXuJ%^u=I4n`WtFQB+qMyg zH6(F@78DxIorh2O{FA-ZMp3rt=X_>gERgek1_v(F-`fL#=LdwjR7t=7Mk7C7{T+bb zE5od-D`b%>QRLU;0cdUO$cX!X8lg}d;Y3iczEUU3Q*78!PjT>iYJbl*ibExiw(nwk zVV=M#taId}5Nj+0zovpMjSXl)uoc6JQ|B{<;!r6~K!hmpQA)8~j)}rB16NCn2%TNW zd9$fGYaV`YXFAlH#pQ&xg<3qVFaihLcKioc3az!K>$7eECdWqUczX*P`1qX`#1nET m%9RAq4=~28Qs20#k$(Z;HXch*gveL`0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z3pEH~gop+J00H_*L_t(I%cYXfY7o*UA3{&Q4t(G zMd^ZNMupAB;*x#+Lb(RmfbuX1EVqg&Q}R)ay`F(oEHkn$S%&2J+1Mut5gz!F;qY~pJoa|c^$q4Crm@?(;u!a#9`FIE!%sKVr zJi=BM09M7qSr>@P2Kji1?bk5*1S2FmPe3Sa$K~i-|Hgy8c7tgWv*uMX(_;`0Tl+%* zP7fw*byB(q69vBTkw-d0{NjW`mX?13FJHho2MQqlC zMTn1YpDp&Fdhv;Seuh*I7>#rTvf&7O!v|AwLWdH#53(SF!$Ao)-I1^FG; UvMH`M-~a#s07*qoM6N<$f{x1#`2YX_ literal 0 HcmV?d00001 diff --git a/textures/farming_scarecrow_front_light.png b/textures/farming_scarecrow_front_light.png new file mode 100644 index 0000000000000000000000000000000000000000..b4b3cf289b9525f2d4ae8004719a924434bb925a GIT binary patch literal 641 zcmV-{0)G98P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z3eCM9?yGOiu z+%jD1`TgH4`6;Hz&|0HYP$fXkA*7Ab8F_lnoA0eLf?B)hF)N*DWJzL`J&Ghk>Kvqv zaLOp1GtH=Gy*9a|U%yby12&*s3<9fE#uN$JAi`cuK`N#h+3AOjLyy1+3u(KozOEuI zMR67(tP<<*8f3$Se0a_@qegKAz}}xB&AU(x3XBu8_o{<11=4jfMZ&@M0K0OV?Cbt&SDS>+bOa0t#{?YW~;_1j+l4Ln9(i> zhsMhVV1fPMh(@qXJLs|+ECFz^Jz%pn<-sV9Xx1-^2*(AZ0cdX>(+HN?4~|$3mS}Gs zU;a?YO4Xl)`1tn8WDm;SPu%fRq;kM$WXUHz8DLjDFgXYXw#)l&{c41thdt)qG62mu z1rHFC{4_;+1C+18zc6NI_eYiepzge## b`A_`?RC(3*j&oOz00000NkvXXu0mjfqj(y4 literal 0 HcmV?d00001 diff --git a/textures/farming_scarecrow_side.png b/textures/farming_scarecrow_side.png new file mode 100644 index 0000000000000000000000000000000000000000..e22e84ba1dd15382c478abe92c35b03ffd9ba9f7 GIT binary patch literal 613 zcmV-r0-F7aP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z3pEq#;X&#E00HGmL_t(I%cYXfiqlXOhrfGsle9@2+Jab&2zD{dl)9MBJb~cC2XNs+ zpT~#s8QeOEf(}Jov?vw}g)mLpbn@?B7qy+VA_{)H1NS@p&bddtd^$4x;>F2V?gu%h zD$rV^b5Jgz8VG4)bU~Tl@ap4er=U(B_#C4%jdUee+o#GBq%J|)2&awGC3Qy)2jRZR z-@T=30ydyL3pPKsz*=rlrl9;V8WP7AvmP^=b^!_HHmCNZ|M0I(VsPDdab zU5eEL+wY;v9FXWD1);DVm&^CF+XNS*kWHG<^xBxs6$poFy?_Etu|@z@nju>OWfJ3b zdR&ac!x4sqknv=Oa6K?NmVbvI>m_%uGwhDLT`HiO3Z2C~><7R9!f+5GzJEYhB{EwQ z1{&%1$QKcI*QZ*=SiTRo$9Pg3VLX}9^xE4dX%0RhB;_(k`VlHnU`nLt0bsJ_{yl(r z{^ZQmk7&2he?>hS1P6x!@cPXc&QJS)l{aaE0;rDxaDLi9Sk#{hwhfLG?5JPqal`36 z-X<6h!h?s$?8NCj=JIOBv&U!q_`^YnRP00000NkvXXu0mjfYmf>R literal 0 HcmV?d00001 diff --git a/textures/farming_scarecrow_top.png b/textures/farming_scarecrow_top.png new file mode 100644 index 0000000000000000000000000000000000000000..3a4addcd66f7399cedc6e9c415ff044c18ae5ec7 GIT binary patch literal 639 zcmV-_0)YLAP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn` z3p51=F2(u)00I9=L_t(I%YBniYZFlv#eeV3o0(=NGo%4&As{rXHl%`^euA!a*Nt1h zkDtV?Tm1rdBVwtdn1UEB1cJ#VGo3&0Jr`jnomf1(d%5>=IOkmP^7+_u4`rnRaFx@l zYt;Q3>iBWkYK(@1R{i?jXI`A20B}8-vJ3I%)kTZJ&F%7^p)5@vJPx4lFFY~tc@`H~ zU1E&E6rg;dyN8f2cJ+~}xZ`bc-t5RMO~}%O4_|JZrpXObO57;ISin>px?Y4*s$rF- z3F^~i*$7koO3)p^1yq1V;P??%=almVw^x8vTwZOpP-o)-S(?xZBFwidtZ;CY5Bd)2 z$5e|sPB+5s3CeX2z}a}Kh04-|(Qv@^WQsZfJ=a(-MRXlZI!6WpR_92si@P6Fu4Wwd zVkY35fXl z9iuB`zF-g=q~E8Q&2jfb^lFI{hTsM~Jw9x#RCPor6wd92!gvHQ;d!|tmC Z`~`sUPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyl6 z7a=$y_CX>@2HM@dakSAh-}0009HNklonD{?TDnMCLlzb`EOA$iN>&q-&AzP~<0|z3CHJc&aQiCLtsdO zc=2RMC-a0sH07il;7SQ-lmaaQAfIsna5E_;NrIRsREsWXkb7^|Fr~z@Ew`qEk1mF4^s$%o3Y6+FH*2gy1tD9ww7|F(jtmqqm^cLF^7?|IcwhX>C*%DHYzxl$taqz zzf)%#&v9%MCuL$hSX+8ouPqZrW4`;Nf#cY8{E)6cVs)j&-;Ha=QWAtSI{uLM?U1!n z0Uak;hJn;t^Vj(`mz{v+VuoH2aXSdn8k9=t`Vo!SH~g>F3&>|3nx0Rr6~;z6|5C*Y zVF(TncKGbsI}E#hY)evG%n>V%V_QVw1jn*SnFbwygkzfoqY3ialRZBF_>e(3MQFiq zM-9@sEL}h1xX~qvHI)Sy*D-nWXp^T0+sx-NStrH*&IaPkPu|tFl?8&qh!bysKL|;* zMk`G(h!6s#gtTojo5hUhiv7D4b~jgPb$m>KE3Z%6^ZEX?$(>T3M8hx~Q!N)kf)oNN zCB2{rQZSp&`1Pnky;{UHfu`qkGaU2${ayZTcF|h%=w6MSo93U(4wZ5q(=f+$NM%|bp+b!CB{|GYpe4FU`VxonE<%^Iz?Pogz(qF7nX@gL%I Va*JV5Iz|8h002ovPDHLkV1j5}svH0S literal 0 HcmV?d00001 diff --git a/textures/farming_soil_wet.png b/textures/farming_soil_wet.png new file mode 100644 index 0000000000000000000000000000000000000000..398f72774fed5b831e15fe08e5a61ce71bfb4c2b GIT binary patch literal 880 zcmV-$1CRWPP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn^ z4+#$;69f$a000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0008ZNklE-{uzECh!s)=5~8$-q;1+H zuE+M+%#0s1_RQSN!sSSx&gSSWK5^Ez_5QYpVF*5cnouvhG#fQ)UWH#@T_X%|B&ZB7 zj`z?4)`jB64@uSvX(5Mm=?*~{m9F!#Ug+gfv)#fY*)_@JnRxkrD8j`P1 z4-raZ3Ivssg|}0oW*bc7ISSCL4A->@qLe~|>qxYMMWToj#e9(vOk<=1w9*8_kZ~BJ zm8M@*1kx3B znl4HeI2D&TO7JH+t_Azs7R_o2%QBH#!`01*{v@Xkgmd_J4qAg!1=Bd=?$eC_Gt8h` zb{GUPg;t1O4K0CG!RezeCl9;){LAkw(lwn%6+c{3C|E9Yl!jytLO`PeQi6Q`^bs$< zf5L1DLJQtp-r-itOk>SeKc*<4RWDO^;OTjnXBS_P6;N_4PLH~X@9x)hXLpPFY{|QE zOgzgdG@u|{gJ6RzAybe7CoPNP!#2Yp#su)k5#u1{uL$Zu0W5%)1xSzrgoJRp@sO=E zUSIb4vQ@)0fk6;6S-`jVYupWDw1)GxhgWg<*q^Z5@Gzx8$&c7=Rq1Tk82SNz5Fvvw zrsP_rIqcV~^o~089(K6CoimRT1Yjt*ypCv9O`aSd@b-4ZH|GzqZ42?^i^n=!WekIm zw>Kl|RhL$Ci&y{j(P|?=0$$nV!C{BtIHu5=qR=$!75)R=giZMGX2Es<0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn^ z4+$b<%vg8;00QGlL_t(I%QcW&ZyQw@Mb|lJF1E+lG`^%wtu!@h(xeGRRRnK+K;i}Q zWB3L9G6XzDl|U5*LgBQ3GY7i@wB4VtWmAx zNs>9g{`HZghdW#kBCy~Z(8efS?a=OzSg$SjYGqv4!7&EU)zqp5l4Oo@6rS(#x-%e} zEfAwH8r12wmUL}#wBpHeli&X6AR<@`q6L8ZRuO<|xj>!iqZM%=whGe=R93^NgAXd2e`I2sUgVuBA+>Uzc(x>& zE;v8iXSrG7y9VDgm}*9Sx7*la6ipdNGjc%&1tiIwCx=buvpL(1JNVi#j3#7Vm&t5} zY*Jif&?3T{_JG-ZjcB14Mtlr!Z`d^DpMJ#URfqr6AI0QzKG$K)Ml9-a2{9;woX7dI zLkh)!AAbCW>2gKAQoxELwL+XMumaQN5)CK?Ml1C5&mZ&kSLbLAN)(f5#(uMbY=mL7 zAl=+LS*}+c?AJN_WS7+%a=y>;!F|-1t&%jhOC-sRLNTBhMx<7-R_G36G++$mGd}ah z3g7dvz@rB>dSQG!05Aw+G8vabkY!_q-Z19m;SOkxF$za(UR`ylR|0xBQnbQAOJw8e{;uTkHA^Qo+tD|&;7x19l{LWbIQkylqA tkXwHkAjo;N_UiNpF)6|(6{_Wce*q~QV5K&DN2mY*002ovPDHLkV1m7pjimqp literal 0 HcmV?d00001 diff --git a/textures/farming_strawberry.png b/textures/farming_strawberry.png new file mode 100644 index 0000000000000000000000000000000000000000..0a80f45ddf486546c7eb9556b86503843eaa5183 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^RlY zSq#SNHJ^bLXMsm#F$061G6*wPEVVBK3bL1Y`ns~;;gILCvsWZRl)tGRR^OcI-5Se z-~V4iZ^Nxe#}54Xe!o6-#e+4v|DQ@o%#=3-YFlFX#HHbIV`8njar=;V=7V>BIl`_way#T~C3!_sL9SyXum! z_E#324~xE2A@T7k>k^05m@QB3o#*f?A2yFnYG&>B1dL^Cw=qPpxA>LTyhmZj8TMXMxRc_zI&ItCS9;;kFY_{g z6zR?rnEmzYnyX&S_Zcnv&MY|`-X79;s#Wle$y2_p_lr&SdN$l}nfL9&kCOM5uKzA- gt~P&Y`*$}}yk_8!YeI>ZKp!%Ay85}Sb4q9e0Ag~1lK=n! literal 0 HcmV?d00001 diff --git a/textures/farming_strawberry_3.png b/textures/farming_strawberry_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ca77389e0ece5a7ba20785684d45409cd4380b26 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*x381$4un6YB1eHl=Yy~NYkmHiHfJTDXP)!Oe9fI?3_T^vI!PQRVB zF^kDj#P$5_*w%(?2TwI@``K{AD`!srhVJ;3rAZqFIF_7YNpw8@m)l;!RZCZ7^KYF; zdh4{CGG4xJn`t@6y4)pnXBtmXM#QL>|!NtrbbHeG%5@)#>Iw#+e z3=EB0H#yhD&A3h8bm6bX41e<`8Q*k1-FR8IVNcE8XDeRKeD-JMz6X_)7~AguUj&qG zeAHg_^>6X!PyL^l-n@2sBZI+$fXnwXZWhh$nzQ=jgFw{+uk&5Y3a=O&ey9lSZ43@P wKjjjevh=@S)4$2x{J=k9cI^`D2W$&5IS(z@Sx_lypfi6%)4TbJ57>gZf)NO7!I4Aa}!oj*ZiQ9`O}&a4Rusq>sJUQ=q# z5H_jSy>mi^?T_d4>u1mGeSXKY3u`_IZo$FV?%=ZwMmkcQOBcFaZhnso|F7ODNbYNaBOpFX#^qw?~hN2e}u zEnQ->_@aoL5aWiMa#mT6F^#tmuMPP7#nf2Gs_sBA->0-W>TDmL`QGOJsoMO5%|h+T oe(se0|H>P)mfTsQU8DVh&%`YBlIxknx}dQ1boFyt=akR{0FIWONB{r; literal 0 HcmV?d00001 diff --git a/textures/farming_strawberry_seed.png b/textures/farming_strawberry_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..08c958d9e850647d0fcf2d9e033fcbce5b08f4dc GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*x381$4un6YB1eHl=Yy~NYkmHiHfJTC)N`InAnpiqdXi(`nz>Er~7 zi~}6Wf6^0voIh~jK!M1q?T(WUv(L~dW#m?5ZHYP7^hEsF|G>ciYb7NlB&O>ot61`! wC}j+MP#<#TKSgTe~DWM4f D*65B` literal 0 HcmV?d00001 diff --git a/textures/farming_tomato.png b/textures/farming_tomato.png new file mode 100644 index 0000000000000000000000000000000000000000..b112d485d824443af9da899565a6125c52812bbf GIT binary patch literal 581 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{FwwvtrmM+Sv~l za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVIO$T|*?aCl--US?i8 z!vX1M?LaYhi2l-|Q|C?XKlsV_;=BDPAFnl{RZ9hOheT zo-U3d7QIV@t@#cah-_ZXWGy;>VbZI%2S#%ypKiEewUDnSq^xVoai_&5m7E?GU5{>j zERO2p2vW#&QR)5|_$d5Ou0t-%BsPY*x}Cj(5)({vBO?nhUh$l4qgK|Ear%{Wd+W1V zH-w|^h_60pep1HJVXKec7k4K(22mO&&p5yBv82G&Z;GSL2 z-&Dzcx2^d*A*eHli9tcLZlax@Z*2tg><6L@4lWTUrC-ipI?~Ki)@-8wfP>-mrd!L7 ita8j>G$+`*j(NUA*|mKiirs*IWAJqKb6Mw<&;$TJnbY0? literal 0 HcmV?d00001 diff --git a/textures/farming_tomato_1.png b/textures/farming_tomato_1.png new file mode 100644 index 0000000000000000000000000000000000000000..2e7c425ed0fbea8fd75f8fb699d7e23570320bf6 GIT binary patch literal 482 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{FwwGgCXT*0~NW ziU&OF--5C#{5LXFM$T`2DvM4h>ql94%{~0TwC?8m~C^fMpGe1wEBr`Xa z!Sp*nCs2kHBomyUR#Ki=l*$lW@E@d{8zktGS)81c2vl0cu>HW6exNW1NH{#PC@(WF zo#BA=vv!~uJ4AnJQF1E7*ZydIWXRhIY_W!%>jDF+2n;%?aNw)v_ZPLTb@7EvM zt?(=2>VNh7aYi}Y=AWo|{@A(g^E_>dpAkDH7xjlGmLL89|9|15xuFmLe>@3f%GXO2 jaCI4J^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{FwwGZzs|RNfC3 za*Zf)EG@~%FJf4^?u-Xeh^quB|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOar-;4Wuk2vm_^#Va2;k>OhfJ zPZ!4!i{9iv|Nq-Ft2T5h-CfMaBg$OE|Lp&F+Zp}F8#g?-#FA|P^V_6{m*1~HvRmO- z#MS@m_v4Imw#`3L@%*uK+vj=O5^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{Fwwv*4GR^KA}T z$TgzGv9u&3zldSwx-%X?A+8djkaK=PWl?5&MhU|j{xeoUQ9iI}QEFmIW`3SRNoH;; zgXwpEPM{1YNG3Qxt)x7$D3u|$;6F$?H%QPWvp6{?5va6?Vf%qC{Xk(3kZ^cnQC?Q0!XYD{Sc8LDcqU2PDum780!<0Ga=jNv7l`woeGi^Umj18nLB(o$Zm0`uZOX@(8 zvz{)FAr`&KfByfsXI5?KRJvPYc;I`&zxw;lKP~>AZ1NWF`TOLycbotI{X*}XUL=S9 zpI=jba>LC!rN?vo`6bU)uSPx!k9U@bwf;Y@4rJErBo=i2|G(}P z$Bx`nvupkv8yFb8S=IOBd_kA|VbLCqmkg^CuDkiKSy%e`K40RD+LR>=#S0o@uL^3! zH8X}VU-;9%W@ck!o(q3)@dW^x-)z4*}Q$iB}!lm51 literal 0 HcmV?d00001 diff --git a/textures/farming_tomato_4.png b/textures/farming_tomato_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f5db4e30a01258b54f6281f2d28e57ef309770 GIT binary patch literal 591 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`K2;$RB|(Yh3I#>^X_+~x3MG{V zsS2qTnQ06R6}KLHtv%uMIEaBcSy@jwxR~46+t`>{!C<4wMiVaw5_$Qs7kmC(Bm$SelvY3H^?+6GpPSxg<1`4v5c>21s-{FwwXAqV|BMw-ln*Rgl$uzQnV+Xnl9`*z zVEUb(6DY$8k_paFD=AMbN@a*G_zzOf4H9(8EKbfz1S&0J*nVJ3KTwzhBpjYtl$V*8 z&Tv5bSvydS9iqRqC^?nk>;LB0FlEm9xw)x%B@ExrOxq6>V*@D*$t=l9WmxgwdiV7npf4FbUHx3vIVCg!02vSBr~m)} literal 0 HcmV?d00001 diff --git a/textures/farming_tomato_seed.png b/textures/farming_tomato_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..dbef76e7984dbf972498ce7fc0c9917a85c0378d GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85s1GL71^(seKtxkiEpy*OmPahde(Y53hGj3Q#E4)5S5w;&gI? zM8*M*r=e|Nr#m|NU1oRGu7C6zVnU^<&`3Fyv=l*YN^q5re0zpUXO@ GgeCyv?@1N_ literal 0 HcmV?d00001 diff --git a/textures/farming_weed.png b/textures/farming_weed.png new file mode 100644 index 0000000000000000000000000000000000000000..466728706c050be8a875f4ccfd71cfe89a571f1d GIT binary patch literal 591 zcmV-V0Px#24YJ`L;$M*_CX>@2HM@dakSAh-}00051NklfLOTQsQV_b`<}95(!NFT^ zN`%M_fo@I_pB6GD)fRK4TnF#}`ch+;e$%`E_r3T3{@;5C{|O7=D)dlsLS_E~fcB?V zEpW;?fT?_C|AJW||Ax778icpa4?py@K*b3vPH@V(XL$g-R(DZxLZ_T#Do002ovPDHLkV1n!j{hR;* literal 0 HcmV?d00001 diff --git a/textures/farming_wheat.png b/textures/farming_wheat.png new file mode 100644 index 0000000000000000000000000000000000000000..a508318d5b6d5f8a65df2fbd128c2456bae2a501 GIT binary patch literal 536 zcmV+z0_XjSP)Px#24YJ`L;&Fc%K$uHVo){!000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn^ z5ds&-Gt24#000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0004VNklxKk;s_5G{bCYTs3U zicS!>(WQaT0~`qag&#+CJ}l$#Ar27i=864U2>=e8w9!GvA-Xiykw-64&8a6C%=Y4< z7hM_-o7C#9;cF#$2V@)yy)}OG8m}dACL-gI?ywLt4r}&!t?%Kl z&2mY+4#mN;pXiRf*j^vCf}cJoxK*zUI;be6BTFE+68J z0=`Z^p27O~H0s!f2ksUeu-v5e3(RuKc&&xQmz%U6-$@Ss`x_etvRpD57ToT+m<)?M aPksTt!MTao-=3`i0000Px#24YJ`L;y?xVE`Z&JCEo9000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyl9 z6%Y}TQQ2?+000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0004ZNklMzIW+HitrY~%^m5O6_nv!_z(3&tJS71tFFC$?1mOPq$O^nx4PYaGeD%n- zA=e=JBiBmE{3W#Ti(I*y($uv7+rCSgYevf#GEB(mx!fpn@O);l8@P7oBRxXT2 z!tD+GZ(=i1Ix{t?i;{pS32?`w;+tsGRKpvm24Oe*3Q-p2-mxF-fPfa;gk;8Y|uDdk%mbC4pYsUH|0=v~MBoW{$Db>3fVvg(FuH e8EBc0(R>0!{J+sU<{=;e0000}c literal 0 HcmV?d00001 diff --git a/textures/farming_wheat_2.png b/textures/farming_wheat_2.png new file mode 100644 index 0000000000000000000000000000000000000000..40956a7b30b1b05dd1f37279f4500d6d3c019240 GIT binary patch literal 534 zcmV+x0_pvUP)Px#24YJ`L;y?xVE`Z&JCEo9000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyl9 z6%QODx~o$F000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0004TNklCk#IKa-! zY{l|ukBiTJ-e12szCNN=lnkHWST|~1HEP@^inGH5^3@0HM$Pe;+3IHm*>%v#nV9MT zmx*#5;9Q)6pCz_?Az7kmMRh0jaXiN|=^I9MviZ_+A7IeQ0l1ql>Gq>P3(JfO8zar{ z_9GjtO-F5^Rc3v%=qQaDrLp!O$8)ko>2@#lL}4wvW{L9Jy--`FrkNgea?h7ZW*kq> zZO;JRex!vm&+R}+*42X6Z!~g&Q literal 0 HcmV?d00001 diff --git a/textures/farming_wheat_3.png b/textures/farming_wheat_3.png new file mode 100644 index 0000000000000000000000000000000000000000..7dc89a7174a7eab3b940b85a9f4fb5e12d6147ad GIT binary patch literal 500 zcmVPx#24YJ`L;y?xVE`Z&JCEo9000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyl9 z6$m%MN5s?s000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0003`Nklt*C0`%!EF7F$nE1*Z*Wt&x$;1Vi ze#G=6aT@*00d!s_V){{TX(T(l(k+d|CGKk@7Z5<&+Nej9c@Chj)u2wpla=jwZZcW* zqf6wwh*et~Kl%kc_bb@0#A(D~+o_wa4zRb$?raAWz5v)1F>P&FB})L>+HkD~mqTB&d{ q{qEnWXS;FOcJqC`f7o_^H2DQW@4arGp_@zq0000IqP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L03N{r03N{s!)a7g00007bV*G`2iyn_ z4-__&&rkON0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~00053 zNkl6o#K~?!BW<&FwNjc}L6|B>JIZiWDJfW#H0H(5{8hDvA-MWkW>k zpheI+C@3PRMN(9>a1kj5Vd2IUyUgG?W8>UEote*-LeRZT1ijmH-iO0E?}2}m2rEvG z_sLW;%HixD&Yav&cKEeu8*t^4DIYv8iuW(BO21x0RaH8p4V2gshA!OR^+kdJXHO@1 za{rusJN*>LF5`K1TB3&ze*V@M2oOyl+i|IHtWzml`2H4-UBs0cmga8AP{5rDQ`*iJ z-{(K$c^;N!vGDB^t}n5Fm8jJl;S%%JWwh-p$lRJ5i487y%N7idEWVY&7xrzi|C>w=|L(#@;0PTVF)GfZa1j jwFa4<9L>#D{;ReDR{E3xT~xP700000NkvXXu0mjf0oeX) literal 0 HcmV?d00001 diff --git a/textures/farming_wheat_seed.png b/textures/farming_wheat_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..bf2ac77e695ea2a8c1d5fcb427d0ebb040f8aa65 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg)9vKF0L!UkSEP+CjC9V-A&iT2y zsd*&~&PAz-C8;S2<(VZJ3hti10pX2&;y^`}o-U3d7N@UHwB>3r;Bkw0Ie2&B;^zfl zcimf9URZc}=L3QEU(E}yL<#&^CgkzylKLtyFC(GJ`TaZBi!6{(i_Zwzr@F(tBS$`9 zh9ARGhE(m3EUDZI8`V!J_nv#T%jF*LkL||<9xmJ{$C@r|B6R)7xkIhzcKCnkRX@e5 Xs9_lTwOn@w&=Cxtu6{1-oD!M