From 5d11a34b04da7ea4f677cfca17e8397d3730540f Mon Sep 17 00:00:00 2001 From: PilzAdam <adam-k@outlook.com> Date: Sun, 11 Nov 2012 11:47:53 +0100 Subject: [PATCH] Add farming mod --- mods/default/nodes.lua | 2 +- mods/farming/README.txt | 57 ++ mods/farming/depends.txt | 2 + mods/farming/init.lua | 492 ++++++++++++++++++ mods/farming/textures/farming_bread.png | Bin 0 -> 559 bytes mods/farming/textures/farming_cotton_1.png | Bin 0 -> 145 bytes mods/farming/textures/farming_cotton_2.png | Bin 0 -> 183 bytes mods/farming/textures/farming_cotton_3.png | Bin 0 -> 230 bytes mods/farming/textures/farming_cotton_4.png | Bin 0 -> 285 bytes mods/farming/textures/farming_cotton_5.png | Bin 0 -> 347 bytes mods/farming/textures/farming_cotton_6.png | Bin 0 -> 506 bytes mods/farming/textures/farming_cotton_7.png | Bin 0 -> 512 bytes mods/farming/textures/farming_cotton_8.png | Bin 0 -> 468 bytes mods/farming/textures/farming_cotton_seed.png | Bin 0 -> 485 bytes mods/farming/textures/farming_flour.png | Bin 0 -> 459 bytes mods/farming/textures/farming_soil.png | Bin 0 -> 883 bytes mods/farming/textures/farming_soil_wet.png | Bin 0 -> 823 bytes .../textures/farming_soil_wet_side.png | Bin 0 -> 889 bytes mods/farming/textures/farming_string.png | Bin 0 -> 367 bytes .../textures/farming_tool_bronzehoe.png | Bin 0 -> 334 bytes .../textures/farming_tool_steelhoe.png | Bin 0 -> 331 bytes .../textures/farming_tool_stonehoe.png | Bin 0 -> 362 bytes .../farming/textures/farming_tool_woodhoe.png | Bin 0 -> 285 bytes mods/farming/textures/farming_wheat.png | Bin 0 -> 658 bytes mods/farming/textures/farming_wheat_1.png | Bin 0 -> 159 bytes mods/farming/textures/farming_wheat_2.png | Bin 0 -> 209 bytes mods/farming/textures/farming_wheat_3.png | Bin 0 -> 261 bytes mods/farming/textures/farming_wheat_4.png | Bin 0 -> 304 bytes mods/farming/textures/farming_wheat_5.png | Bin 0 -> 454 bytes mods/farming/textures/farming_wheat_6.png | Bin 0 -> 607 bytes mods/farming/textures/farming_wheat_7.png | Bin 0 -> 676 bytes mods/farming/textures/farming_wheat_8.png | Bin 0 -> 811 bytes mods/farming/textures/farming_wheat_seed.png | Bin 0 -> 467 bytes 33 files changed, 552 insertions(+), 1 deletion(-) create mode 100644 mods/farming/README.txt create mode 100644 mods/farming/depends.txt create mode 100644 mods/farming/init.lua create mode 100644 mods/farming/textures/farming_bread.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_3.png create mode 100644 mods/farming/textures/farming_cotton_4.png create mode 100644 mods/farming/textures/farming_cotton_5.png create mode 100644 mods/farming/textures/farming_cotton_6.png create mode 100644 mods/farming/textures/farming_cotton_7.png create mode 100644 mods/farming/textures/farming_cotton_8.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_soil.png create mode 100644 mods/farming/textures/farming_soil_wet.png create mode 100644 mods/farming/textures/farming_soil_wet_side.png create mode 100644 mods/farming/textures/farming_string.png create mode 100644 mods/farming/textures/farming_tool_bronzehoe.png create mode 100644 mods/farming/textures/farming_tool_steelhoe.png create mode 100644 mods/farming/textures/farming_tool_stonehoe.png create mode 100644 mods/farming/textures/farming_tool_woodhoe.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_4.png create mode 100644 mods/farming/textures/farming_wheat_5.png create mode 100644 mods/farming/textures/farming_wheat_6.png create mode 100644 mods/farming/textures/farming_wheat_7.png create mode 100644 mods/farming/textures/farming_wheat_8.png create mode 100644 mods/farming/textures/farming_wheat_seed.png diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index e2f81aa..3a0cf49 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1125,7 +1125,7 @@ minetest.register_node("default:apple", { fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} }, groups = {fleshy=3,dig_immediate=3,flammable=2,leafdecay=1,leafdecay_drop=1}, - on_use = minetest.item_eat(4), + on_use = minetest.item_eat(1), sounds = default.node_sound_defaults(), after_place_node = function(pos, placer, itemstack) if placer:is_player() then diff --git a/mods/farming/README.txt b/mods/farming/README.txt new file mode 100644 index 0000000..b92e0be --- /dev/null +++ b/mods/farming/README.txt @@ -0,0 +1,57 @@ +Minetest 0.4 mod: farming +========================= + +License of source code: +----------------------- +Copyright (C) 2012-2013 PilzAdam + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> + + 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. + +License of media (textures): +---------------------------- +Created by PilzAdam (License: WTFPL): + farming_bread.png + farming_soil.png + farming_soil_wet.png + farming_soil_wet_side.png + farming_string.png + +Created by Calinou (License: CC BY-SA): + farming_tool_bronzehoe.png + farming_tool_steelhoe.png + farming_tool_stonehoe.png + farming_tool_woodhoe.png + +Created by VanessaE (License: WTFPL): + farming_cotton_seed.png + farming_wheat_seed.png + farming_flour.png + farming_wheat.png + farming_wheat_1.png + farming_wheat_2.png + farming_wheat_3.png + farming_wheat_4.png + farming_wheat_5.png + farming_wheat_5.png + farming_wheat_7.png + farming_wheat_8.png + farming_cotton_1.png + farming_cotton_2.png + farming_cotton_3.png + farming_cotton_4.png + farming_cotton_5.png + farming_cotton_6.png + farming_cotton_7.png + farming_cotton_8.png diff --git a/mods/farming/depends.txt b/mods/farming/depends.txt new file mode 100644 index 0000000..470ec30 --- /dev/null +++ b/mods/farming/depends.txt @@ -0,0 +1,2 @@ +default +wool diff --git a/mods/farming/init.lua b/mods/farming/init.lua new file mode 100644 index 0000000..1fc22a8 --- /dev/null +++ b/mods/farming/init.lua @@ -0,0 +1,492 @@ +-- Minetest 0.4 mod: farming +-- See README.txt for licensing and other information. + +-- +-- Soil +-- +minetest.register_node("farming:soil", { + description = "Soil", + tiles = {"farming_soil.png", "default_dirt.png"}, + drop = "default:dirt", + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory=1, soil=2}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("farming:soil_wet", { + description = "Wet Soil", + tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, + drop = "default:dirt", + is_ground_content = true, + groups = {crumbly=3, not_in_creative_inventory=1, soil=3}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_abm({ + nodenames = {"farming:soil", "farming:soil_wet"}, + interval = 15, + chance = 4, + action = function(pos, node) + pos.y = pos.y+1 + local nn = minetest.env:get_node(pos).name + pos.y = pos.y-1 + if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].walkable then + minetest.env:set_node(pos, {name="default:dirt"}) + end + -- check if there is water nearby + if minetest.env:find_node_near(pos, 3, {"group:water"}) then + -- if it is dry soil turn it into wet soil + if node.name == "farming:soil" then + minetest.env:set_node(pos, {name="farming:soil_wet"}) + end + else + -- turn it back into dirt if it is already dry + if node.name == "farming:soil" then + -- only turn it back if there is no plant on top of it + if minetest.get_item_group(nn, "plant") == 0 then + minetest.env:set_node(pos, {name="default:dirt"}) + end + + -- if its wet turn it back into dry soil + elseif node.name == "farming:soil_wet" then + minetest.env:set_node(pos, {name="farming:soil"}) + end + end + end, +}) + +-- +-- Hoes +-- +-- turns nodes with group soil=1 into soil; drop seeds if plowing grass +local function hoe_on_use(itemstack, user, pointed_thing, uses) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.env:get_node(pt.under) + local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local above = minetest.env:get_node(p) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if the node above the pointed thing is air + if above.name ~= "air" then + return + end + + -- check if pointing at dirt + if minetest.get_item_group(under.name, "soil") ~= 1 then + return + end + + -- turn the node into soil, wear out item and play sound + minetest.env:set_node(pt.under, {name="farming:soil"}) + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }) + itemstack:add_wear(65535/(uses-1)) + return itemstack +end + +minetest.register_tool("farming:hoe_wood", { + description = "Wooden Hoe", + inventory_image = "farming_tool_woodhoe.png", + + on_use = function(itemstack, user, pointed_thing) + return hoe_on_use(itemstack, user, pointed_thing, 30) + end, +}) + +minetest.register_tool("farming:hoe_stone", { + description = "Stone Hoe", + inventory_image = "farming_tool_stonehoe.png", + + on_use = function(itemstack, user, pointed_thing) + return hoe_on_use(itemstack, user, pointed_thing, 90) + end, +}) + +minetest.register_tool("farming:hoe_steel", { + description = "Steel Hoe", + inventory_image = "farming_tool_steelhoe.png", + + on_use = function(itemstack, user, pointed_thing) + return hoe_on_use(itemstack, user, pointed_thing, 200) + end, +}) + +minetest.register_tool("farming:hoe_bronze", { + description = "Bronze Hoe", + inventory_image = "farming_tool_bronzehoe.png", + + on_use = function(itemstack, user, pointed_thing) + return hoe_on_use(itemstack, user, pointed_thing, 220) + end, +}) + +minetest.register_craft({ + output = "farming:hoe_wood", + recipe = { + {"group:wood", "group:wood"}, + {"", "default:stick"}, + {"", "default:stick"}, + } +}) + +minetest.register_craft({ + output = "farming:hoe_stone", + recipe = { + {"group:stone", "group:stone"}, + {"", "default:stick"}, + {"", "default:stick"}, + } +}) + +minetest.register_craft({ + output = "farming:hoe_steel", + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"", "default:stick"}, + {"", "default:stick"}, + } +}) + +minetest.register_craft({ + output = "farming:hoe_bronze", + recipe = { + {"default:bronze_ingot", "default:bronze_ingot"}, + {"", "default:stick"}, + {"", "default:stick"}, + } +}) + +-- +-- Override grass for drops +-- +minetest.register_node(":default:grass_1", { + description = "Grass", + drawtype = "plantlike", + tiles = {"default_grass_1.png"}, + -- use a bigger inventory image + inventory_image = "default_grass_3.png", + wield_image = "default_grass_3.png", + paramtype = "light", + walkable = false, + buildable_to = true, + drop = { + max_items = 1, + items = { + {items = {'farming:seed'},rarity = 20}, + {items = {'default:grass_1'}}, + } + }, + groups = {snappy=3,flammable=3,flora=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + on_place = function(itemstack, placer, pointed_thing) + -- place a random grass node + local stack = ItemStack("default:grass_"..math.random(1,5)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:grass_1 "..itemstack:get_count()-(1-ret:get_count())) + end, +}) + +for i=2,5 do + minetest.register_node(":default:grass_"..i, { + description = "Grass", + drawtype = "plantlike", + tiles = {"default_grass_"..i..".png"}, + inventory_image = "default_grass_"..i..".png", + wield_image = "default_grass_"..i..".png", + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + max_items = 1, + items = { + {items = {'farming:seed_wheat'},rarity = 20}, + {items = {'default:grass_1'}}, + } + }, + groups = {snappy=3,flammable=3,flora=1,attached_node=1,not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + }) +end + +minetest.register_node(":default:junglegrass", { + description = "Jungle Grass", + drawtype = "plantlike", + visual_scale = 1.3, + tiles = {"default_junglegrass.png"}, + inventory_image = "default_junglegrass.png", + wield_image = "default_junglegrass.png", + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = { + max_items = 1, + items = { + {items = {'farming:seed_cotton'},rarity = 20}, + {items = {'default:junglegrass'}}, + } + }, + groups = {snappy=3,flammable=2,flora=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, +}) + +-- +-- Place seeds +-- +local function place_seed(itemstack, placer, pointed_thing, plantname) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.env:get_node(pt.under) + local above = minetest.env:get_node(pt.above) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if pointing at the top of the node + if pt.above.y ~= pt.under.y+1 then + return + end + + -- check if you can replace the node above the pointed node + if not minetest.registered_nodes[above.name].buildable_to then + return + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") <= 1 then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.env:add_node(pt.above, {name=plantname}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack +end + +-- +-- Wheat +-- +minetest.register_craftitem("farming:seed_wheat", { + description = "Wheat Seed", + inventory_image = "farming_wheat_seed.png", + on_place = function(itemstack, placer, pointed_thing) + return place_seed(itemstack, placer, pointed_thing, "farming:wheat_1") + end, +}) + +minetest.register_craftitem("farming:wheat", { + description = "Wheat", + inventory_image = "farming_wheat.png", +}) + +minetest.register_craftitem("farming:flour", { + description = "Flour", + inventory_image = "farming_flour.png", +}) + +minetest.register_craftitem("farming:bread", { + description = "Bread", + inventory_image = "farming_bread.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = {"farming:wheat", "farming:wheat", "farming:wheat", "farming:wheat"} +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 15, + output = "farming:bread", + recipe = "farming:flour" +}) + +for i=1,8 do + local drop = { + items = { + {items = {'farming:wheat'},rarity=9-i}, + {items = {'farming:wheat'},rarity=18-i*2}, + {items = {'farming:seed_wheat'},rarity=9-i}, + {items = {'farming:seed_wheat'},rarity=18-i*2}, + } + } + minetest.register_node("farming:wheat_"..i, { + drawtype = "plantlike", + tiles = {"farming_wheat_"..i..".png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = drop, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + groups = {snappy=3,flammable=2,plant=1,wheat=i,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + }) +end + +minetest.register_abm({ + nodenames = {"group:wheat"}, + neighbors = {"group:soil"}, + interval = 90, + chance = 2, + action = function(pos, node) + -- return if already full grown + if minetest.get_item_group(node.name, "wheat") == 8 then + return + end + + -- check if on wet soil + pos.y = pos.y-1 + local n = minetest.env:get_node(pos) + if minetest.get_item_group(n.name, "soil") < 3 then + return + end + pos.y = pos.y+1 + + -- check light + if not minetest.env:get_node_light(pos) then + return + end + if minetest.env:get_node_light(pos) < 13 then + return + end + + -- grow + local height = minetest.get_item_group(node.name, "wheat") + 1 + minetest.env:set_node(pos, {name="farming:wheat_"..height}) + end +}) + +-- +-- Cotton +-- +minetest.register_craftitem("farming:seed_cotton", { + description = "Cotton Seed", + inventory_image = "farming_cotton_seed.png", + on_place = function(itemstack, placer, pointed_thing) + return place_seed(itemstack, placer, pointed_thing, "farming:cotton_1") + end, +}) + +minetest.register_craftitem("farming:string", { + description = "String", + inventory_image = "farming_string.png", +}) + +minetest.register_craft({ + output = "wool:white", + recipe = { + {"farming:string", "farming:string"}, + {"farming:string", "farming:string"}, + } +}) + +for i=1,8 do + local drop = { + items = { + {items = {'farming:string'},rarity=9-i}, + {items = {'farming:string'},rarity=18-i*2}, + {items = {'farming:string'},rarity=27-i*3}, + {items = {'farming:seed_cotton'},rarity=9-i}, + {items = {'farming:seed_cotton'},rarity=18-i*2}, + {items = {'farming:seed_cotton'},rarity=27-i*3}, + } + } + minetest.register_node("farming:cotton_"..i, { + drawtype = "plantlike", + tiles = {"farming_cotton_"..i..".png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = true, + drop = drop, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + groups = {snappy=3,flammable=2,plant=1,cotton=i,not_in_creative_inventory=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + }) +end + +minetest.register_abm({ + nodenames = {"group:cotton"}, + neighbors = {"group:soil"}, + interval = 80, + chance = 2, + action = function(pos, node) + -- return if already full grown + if minetest.get_item_group(node.name, "cotton") == 8 then + return + end + + -- check if on wet soil + pos.y = pos.y-1 + local n = minetest.env:get_node(pos) + if minetest.get_item_group(n.name, "soil") < 3 then + return + end + pos.y = pos.y+1 + + -- check light + if not minetest.env:get_node_light(pos) then + return + end + if minetest.env:get_node_light(pos) < 13 then + return + end + + -- grow + local height = minetest.get_item_group(node.name, "cotton") + 1 + minetest.env:set_node(pos, {name="farming:cotton_"..height}) + end +}) diff --git a/mods/farming/textures/farming_bread.png b/mods/farming/textures/farming_bread.png new file mode 100644 index 0000000000000000000000000000000000000000..e508cc7f1d9d6de091a4cd55f086a46777883d65 GIT binary patch literal 559 zcmV+~0?_@5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000iA z000iA0f*eFZvX%Q2XskIMF-pq3Kbm^r+wQ_00008bVXQnLvL+uWo~o;_RN;Q0005H zNkl<ZILp<O&1zF&5Qd*QKW%bOzBbgxT1r8S#XIOy@dCU8*MdvIz2eTb3k}p8aO(vW z6x~>)6qo)~l$sNpn&$8HB<K6SaS;(A;>LwIn}LDn9cJbo`0qo0SG;?<rtN$LK&29a zfcIKFcxkJD6lh)xN}ot1X$4O~_66b)Y75FJ_e{D0$Ayj`zS7E!K=X#!4{rzqQA{Ib z?My-vEmIbbkL?!UMvkKNI4_7`AMI)kAW!aW$-JIS_Fue<j)tB%4B1$%a@H)<ExPna zmc=BcGa1s$at0O@VI@uNz30PNrrlTV;B6Kjo(dP15*l^GLBGTB1SaZ<MObMVM7vB5 zA@h)nxaMn(f*%tEoP)KRP_G*fzINyxS@LnoxNwY1OQ+RkE`-{7xM(1S5FncJ12qOA zT_ij16FNs4D^&-^LkE}_pbfz#&=5AWDH-kDzbfQCec#&01wBk1{G5^&ASsB2^&A*O zus&V87+?YA*)LbvxxJ~M^3SLRui$YwJSYSxDhlv3-`t+EGe&xPYeUtaf<mtx;0RgL x1T<x+Bd%|^X3e+v_)75Cp5AS4MgQcPz5_#V!kiiij3xj8002ovPDHLkV1hUg?0WzJ literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_cotton_1.png b/mods/farming/textures/farming_cotton_1.png new file mode 100644 index 0000000000000000000000000000000000000000..96195ac00197536ab0edde548946b8e95da86744 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E~_Xnlf;vYPq=|X2A(dCAr_~T6C_v{Cy4MACFHCAp5NHmc<^A<JA1oQpB*ZE na@A*EJYM!`erG4=dRK<)w(Mc&O}Z`u^)h(6`njxgN@xNAU%n~1 literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_cotton_2.png b/mods/farming/textures/farming_cotton_2.png new file mode 100644 index 0000000000000000000000000000000000000000..403a2416da12be35dbcdef68b454afe511e90e78 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E~_Xnlf;vYPq=|XVV*9IAr_~T6C_v{Cx|>?*_O8H|HPlmc1`+UxH9#S+K=z= z>)EPTC|*;$^xr?e?wrRY#^dMg694>pYt9S;+{VIj*Ec<wWKsT<b@Aq@f9k`;()IwI YAul58bk2FhBcKfop00i_>zopr070TWz5oCK literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_cotton_3.png b/mods/farming/textures/farming_cotton_3.png new file mode 100644 index 0000000000000000000000000000000000000000..eaec6d06cba3d3732580a69b19b261dfa4c6faad GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E~_Xnlf;vYPq=|Xt)4E9Ar_~T6C_v{CtP5(<=yyy$CDi2l#Qnh6^mPbSV-jb z8j9YMIQi%Q$ItxCj?8>>s*e1a|Iog9;xv|3iak6$%k}NkRWcZunVAny-0UyW`or>p z-!_v8|IQye)N=WD&kmKCwIcuP|NorbII(f!!w)x)TU>o;QuTe~?;af;AD;h`{~q&J ZF#PjZ+UzS^coOI!22WQ%mvv4FO#rn)Rrvq_ literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_cotton_4.png b/mods/farming/textures/farming_cotton_4.png new file mode 100644 index 0000000000000000000000000000000000000000..38404b3dd6d5b0aa5f5af686bdd5e3948bbfc699 GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E~_XnljP)USLOnR_ISEDhFF|VPLN<d%y~oN#2<BcdEuUqufN-~$w!OsX}ckH z>fiCq11ndbm$0w<*%`dKx%19{`}%(m%NUuNnGg5J*GtIsJpE^EU|_IghW3HnVza6L z|9`!m-}ZR=d?TSRleg~sQXib_DYD#Zrsf}Y2{wZd?tUGO^V?-z-+X_+pT|YIpy+ez zvG?|Mhm((9b^2(}Zq4n-T=47U#gKphfj}}Ma)xBt{2k{#ws0pT{D0Zr6Tk0o(vN?S e&F>j7GrV79Z?j=0$1b2h7(8A5T-G@yGywp8hII)5 literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_cotton_5.png b/mods/farming/textures/farming_cotton_5.png new file mode 100644 index 0000000000000000000000000000000000000000..0d4b4d21aa15fc59d310f810286fda7b1ddbb446 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E~_XnlN8teR&}7zFHaZ85R21qgKYho90h8v+h4n{>1lo9U?=5~Fi}EJ{Ate& zhor;npRzZwvhv0??PYX+E*}taj4k}#p><Q|UVdBs`PtqxIv?WegUwCn$JQ*b{CT*& z_UPJIt&DlEEtmf=)KRaP#gq2viN~XNTIU%GH1_`Wi{9MtpF3a1bke)rr^PqI*}A7# z%kEm6v}j?R)$_Z1mjGS+)-Ei&_q~Xt>1qA-@0l2yyry+F1nv<y$LRlY_Jvs&!|dkE zc{h7|N}QjT6rbhAJo}SmSoX0Gm3b`e^V;JA9(`e5BWhaoY|HnvHuf>%Yn&eb(y2Op rB8B7d%R9H+&5}g)TihRA-xBYzHsF56hQq&sp}^qj>gTe~DWM4fWg?8_ literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_cotton_6.png b/mods/farming/textures/farming_cotton_6.png new file mode 100644 index 0000000000000000000000000000000000000000..8b2b3deb18d531aa86e4238b26ff57f67eac6a7c GIT binary patch literal 506 zcmV<W0R{evP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6%7I!3g3k%0004*Nkl<ZILqBq?<<306g~HOUgHai zA@h2LLh;%rn=p)8gq2eMNnaEnBuSF|i13z_Vl6She~oRnxjw8tGqZod`F5UjpL6cL zUEu#=YRJif{!T8Y&y4l(Y`~**0RWS}ZuM|q`Gr{YrD(vy+5z1}t`!%-5jV%)b02mV zEz+a_0Q3b-9v^h_^sp<hqeL>DGq|ltA(lw02WM*?6Ol6eczeXs#vx^OpQ*FmUYp<6 zu+!jCcM}7E-(~R6Vo!U$;(b9=@ri-V*a84Hj>4o#0l&*&DKcTR0S^lyAlmFIh|eA% zWkz4#I;MgJO?X>WT5!b8W=oCYf!=2Jb~qHD8~5fq$l^H~htJd*0HUvtu+HxY0EW67 zIhjgh_w<SYpue+$BasLS47N|MsLZCp+u=~706^k1jrGGYW%r^tI8arc8BO~=#+#!Y zw$Kw+_e07-N`l{IFcG1&L}GqrPigemv3T0+IsTb~b#X@nT{@RYLfojt&Z1RNPsJ|I wXX-43fK3y5-Ta0qCTv=lluCc)9ob*_1|oixWmQ@gMF0Q*07*qoM6N<$g7E;|O#lD@ literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_cotton_7.png b/mods/farming/textures/farming_cotton_7.png new file mode 100644 index 0000000000000000000000000000000000000000..43ae43b71a20b534031d9af8c0c3f0bb830db40b GIT binary patch literal 512 zcmV+b0{{JqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6%7I!3g3k%0004>Nkl<ZILqBr%Su~O6kU6J^H2+g zKua5vGyx$r$&IloTv3eL#tsTsI<JHNK))`dcA_&Is1eL0rN$>dKv6`LnC9NqLCk4V z8b6?Ww)SJKwGaCM|6h>gio3{%>hDXhO<e)t^GDYtrkC?L+-(jO5D~e%IyYEJa=rT9 zB&wCVSR)Dma9o=!?jlJJIJ#-I{}4<s=b<WaT$=z;%EqZGhHS6-6CxtLfpQ_qV)50W zt>VNpmU3|dfRm20zxmx%%3#N}xm4)lo+|}_jqOwEcs}N`aq7JoN#5T5!d2{%5wf-~ z(eZur7KQ)-yom@#gBI2sM*;w!K9n&Y4x(DA3ji$G30}9_Sl!x}eg^}wU?(`2?XEKO zGG-cPGcnr9CkD^w66~$2{RC_E1Mz%fGWC?+y;aAxX{n;VcP0Svb~4FKE{AW8qwXqy zyKr2ak&|0oJRdXmoph9;fCUjC9I)`EwqxexU&m4|B&j0!y16TF@-OK5L@V{!5DpyH zu#0ojQI4ph)$X9yJRRDn!wS_O$D%423k4qhJHG+2YNV>pt?ADI0000<MNUMnLSTYj C+1~;H literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_cotton_8.png b/mods/farming/textures/farming_cotton_8.png new file mode 100644 index 0000000000000000000000000000000000000000..f673b90082f2db2f4991a8f110c5030dde7f29e5 GIT binary patch literal 468 zcmV;_0W1EAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6%7I#eb}|J0004VNkl<ZILpmbOD_Xq6g_vQFRyMy zf~k%)l|gkR9x*{F8w=4t+pXvZ(H$D8oi^CnsHCOZITqT_44JZYcVEuA=brocfPWbz z`B$zCN*0ko+=qFSHjc8~%_ix^yf{hbJ-9}adD~PX<zhv2O_bQ4ZTc;Xh_^q@DcB$Z zr(l03S<|Xsxmb~xR@-OSnKu~HG*wXRR~)J}0052V8%o!8>06HvN8xR6BpSx?<=vM9 z04QD8<)!ro$1-S)k0~&hNup`S)jL*u#%sF+>4g#ifY8DObX{<KSrY)*U!Fxs*HA82 z1OT=(GbDkt>VpKXdVhJA>vK~CfUU)ZA{?xwc(9W4ZDOs*`w@G#$<_2E57*P|_nphk zDDu`~f}ex#4e`4`(~N@zo+gLXCOTag8`d-(%U~p=<Kp%)_!0pipEcQWU7X(B%g$1g zv9ONk#HgCbz*FwW=7PbISOi_y#mQAYkf#L!=ha7PzjuLOzSRf*QMa$+|AYtt0000< KMNUMnLSTZI6wQSI literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_cotton_seed.png b/mods/farming/textures/farming_cotton_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..1507d45d24d58c6e8944ff1e456568c7d76ba60e GIT binary patch literal 485 zcmV<B0UG{^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6$}9`0fb0q0004mNkl<ZILob4y-PxI6g|(+r=s>j z5rITYL!{8sWROeH*pgd+MgKrUOIvG0P()-9LIqM$3W-5wq=toxB1x90iJG73ZHV{k z=`$R>)9-gV_ug~Qxj>f@zB?nayo7uBoi+g=;yvg8F`tXFuTk8eZj)$(pxaKhauHYi z>jVIoJF8U6XA!z_5CBLdGK`E*fz{~58I%hjP-**7s}unMtfmk3$|o9MbpXJa(aaQc zDNLFdnT|UKTn7Sr-1MG?n2?fA;OFaOYAsH`gb?$&sI5V(1GgueRIio=d1^MG)(xPL zeHSwDJ8eYG2E2|f9xPL^$Rxth4;gsi#LNOCSE^vLScO8qMFZr!*rWgMKrB3m8w3Ch z=YVl;iRo5M*X|nWhYcX29}T$Tc);Cp>R(%>awU{%Eo2Jz*M<0_hf?uio5~!+LMDl1 z<beQS*1Ez}O9hxLR)%koPbVOiD^ahO+otOVM<Hi5DCSapZhC&XedQ<5QO6a6ZhP-9 b69B#eCQG-0bA02{00000NkvXXu0mjfgS*L* literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_flour.png b/mods/farming/textures/farming_flour.png new file mode 100644 index 0000000000000000000000000000000000000000..ae6e4ee24c9428b6e3387a8f7ffc1bdb631006a6 GIT binary patch literal 459 zcmV;+0W|)JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6%7IxbZ+^Y0004MNkl<ZILqykL9XI35JX>s<JcG! zkYIz@a0c#w1rC6K4XYr;B5`73lJ+b{`kJqqIlxHscHOG3E~((3C;QX#cDp5|6k2OU zgt9DYnuf#S@S8sWb+}wEsjlm^-EMKtF-;T37?e_cJ|FJ)d-`jFx~`LRju_+Dk%-Xu zJ?r%v5y5*;*LCc6yX>36^Z86EB{rK4Aq0#ugb=>Iq?E|>oRktx(_oCD>pJ%PeU_ci z=VXkbsw&>^H>=eO?>*L9%CaPcfQXP%q9_WiwLBgVwAREJ$!D_}#u%n)0>FFEVzHno z3PK2UUB_~{q%2FOX`*Qwlu``C!0YuwbzO(GmZB&S5vFOPZChfDlx2z58t*-A+v1$V zdyn@Xtu;;4kX^6WBqCUAf7X)cjN^z>iWnnRRWS?$!!XeIJ@fe-5h2U6?=758r<78{ zImbATWLZX@=foHh5sWd6<A{hbjw8q8G2=e~`~aUV$=sPmyX61?002ovPDHLkV1gf= B%*y}( literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_soil.png b/mods/farming/textures/farming_soil.png new file mode 100644 index 0000000000000000000000000000000000000000..f5ffeccee9a080d2c717e94fdf94ee50db3842d8 GIT binary patch literal 883 zcmV-(1C0EMP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0Du5j z06yS1E^`0?010qNS#tmY3ljhU3ljkVnw%H_000McNliru+zST~B_kD`eYpSt02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00P@dL_t(I%Vm;XZ`))ThOfu3 z^EKzowW*tqBwM$Nwgf7KrgDHZtwMr7!5Kefzl)<uJ3^`u6Wd^8w5(a1Hcjos`Dkp% z@5=$Igy25DbnBL`TfYD13)A*$*vjHve~4GDu<kc$)~Y=F`7NS^vITjTbI|Le1=5w~ z_$*|RXzT*QRWzmTyC@NiC@x16-uyM7q=enA78_ojNj&H1)hYWsZO$$t&``8NzWef_ zvBhGUq@-ESb|)Z=XUrB$0QR;wnN6375>C%Tj4|X!Q!Euh8>H9y$QZ4$L}&#~2A31S zU<?>BY^>E8hEp0&g-$16JdSzSA7Lv216JTxu|zN;|4hTs3Yv%r4W|MK1zWMc-eerb z%;rnV1x0t$<6g_dx&>~F8cqd&t%(ts%x)NlF}_#hkCO{V(VWR_iHJp#uDFipsKfoO zr=nLBltnvmajO+X=d{+Um~6%2S3UGH!BRq5DGom0ViHf;>8w*OD%6utyHEGG+hj?C zS!p^g7q4DHX~UC8JJd^x-JK5WRfi;5azAh}xxshJ1dS?|F^1oc2h0~4#xk4@Bl?#S z+CZM?ydOlo`1OR_oL`NpJ7qpxj#(LvJl<^^g-|Zr^!D!KR4W`E{mxCA;Wh4{jgV`@ ze34)@++-O7h=8&L`+B~_XpJ=!R&U;uXBsdJ$8#<w3yjuuH$6UFPv~xX6fKD2Id1(9 z!*Ke4jir*!f6bg;L;&;$A*x`p;Wx-uIRN%8eA_siFNxv>4W~j7c$7*7k|bjoPXF~4 zu*9NKEo1vm39=O?%{l1Zqdy2KyEQ)EXyP~pW)ZYD)_8c=r$4ynvz;yguiy4b(-isP z@t&~@MOGSiw_5mq9j)QV=fB{)bu0^%r5IktG-?IDKIk#J9^-pWp8xa;``g1uq|21^ z%aGT9p5tCcv;r3qVHCz7pb%<KiBBHf<;BYra$`8|kLa{~{st%ZQ6UZ{w!Q!W002ov JPDHLkV1j7Rh^_zt 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..e5e6eec4cf7f255b43a244df2f8f0e509727c6ed GIT binary patch literal 823 zcmV-71IYY|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0Du5j z06yS1E^`0?010qNS#tmY3ljhU3ljkVnw%H_000McNliru+zST~C^b~)wxs|702y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00N&$L_t(I%Vp9_Z`(!`hT(UH zBazmfqAanh<VJOBrw)=$+(lN&rvEEHth*ws0!`7RO$x(}8(UFgiKb-Qx{$+}E@;<4 zbAZ{+cV=*&Bc6^LcF?Y)9KrF~jG*Sx30gF3HGcl>2;m4k33--tc(8*NkZQyG$px#8 zK`8{&dBPxQ;Rt~h4%2AC(LbMX9l`!6By87NTrPR__LN6^119G&7$_+a-?gMwLb6UZ zX$HGPpZM~c>s1QCgWVoiS8IeLIQuxqTF@5UvIJuh6|feNK<G<8#RdR-b9!}{CeSFu zaOks`Cmcr_MNzU_FTxi1coPnNiJ%ApC}4ZL$|6p<T53FCCs2IjE9C8k+eVEt1nnjk zxJ--JJHF(2e9dgGxm<w&)~O~+G|uB;>xInMlpMj=oeHgL8Ik9N%`#?_@%(UvS*J)c zJO>UR_E{_v_J?h}5;%|h^%swJ2c&5V+As`T1dS~mYk2<TK6OvAzc*yNT4lXibFb@T zjiyua=r*fJYc22IPgpK9th9{J=bU~nrkxwZhe^!qHz(ZIB%0HxdW_E(<klbtE>;3t zE*yM+k4klmSHJ$nDl@bjF2)LSV_B{?SOcr9n1K)=C0{b;x{#PAca%GU;zOj_2^5=D z6DQ!`@P5JQmKFb(IgK;`XOYHHlCZ7F^c^vZyN*{&&3sjGcDp`qIboCP|9({LiYdrl zP(j6oY=cSRaL;EviScUC?=`4ZN?ga#>$Ui{FBwlRc(^|V;N8)fG&6{21J9~b37x}( z(N_eWI@Z8XFMp@w*AWsN=`fupH0vdv{&2u7TF?oay!_=))Q``ekZw{YpJU$sJ;9G+ z!fhWR1hb0-1ULw4RhRptKCk~cA-9&3@r+^E;a{MqFQ>98=r8~P002ovPDHLkV1m|{ BXaN8K literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_soil_wet_side.png b/mods/farming/textures/farming_soil_wet_side.png new file mode 100644 index 0000000000000000000000000000000000000000..4f5b252d8845e35c2399f7ba2cf16609fc774e93 GIT binary patch literal 889 zcmV-<1BU#GP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0Du5j z06yS1E^`0?010qNS#tmY3ljhU3ljkVnw%H_000McNliru+zST~Di5ID4V3@@02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00QAjL_t(I%QcT%Ph4dfg`fBP z_MSb=kpbpF1WM@$r4Xp5*m$Rji8uOZ{006pqu$sw(WXHIt+ka-12e<yfqj_s%=dbM zUF-T;d6pbC0$pFu<5|PMmm!sWmerLKrF@QOf4)Pk5C|;h%HzFtRA4$+TJ2j#Q-|jv z^rHdmD`l(*Du!M^;ccr+#tO}?8r9_jNjl{8^%eUM8g#BBQ1Cr4)(F0}Ty#RFbH^vO z3chFYJcI8GwQ7+h9U`8P34H#3e@!$PqeieI$kD3N#oS?yaCET6>0d1rMIES70P2+z z0M$x?;&P6ketSdU0}9^$y*g*_+HBO8X>M;4Sc`LxmuDALSIZ>Hm~=R%kjv5z6XrlM zYxw-|KB9^zBIL6^4|lg{U0l+=iBJV2!eBT>L_m~}eS6WxT1z?{(F+rdQ&3f&{eI3> z?*?7mX|LBSMDd7|&-SQS3dF++Njm0>#}AmyX9T`Sknyn9fFCy+tAtU?O*A5(4-kPk z8FRF^$#^tot+7gAEMc6m<a?yUDLP-^S%XoOH}AWQMsw6C?J(l9cXz`%$A@mj*?EhP z>GWd?O95BCn1w3xsEk^K+>+1JCl4u>3jF-bAEc8hjg=w`72HCJ(-F?WU@}DnjDR(Q z`ReID-+g<6HG&|d@qnFs4RoP|(FiwF5SYwn?Cvx;-rZn2gIti|;L}ayn`T+-Yh}`8 zK(SPy-HUJw#W}}Sm>>e4g?x}<G?|gj_&8v9yG}QZ?*;(6y_js)qm;`rcaC;H;c%w` z*5Fx#HHOnyE$YiTI=4dvVY61k*#BWw*x9OcI~b7+#vC>ql*)P9*S9$5P*s)!pGW)m z`TENP3b_pJFv1IOVwSQ#3kNtjIod%Letmw<N;!uZ==KuAeo8U#0nopRd2-z3`HR=c z58of_Y%-(MyXBwOHRVE<TD8pSs}HCH1T2ux`82m1bgpBZDs$&pD;M|=$X;NbqY1Dp P00000NkvXXu0mjf%=3|z literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_string.png b/mods/farming/textures/farming_string.png new file mode 100644 index 0000000000000000000000000000000000000000..f417ec44a39858d300e423a6d33e7a8623a77be0 GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*x37`TN&n2}-D90{Nxdx@v7EBhS|K7Mh5toJid0)=EVLn2C?^K)}k z^GbkR1_tM%)Wnk16ovB4k_-iRPv3wPy;OFf_%Tlx#}JFtS0`EbwHOGv+%9I$d(VA9 z^}xcp((Qbl6MIr-3hebgwwN(3@zC9_TUVb3{df7tI;Z%E#7WD`-);AET`y&=;N0_l z_jlF4L#dG~{!Bf&m`$-IcF`0ihF6`LvsNtIE_!9hl%ih`_WsZL^e&D!$m`D5Us($? zrIv1Wb8*pJ%CIeW@)V)ZHpy#MTO6*JKAQ7*wPRGazf&@g;j!1De1{JdZ?H~$T72&N zVUuGQw&}VT3r@V9Y*iHX`aS=uFvC9O17F|$XQ^X&dFsgiBeSl1gS_hL>gTe~DWM4f D*65B` literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_tool_bronzehoe.png b/mods/farming/textures/farming_tool_bronzehoe.png new file mode 100644 index 0000000000000000000000000000000000000000..8c608a0e60cf7dfcf835c16237acecb1e0f5adbb GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DinK$vl=HlH+5kiEpy*OmP)t0=D`({iaSkTJJCT^vI!PA4ZU5HL6-@n2ozkNZT8 ziUS^#7!3>#w?Ew9#=+dYw~;BZ?ctOL$s-3C4A0bSDl^-&8y|jjxIEyC!9yd3WNzlg zhnd)pN#{#Q@WoXe0E5FPPd-?3<mY@1aRp{)O+FFd=kxz2sJvj3=-3+iQ~$)l6CYlh zD?9JM&3~+JyZn(##$`WWUS7`g`(17Np5MQ$ANQJnkWhZ}CL((3{}=yK6A}_ECNLbV zh;7I*-X(KJRONQhJFXe#5gl744~t${;o7P7<;5ZPv>y{*<m~Be5t(hsaMR40ks<45 W_?||txsQR~WbkzLb6Mw<&;$VT(}ZdO literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_tool_steelhoe.png b/mods/farming/textures/farming_tool_steelhoe.png new file mode 100644 index 0000000000000000000000000000000000000000..37aa26847bdff818571eccb0ee17b4da5827c40d GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DinK$vl=HlH+5kiEpy*OmPaH=D4K#)?gMErCKeJY5_^EKV;CvgK<skf?QKpEYC0 z1BOI}2dol2leuS0ix+&%ihE$)*d45{uaI|xvFy&PB;gf|UHewPJpKFUKCvIdKJv4c z1;!rwY-4uXp}8YOqOD`miBmZf6qKI+wqsE66q>_lz2+|Kx$D*bk9j0TTn}#2Ne=Rw zlFG>tQP^km?9?hp@yrL`T(&>&j?DkL<Nhj}XIeK4R9hMZn8K7Z3PVG8*hGb0)14f| z#PDj@Hh;7CXT{EiY&!W;Z1d!^VpTm$b3dhYn-om_8I!EAsB){j{mD5`^#9EHb5PpY WBiYANRrwdtj|`r!elF{r5}E*WW`ETH literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_tool_stonehoe.png b/mods/farming/textures/farming_tool_stonehoe.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5ab61279665e2e661b57ec2007a3cde2fcecbe GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DinK$vl=HlH+5kiEpy*OmPaH=D4K!R~vm`9PuXo-U3d7N?g^-kW#GK%~{)ou}l* z1&_d`eWrB{?=~1bVU5^iu<2RiCgV~C{sU7Qm-1f_boHEIwPcmZ%IHSU@`D{B9h|n4 z>r3_(uV2Uee~Ll3M%R`pLJf;FI1UGFVUl2VTwr_NS+jM@C9d5Si4F{2n$I?C_Rp1% zyI)i&df>$O+PAy(?#p{W`P*l5K5~uOqb!C4r-Q@g-`}_2&OSfcxS!qj?*-AEa=yP8 zUB0+aj#`myJU#Vf(pJIK>$k30b;{=qpM}}%%@%!(CpN8-EI5}lWtnELuE|WsNh&M1 zUd&A17jiT)r2cqnrTo_?4?oY{_tJc;uieG7C#(N537yK-Y3f-N4-5hZPgg&ebxsLQ E06HR)=l}o! literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_tool_woodhoe.png b/mods/farming/textures/farming_tool_woodhoe.png new file mode 100644 index 0000000000000000000000000000000000000000..2a059f613c566f1391db88bcb22e765d64af241b GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DinK$vl=HlH+5kiEpy*OmPaH=D4K<sqiOr-4GNJY5_^EKVmUED$g_Br!8@*MC*k zof050Z~y;e2DR5y-6rugFh={X{Ld8ghR5iT4bP;e7#7~cnvBLBjg5_tZZp~+zDrkQ zE1b5Tr<?zNqRJ@-34;)UzvmC1Jas@*;nadNzxy9Pn`_PU`(16i$}I*qAaK^~`+wrk z=ks+2Lb9heZqxcdcZ$XTY_Ed9>Xuyzvrcy1pSa>?K-XjYsuEtt*^)rFoY*GG#h`G+ WUitT5wu3-dGkCiCxvX<aXaWH9Z)mRo 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..76c74cbf85d6079d3492e22daa070f61a4e0672d GIT binary patch literal 658 zcmV;D0&V??P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW zd<bNS0006>Nkl<ZI8UXL%TE(g6vn^X+nG+=p%2oE5v>Wx0-{2M4GT1p=t7Orr3;t- z2W$wT1g&A?PFF5XaOF~r3k``SMk7%PHI$$U!8S^TzG>&#>zzw5!nh%x<j&2^Ip>%2 zeRF{S4DxsX;_GoHNfd2C8H@qlLrId)%&^YW<D%}<`~*`Jir(S7fBN<ToT9Z4)66hz zs2rl{X1&FrGX4mMl)7y*HPJsoR^Lytre<T{LW+0}DsYH~X(Ru$3cn(&ya~a8jIClr zwJaMOOZS=WP=k_abpcGP1zEC?=!~FJ)1k-|rHY3B^C?nqnAm9;{F|3cWXLQenG4W6 zJWVR4ZG2pOgK(P<rLr>##d3O*h4{Mz=o(BCN<9MN0ytx3SHFt!7T(UIscCQ=bsCGs z28KpwNcJ7~plRXE$UWi}l?Ngk@j>#(aWqVkU0DVtJ&3j+gRZym;^}SY2Z7RE|NjY) zWf|MQ@&X%DWe`H3C=xf*gHWgkCO6qMTO#iQT)))8zO5G#iz>otMi{mVIS!GahGL@8 z%k|6huKIm@aOL6=R;`(cxBGGH=2<kF8b22L`c8={V(}9Q@JUMLCj5R00e%GL<?IbM z_v9KI97w?Dqp0o}SX<vjH0<MADRSR8V3`btZVM@U9_WSzGW%$hX_|#5Pf{)@pDW|@ zN&(Mb6<k}Io*QG%emINNb#7ARy$#Jk_sKZ&KT6Q~rllTcT#dpl9wS#DxN@F5V`;MV sWfQf!iQ^rSz1qXy&mLcPq#Zhb13fMCljO{?{Qv*}07*qoM6N<$g8rW?ga7~l literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_wheat_1.png b/mods/farming/textures/farming_wheat_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd77fe88910e0c3f9492b896bba11e9c315271b GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E~_XnlMo9FuP9K+&eO#)#Nu>vf&}a01QDK~3v~*Q>^Ejb^SAs>Zz|l?=lVB2 zAtB+%@elotK(H`1U*pb#S-y-BH~-iDPiJ75I$b3FS5A@)&?E*=S3j3^P6<r_Q8_Nb 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..ee0caee7def0e85aa64368a0f24c31d1ca4e7987 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E~_XnlMo9FuP9Kcz|+Ms#Nu>vf&}a01d#+*VgC02>QQeOcKr8w(G-90e~Y(} z(SzH|<9Q00tG>1TNl!>f`0@L>JTnj+eji`|fNOVI%K_f(`%)a~n>QIN^CYAuCj!+Z wJb0E4Qk(GOKYyaI@+9k-GX!MJ{L<JMW<HVK$E*5&1<-B=Pgg&ebxsLQ0Krc}q5uE@ 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..002df6271223a3435f7cda7491892f2301ffc6d0 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E~_XnlW;M!Z8K14iKmNWh{fsT1PRu~4Ppte)=l`oWJS7@c*64()u`h8%NqVm zu>JYXU3g$oupvwAA@viTFPqlSuQxIP0VBb(gU8G73$UHBl=(To5eS;QS(7d-k1uGQ zySnz_x|v&SCC)v2l;|w+;qh(#DFzQ5xVYu&%9a=;wQc_Y@8|IYSN2<eu-|sz_vh#G z%s_DXi*4fn`oDj;#sB}5Jrq}D_RU^dS(%xE*VUMN+gFD9K=(3uy85}Sb4q9e0H4cZ AGXMYp literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_wheat_4.png b/mods/farming/textures/farming_wheat_4.png new file mode 100644 index 0000000000000000000000000000000000000000..3903715e1e77f44005db9bbc92d9f3fc9722968a GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E~_XnlW;M!Z8K2lyr+v}h{fr*6HoIUbP#FV|579B(X5W=LV|JUy<83*@{;1d z=dpFmiwGX$Q%*<x=3Jd${8Qif!}|C&Khsv&-7KFcee&a(aF&a9tO-&)_pD~F`Sq&x z!1^5wM=rixTXnN|ZS&12Z7#*UxjM^Bjz3O4|G>g3vdQEs`)>or1s6Z%o@1ZybR*^A zyAESslifj87hZ-jS{zv!IVDKyPEIx3_FHm(WyMh|#ftYUEH${esQtSKpE!fq?TJBN z4|lk}eP49VCw2dX?vMi2tyL#wTCHE}oPNM1?-)3xW{qwo&}$5yu6{1-oD!M<1fhCk literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_wheat_5.png b/mods/farming/textures/farming_wheat_5.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc98f7c6a9c1aa92d1f57838991f4aac65e3d47 GIT binary patch literal 454 zcmV;%0XhDOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6%7mt5aQ`~0004HNkl<ZILqylPcH*e6vcmUIy2SL z+8`o6iZym^HAsYyV8d5JnySA|*&uAO<_ic~2}7poOgo)ki`Nd3E=Vlh<$33vd(O>+ z|M~m5zFd>v@Qv?47)C!9-(Iha0dRM-5pR8csl|k^_@JpjKk5YT>k}vCf&gSPc1-AY zy90&CJM#iyCVCa7=ZZ=x1wgYI0&se?AP*1sv8Y-q#A(v$Bmj*@_;~}zu>i1>2>?2w zFjv@9{r5h8QC$+(4FE7r17m+HD*!>DH%A>EdpP}BWp6Vlv-z?DaNh#*D~Afewi6h` zz0H<w0+29usK5_ngG}1utg<KoQ<Ebx?s;vDzQAv`buUi~Qz>nDu$>c>LPVdSR`;kB z^P-RZ<sXRXy6&5=t3+BbG49ZAMa<-ORkc)*%*YVg<wJFKzABcbFzWRNm116up4Hf> wqYb*kS!GdL?TD0P#<5#L2Y`34h3|)a01+dQaz?hkEC2ui07*qoM6N<$g5C$bj{pDw literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_wheat_6.png b/mods/farming/textures/farming_wheat_6.png new file mode 100644 index 0000000000000000000000000000000000000000..75cf64867f7029a6e402cdd223fc8d82e2260404 GIT binary patch literal 607 zcmV-l0-*hgP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6%7muiR-w{00060Nkl<ZILqCV%S%*I9LGQB+<WI~ zP8kyPphW~Nq81UfsJ0QKl191dK@=1TCe(isg)K~j2z=l`WH}=Q1wpTk&_Zpc85M2> zQ3D@$X6~8$YjK)83K6vJtbXTkzTfZpe$N;FuQfe>TV_Aqk$=Is8#fD!KAHMB0OPMa zB$04AeDZ<%6L8{PrxZ&edg?=0q`0FoNh)bM{bE2}I`&uf#_dV;>YCx>%bNnQ|L8q6 zF*O6go?RJyKiHtywaJ>+n(uQz(G6Q;)NiRNt*;vZ_8qyazRZ3DVDkMfQOe@q7H$Z@ zp%dL|X>lHX;MjdNJ@Yjp5UE6SscdIQtH{pM;yj}RZ35uBE*c;ebIJ8K3qUMpGZ^k` zl0?FS4j%7Tlb@|f+m%tJkce0VWG}u@%CU!4P&(yt=F)QoFgDaG##n1lAGb(32&16& zU{6*6;&Bgv>cvW>mRTiKoWE930L8#??rL5Ec&>x4253z9+qVUpN=SdtDFImZ%j5@I zt#4hcj^ik_<2V3#p0nwXMTE;8uT<_)R_c;5ioO-tmWeYqbk-8DmC@xOr2pY*Dfu?> zy}L7(pkfOcie_b{MEmu;Dh#&C!txr;7e-XBw^_8-Xsw|>oxp^K;l3vMF}KW{k#=!B t#j__ZVvHf3w)NiGkRqM%qE`k%z%O?i$i?-kOZ)%;002ovPDHLkV1iI04<7&k literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_wheat_7.png b/mods/farming/textures/farming_wheat_7.png new file mode 100644 index 0000000000000000000000000000000000000000..b12686dd642b3310afd6403598d55a300674e858 GIT binary patch literal 676 zcmV;V0$crwP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6%7muiR-w{0006*Nkl<ZILpnF&r4KM6vsdJ&U??N z&Xf%iEs8|?1F{y;-ZBVFCP9i8xpHBWCH)sdSO`T(6A40!3~C`kWJOd&i$ID9sZh{T z$DHxakN4)i)8gW!yO!PEJ@<P)=X=gQ@L!!Tulwc0(_Z;k{im1LMQ;x*|Jp=r6Plat zlQ)lhs<6+m`gefm-`<cYiqLbjebt9u371m20)TDDsIRrF39H${j_UK@*HB8K9mlHD zn_C7|oofN$6#{}v2*CT9UTN6n0`P9exN16-#I_XLD+J{7rN49d`VD}iCvT}(EC#^t zgpD5<XO`A{e0Eh1pBPYDYjktVpmH3m3fOW0Fh6f#mZe$WC|BdTO&@@Tg&*iG;l#am z0myqs`210)h?wy-9Uo9$ehq+Qr*5m|r9}XKt`-fTqkB?`n0}+kR4Mx*9o>@(AT!)9 zUcrE89;U=A8f~({MQ4Un0#GWM9^(lI0Hsvba-|Y+@yfIUD3(JmUwfheHa#D`kt-Te z2xE88iG(IG2tsB?Is~Au)?(~Vn*h|hHko15Zn-4r?K@yQ3fne-m8{3<OXF&Es7<2C z6fi$hL*s$Cx#$SJe_xyjH(MnPL)yDCD!XnLCSK<-l|C<tdK<40aG_^PO{Y_`k}Yzi zbwo|4Q{vbbR@o1U*SlDb=EZoY1X0N7&>3kw*udh_CIF6Oj79=Aj@b=AsNlLbYVv+c z&UQ_x>2yl8hM0;`k%*OS9!FWk>==8KF28erHQ6ha34CEsvX(yv$@*uv7{;;y0000< KMNUMnLSTZU@GC<A literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_wheat_8.png b/mods/farming/textures/farming_wheat_8.png new file mode 100644 index 0000000000000000000000000000000000000000..9263226b81c80917b9222b00a1aafc53a5dd5570 GIT binary patch literal 811 zcmV+`1JwM9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6%7mv{_Kcb0008YNkl<ZILnQa%WqV56vsd3ci;E6 z(*cdphmUCD$_Fl3xX_3jQ?YRdTxe`a8kb69jQkZEQ;dxZjjd?tLZPk1$AXQTxB(WT zqEQi(rUD(Nb=o`Axv$^P#jg~Wp4G`o&iTF$+*W^`d(&Jvd(`kh>$e}?Fz)Sxf3Bw_ zaR9)Dvqw#RDCB|tZ^^}PUpHE7_8oXv06u;1+2oOjA56Qw0(JS^u^q%D4lw2xf#sDB z0CD6}6n1{){4sO)*l_B53K2oI*S5HF-X5tcLl{_6f$tDUJ^=kplf)hX-Clt)hR#L? zfVy*cNM2|FTvs7tksf+-S_Tq(U?6r$yEy;`!S`UO7Lddq>i+$2%cWoc1YqBRX(_8) zo?QI-cL1)gb_oK<f;fuSzZqFx(d`u|fZkTg7at!o0PWTa0AHUxyko}W<1<nlxGAS( zt#xD1qfZ@|!Nju%UVimU$?^h#_PW(}qunPA?9w+UUogL1x(vW$Pal_E_2fFhk3ao^ zTAFJb07nS`-c72mqA_(^tZu_|M{NK3hYgb#B><H+s4TalwT7j+rqQL|PC+<xqPd-p z@X5@$0a#m4i9?%IS(d1gJ+WPgJT}veD70}Y<uY+(L6+v8H-m}8eWP^%M)uZ_ZMLJs zL#V%(H<*3r8MC>OG5Ok8VwCkRFG{{!c+sqPGWwb3iN?Hqzxa}At#&y$c}hO}V8Se~ zbWrz>4H1VvV<R<Yr^ih%Et!9R!rXO7NM|#{bDf<(sj7<lt`LBGMr-IwAqyWhjqfY+ zyhOwy%k8HnaX?X29C~F@&YU=GvaNzJa>+A|xI(|569zuY5#iwEDe*jq#?)zvLJtu^ zYv}iK=4U2MRaJO_!$zl%7YWU&1qpnQIC7E2*@oF&57AoF*|g|dgHnpEe!<xA0IhZx p-*ZWOIiq_AskGtRYDygW{0Dx@Ij`fTs$c*B002ovPDHLkV1juzbu0h? 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..f0bb14b21b3370a356011f6ab7e2bfdae8cef640 GIT binary patch literal 467 zcmV;^0WAKBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-sl6$~LXX=0VW0004UNkl<ZILob4O-lk%6g}^~aimDx z*ruORn-)Q2>lR_^C=<2o9~HHzNVD-HELubai7-e=wd`LQC?h&KGq=Uy$4duXcvtV< zckbn!b1yJwyq7eZRp-M;Eti%6&GNXRS;<n{BD`ItXyyR3kfMP@csfrI08~#C)a|)w z82%8!2(c)K8sf7V*nL7+75H`hq6i5%9tS)>-$>jstLI@$H&~#?dR~@bmUP0Rqgm7_ z(8T{?8Zv{Xp;60n@llb7Z~&;^$n;+>(?kPXs(S>4Lkyk1Co`z!(&U2hdOZd!!b8g< zL?U7Y+{_qE<s5OnBpJz9qkgVVh}k_Vv$dFl_5Febp4`IoMUnu34L7i@7umdKKAas; zWSN18`5p|LKkqYvs~a8_00_>Ys2oDD@fN<SS^8;vQ!e`qlho}Kz90R+y^}I?ZHAr0 zA{!0pS}qtTxXv_*l_doV_t3G&wfOOjt8Cn+0wtJvZSj{00DtYlo+K#*x~%{J002ov JPDHLkV1kTq!$$xB literal 0 HcmV?d00001