From faa676fd0c18400705eb47c31ecf4eaa66583182 Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Mon, 3 Sep 2012 15:26:49 +0200 Subject: [PATCH] Add farming mod --- mods/farming/README.txt | 48 ++ mods/farming/bananas.lua | 63 +++ mods/farming/cactus.lua | 22 + mods/farming/carrots.lua | 89 ++++ mods/farming/changelog.txt | 17 + mods/farming/cotton.lua | 90 ++++ mods/farming/depends.txt | 3 + mods/farming/hoes.lua | 83 ++++ mods/farming/init.lua | 185 ++++++++ mods/farming/oranges.lua | 89 ++++ mods/farming/papyrus.lua | 25 + mods/farming/potatoes.lua | 72 +++ mods/farming/pumpkin.lua | 446 ++++++++++++++++++ mods/farming/rhubarb.lua | 72 +++ mods/farming/rubber.lua | 104 ++++ mods/farming/soil.lua | 45 ++ mods/farming/strawberries.lua | 89 ++++ mods/farming/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 mods/farming/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 mods/farming/textures/farming_cake_mix.png | Bin 0 -> 343 bytes .../textures/farming_cake_mix_pumpkin.png | Bin 0 -> 343 bytes mods/farming/textures/farming_carrot.png | Bin 0 -> 575 bytes mods/farming/textures/farming_carrot_1.png | Bin 0 -> 438 bytes mods/farming/textures/farming_carrot_2.png | Bin 0 -> 453 bytes mods/farming/textures/farming_carrot_3.png | Bin 0 -> 507 bytes mods/farming/textures/farming_carrot_4.png | Bin 0 -> 550 bytes mods/farming/textures/farming_carrot_seed.png | Bin 0 -> 476 bytes mods/farming/textures/farming_cotton.png | Bin 0 -> 428 bytes mods/farming/textures/farming_cotton_1.png | Bin 0 -> 359 bytes mods/farming/textures/farming_cotton_2.png | Bin 0 -> 351 bytes mods/farming/textures/farming_cotton_seed.png | Bin 0 -> 280 bytes mods/farming/textures/farming_flour.png | Bin 0 -> 344 bytes mods/farming/textures/farming_hoe_steel.png | Bin 0 -> 338 bytes mods/farming/textures/farming_hoe_stone.png | Bin 0 -> 333 bytes mods/farming/textures/farming_hoe_wood.png | Bin 0 -> 325 bytes mods/farming/textures/farming_orange.png | Bin 0 -> 504 bytes mods/farming/textures/farming_orange_1.png | Bin 0 -> 430 bytes mods/farming/textures/farming_orange_2.png | Bin 0 -> 468 bytes mods/farming/textures/farming_orange_3.png | Bin 0 -> 544 bytes mods/farming/textures/farming_orange_4.png | Bin 0 -> 540 bytes mods/farming/textures/farming_orange_seed.png | Bin 0 -> 281 bytes mods/farming/textures/farming_potatoe.png | Bin 0 -> 525 bytes mods/farming/textures/farming_potatoe_1.png | Bin 0 -> 473 bytes mods/farming/textures/farming_potatoe_2.png | Bin 0 -> 502 bytes mods/farming/textures/farming_potatoe_3.png | Bin 0 -> 292 bytes .../farming/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 .../farming_pumpkin_big_top_corner.png | Bin 0 -> 289 bytes .../textures/farming_pumpkin_big_top_side.png | Bin 0 -> 378 bytes .../farming/textures/farming_pumpkin_face.png | Bin 0 -> 622 bytes .../textures/farming_pumpkin_face_light.png | Bin 0 -> 632 bytes .../farming/textures/farming_pumpkin_seed.png | Bin 0 -> 312 bytes .../farming/textures/farming_pumpkin_side.png | Bin 0 -> 627 bytes mods/farming/textures/farming_pumpkin_top.png | Bin 0 -> 623 bytes mods/farming/textures/farming_rhubarb.png | Bin 0 -> 502 bytes mods/farming/textures/farming_rhubarb_1.png | Bin 0 -> 530 bytes mods/farming/textures/farming_rhubarb_2.png | Bin 0 -> 365 bytes mods/farming/textures/farming_rhubarb_3.png | Bin 0 -> 301 bytes .../farming/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 .../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 mods/farming/textures/farming_soil.png | Bin 0 -> 947 bytes mods/farming/textures/farming_soil_wet.png | Bin 0 -> 880 bytes .../textures/farming_soil_wet_side.png | Bin 0 -> 867 bytes mods/farming/textures/farming_strawberry.png | Bin 0 -> 250 bytes .../farming/textures/farming_strawberry_1.png | Bin 0 -> 356 bytes .../farming/textures/farming_strawberry_2.png | Bin 0 -> 342 bytes .../farming/textures/farming_strawberry_3.png | Bin 0 -> 357 bytes .../farming/textures/farming_strawberry_4.png | Bin 0 -> 400 bytes .../textures/farming_strawberry_seed.png | Bin 0 -> 212 bytes mods/farming/textures/farming_string.png | Bin 0 -> 367 bytes mods/farming/textures/farming_tomato.png | Bin 0 -> 581 bytes mods/farming/textures/farming_tomato_1.png | Bin 0 -> 482 bytes mods/farming/textures/farming_tomato_2.png | Bin 0 -> 506 bytes mods/farming/textures/farming_tomato_3.png | Bin 0 -> 578 bytes mods/farming/textures/farming_tomato_4.png | Bin 0 -> 591 bytes mods/farming/textures/farming_tomato_seed.png | Bin 0 -> 221 bytes mods/farming/textures/farming_weed.png | Bin 0 -> 591 bytes mods/farming/textures/farming_wheat.png | Bin 0 -> 536 bytes mods/farming/textures/farming_wheat_1.png | Bin 0 -> 540 bytes mods/farming/textures/farming_wheat_2.png | Bin 0 -> 534 bytes mods/farming/textures/farming_wheat_3.png | Bin 0 -> 500 bytes .../textures/farming_wheat_harvested.png | Bin 0 -> 597 bytes mods/farming/textures/farming_wheat_seed.png | Bin 0 -> 286 bytes mods/farming/tomatoes.lua | 89 ++++ mods/farming/weed.lua | 39 ++ mods/farming/wheat.lua | 169 +++++++ 97 files changed, 1839 insertions(+) create mode 100644 mods/farming/README.txt create mode 100644 mods/farming/bananas.lua create mode 100644 mods/farming/cactus.lua create mode 100644 mods/farming/carrots.lua create mode 100644 mods/farming/changelog.txt create mode 100644 mods/farming/cotton.lua create mode 100644 mods/farming/depends.txt create mode 100644 mods/farming/hoes.lua create mode 100644 mods/farming/init.lua create mode 100644 mods/farming/oranges.lua create mode 100644 mods/farming/papyrus.lua create mode 100644 mods/farming/potatoes.lua create mode 100644 mods/farming/pumpkin.lua create mode 100644 mods/farming/rhubarb.lua create mode 100644 mods/farming/rubber.lua create mode 100644 mods/farming/soil.lua create mode 100644 mods/farming/strawberries.lua create mode 100644 mods/farming/textures/farming_banana.png create mode 100644 mods/farming/textures/farming_banana_leaves.png create mode 100644 mods/farming/textures/farming_banana_sapling.png create mode 100644 mods/farming/textures/farming_bread.png create mode 100644 mods/farming/textures/farming_bread_pumpkin.png create mode 100644 mods/farming/textures/farming_bucket_rubber.png create mode 100644 mods/farming/textures/farming_cake_mix.png create mode 100644 mods/farming/textures/farming_cake_mix_pumpkin.png create mode 100644 mods/farming/textures/farming_carrot.png create mode 100644 mods/farming/textures/farming_carrot_1.png create mode 100644 mods/farming/textures/farming_carrot_2.png create mode 100644 mods/farming/textures/farming_carrot_3.png create mode 100644 mods/farming/textures/farming_carrot_4.png create mode 100644 mods/farming/textures/farming_carrot_seed.png create mode 100644 mods/farming/textures/farming_cotton.png create mode 100644 mods/farming/textures/farming_cotton_1.png create mode 100644 mods/farming/textures/farming_cotton_2.png create mode 100644 mods/farming/textures/farming_cotton_seed.png create mode 100644 mods/farming/textures/farming_flour.png create mode 100644 mods/farming/textures/farming_hoe_steel.png create mode 100644 mods/farming/textures/farming_hoe_stone.png create mode 100644 mods/farming/textures/farming_hoe_wood.png create mode 100644 mods/farming/textures/farming_orange.png create mode 100644 mods/farming/textures/farming_orange_1.png create mode 100644 mods/farming/textures/farming_orange_2.png create mode 100644 mods/farming/textures/farming_orange_3.png create mode 100644 mods/farming/textures/farming_orange_4.png create mode 100644 mods/farming/textures/farming_orange_seed.png create mode 100644 mods/farming/textures/farming_potatoe.png create mode 100644 mods/farming/textures/farming_potatoe_1.png create mode 100644 mods/farming/textures/farming_potatoe_2.png create mode 100644 mods/farming/textures/farming_potatoe_3.png create mode 100644 mods/farming/textures/farming_potatoe_seed.png create mode 100644 mods/farming/textures/farming_pumpkin_big_side.png create mode 100644 mods/farming/textures/farming_pumpkin_big_top.png create mode 100644 mods/farming/textures/farming_pumpkin_big_top_corner.png create mode 100644 mods/farming/textures/farming_pumpkin_big_top_side.png create mode 100644 mods/farming/textures/farming_pumpkin_face.png create mode 100644 mods/farming/textures/farming_pumpkin_face_light.png create mode 100644 mods/farming/textures/farming_pumpkin_seed.png create mode 100644 mods/farming/textures/farming_pumpkin_side.png create mode 100644 mods/farming/textures/farming_pumpkin_top.png create mode 100644 mods/farming/textures/farming_rhubarb.png create mode 100644 mods/farming/textures/farming_rhubarb_1.png create mode 100644 mods/farming/textures/farming_rhubarb_2.png create mode 100644 mods/farming/textures/farming_rhubarb_3.png create mode 100644 mods/farming/textures/farming_rhubarb_seed.png create mode 100644 mods/farming/textures/farming_rubber_sapling.png create mode 100755 mods/farming/textures/farming_rubber_tree_empty.png create mode 100755 mods/farming/textures/farming_rubber_tree_full.png create mode 100644 mods/farming/textures/farming_scarecrow_front.png create mode 100644 mods/farming/textures/farming_scarecrow_front_light.png create mode 100644 mods/farming/textures/farming_scarecrow_side.png create mode 100644 mods/farming/textures/farming_scarecrow_top.png create mode 100644 mods/farming/textures/farming_soil.png create mode 100644 mods/farming/textures/farming_soil_wet.png create mode 100755 mods/farming/textures/farming_soil_wet_side.png create mode 100644 mods/farming/textures/farming_strawberry.png create mode 100644 mods/farming/textures/farming_strawberry_1.png create mode 100644 mods/farming/textures/farming_strawberry_2.png create mode 100644 mods/farming/textures/farming_strawberry_3.png create mode 100644 mods/farming/textures/farming_strawberry_4.png create mode 100644 mods/farming/textures/farming_strawberry_seed.png create mode 100644 mods/farming/textures/farming_string.png create mode 100644 mods/farming/textures/farming_tomato.png create mode 100644 mods/farming/textures/farming_tomato_1.png create mode 100644 mods/farming/textures/farming_tomato_2.png create mode 100644 mods/farming/textures/farming_tomato_3.png create mode 100644 mods/farming/textures/farming_tomato_4.png create mode 100644 mods/farming/textures/farming_tomato_seed.png create mode 100644 mods/farming/textures/farming_weed.png create mode 100644 mods/farming/textures/farming_wheat.png create mode 100644 mods/farming/textures/farming_wheat_1.png create mode 100644 mods/farming/textures/farming_wheat_2.png create mode 100644 mods/farming/textures/farming_wheat_3.png create mode 100644 mods/farming/textures/farming_wheat_harvested.png create mode 100644 mods/farming/textures/farming_wheat_seed.png create mode 100644 mods/farming/tomatoes.lua create mode 100644 mods/farming/weed.lua create mode 100644 mods/farming/wheat.lua diff --git a/mods/farming/README.txt b/mods/farming/README.txt new file mode 100644 index 00000000..cc5052e1 --- /dev/null +++ b/mods/farming/README.txt @@ -0,0 +1,48 @@ +===FARMING MOD for MINETEST-C55=== +by PilzAdam + +Version 4.dev + +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/mods/farming/bananas.lua b/mods/farming/bananas.lua new file mode 100644 index 00000000..723be556 --- /dev/null +++ b/mods/farming/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/mods/farming/cactus.lua b/mods/farming/cactus.lua new file mode 100644 index 00000000..3723e702 --- /dev/null +++ b/mods/farming/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/mods/farming/carrots.lua b/mods/farming/carrots.lua new file mode 100644 index 00000000..0195525a --- /dev/null +++ b/mods/farming/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/mods/farming/changelog.txt b/mods/farming/changelog.txt new file mode 100644 index 00000000..80138c54 --- /dev/null +++ b/mods/farming/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/mods/farming/cotton.lua b/mods/farming/cotton.lua new file mode 100644 index 00000000..3ea33905 --- /dev/null +++ b/mods/farming/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/mods/farming/depends.txt b/mods/farming/depends.txt new file mode 100644 index 00000000..0b8ebe02 --- /dev/null +++ b/mods/farming/depends.txt @@ -0,0 +1,3 @@ +default +bucket +wool diff --git a/mods/farming/hoes.lua b/mods/farming/hoes.lua new file mode 100644 index 00000000..33cf462b --- /dev/null +++ b/mods/farming/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/mods/farming/init.lua b/mods/farming/init.lua new file mode 100644 index 00000000..efc2959d --- /dev/null +++ b/mods/farming/init.lua @@ -0,0 +1,185 @@ +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, +} + +-- ========= 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") diff --git a/mods/farming/oranges.lua b/mods/farming/oranges.lua new file mode 100644 index 00000000..cebbcfd0 --- /dev/null +++ b/mods/farming/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/mods/farming/papyrus.lua b/mods/farming/papyrus.lua new file mode 100644 index 00000000..d33e072f --- /dev/null +++ b/mods/farming/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/mods/farming/potatoes.lua b/mods/farming/potatoes.lua new file mode 100644 index 00000000..6b886a43 --- /dev/null +++ b/mods/farming/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/mods/farming/pumpkin.lua b/mods/farming/pumpkin.lua new file mode 100644 index 00000000..73991ca7 --- /dev/null +++ b/mods/farming/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/mods/farming/rhubarb.lua b/mods/farming/rhubarb.lua new file mode 100644 index 00000000..e9dd59b6 --- /dev/null +++ b/mods/farming/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/mods/farming/rubber.lua b/mods/farming/rubber.lua new file mode 100644 index 00000000..768466d3 --- /dev/null +++ b/mods/farming/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/mods/farming/soil.lua b/mods/farming/soil.lua new file mode 100644 index 00000000..f8003354 --- /dev/null +++ b/mods/farming/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/mods/farming/strawberries.lua b/mods/farming/strawberries.lua new file mode 100644 index 00000000..e2b21326 --- /dev/null +++ b/mods/farming/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/mods/farming/textures/farming_banana.png b/mods/farming/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/mods/farming/textures/farming_banana_leaves.png b/mods/farming/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/mods/farming/textures/farming_banana_sapling.png b/mods/farming/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/mods/farming/textures/farming_bread.png b/mods/farming/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/mods/farming/textures/farming_bread_pumpkin.png b/mods/farming/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/mods/farming/textures/farming_bucket_rubber.png b/mods/farming/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/mods/farming/textures/farming_cake_mix.png b/mods/farming/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/mods/farming/textures/farming_cake_mix_pumpkin.png b/mods/farming/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/mods/farming/textures/farming_carrot_1.png b/mods/farming/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/mods/farming/textures/farming_carrot_3.png b/mods/farming/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/mods/farming/textures/farming_carrot_4.png b/mods/farming/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/mods/farming/textures/farming_carrot_seed.png b/mods/farming/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@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/mods/farming/textures/farming_hoe_wood.png b/mods/farming/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/mods/farming/textures/farming_orange_1.png b/mods/farming/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/mods/farming/textures/farming_orange_3.png b/mods/farming/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/mods/farming/textures/farming_orange_seed.png b/mods/farming/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/mods/farming/textures/farming_potatoe.png b/mods/farming/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/mods/farming/textures/farming_potatoe_1.png b/mods/farming/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/mods/farming/textures/farming_potatoe_2.png b/mods/farming/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/mods/farming/textures/farming_potatoe_3.png b/mods/farming/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/mods/farming/textures/farming_pumpkin_big_side.png b/mods/farming/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/mods/farming/textures/farming_pumpkin_big_top_side.png b/mods/farming/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/mods/farming/textures/farming_pumpkin_face_light.png b/mods/farming/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/mods/farming/textures/farming_pumpkin_top.png b/mods/farming/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/mods/farming/textures/farming_rhubarb.png b/mods/farming/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/mods/farming/textures/farming_rhubarb_1.png b/mods/farming/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/mods/farming/textures/farming_rhubarb_2.png b/mods/farming/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/mods/farming/textures/farming_rhubarb_3.png b/mods/farming/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/mods/farming/textures/farming_rubber_sapling.png b/mods/farming/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/mods/farming/textures/farming_rubber_tree_empty.png b/mods/farming/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/mods/farming/textures/farming_scarecrow_front_light.png b/mods/farming/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/mods/farming/textures/farming_scarecrow_side.png b/mods/farming/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/mods/farming/textures/farming_scarecrow_top.png b/mods/farming/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/mods/farming/textures/farming_soil_wet.png b/mods/farming/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/mods/farming/textures/farming_strawberry.png b/mods/farming/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/mods/farming/textures/farming_strawberry_3.png b/mods/farming/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/mods/farming/textures/farming_strawberry_seed.png b/mods/farming/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/mods/farming/textures/farming_tomato.png b/mods/farming/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/mods/farming/textures/farming_tomato_1.png b/mods/farming/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/mods/farming/textures/farming_tomato_4.png b/mods/farming/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/mods/farming/textures/farming_tomato_seed.png b/mods/farming/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/mods/farming/textures/farming_weed.png b/mods/farming/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/mods/farming/textures/farming_wheat.png b/mods/farming/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/mods/farming/textures/farming_wheat_2.png b/mods/farming/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/mods/farming/textures/farming_wheat_3.png b/mods/farming/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/mods/farming/textures/farming_wheat_seed.png b/mods/farming/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