From 482d1c3f78043fe61c407da2c4c0a2a3a9030610 Mon Sep 17 00:00:00 2001 From: "A. Demant" Date: Mon, 24 Sep 2018 17:55:45 +0200 Subject: [PATCH] extend to potato --- README.txt | 8 ++- api_ng.lua | 66 +++++++++++--------- config.lua | 39 ++++++++++++ craft.lua | 104 +++++++++++++++++++++++++++++++ crops/barley.lua | 22 +++++++ crops/cotton.lua | 39 ++++++++++++ crops/potato.lua | 22 +++++++ crops/wheat.lua | 22 +++++++ depends.txt | 3 +- init.lua | 98 ++++++++--------------------- intllib.lua | 45 +++++++++++++ locale/de.po | 39 ++++++++++++ nodes.lua | 23 ++++--- textures/farming_barley.png | Bin 0 -> 551 bytes textures/farming_barley_1.png | Bin 0 -> 122 bytes textures/farming_barley_2.png | Bin 0 -> 150 bytes textures/farming_barley_3.png | Bin 0 -> 197 bytes textures/farming_barley_4.png | Bin 0 -> 226 bytes textures/farming_barley_5.png | Bin 0 -> 241 bytes textures/farming_barley_6.png | Bin 0 -> 263 bytes textures/farming_barley_7.png | Bin 0 -> 252 bytes textures/farming_barley_seed.png | Bin 0 -> 144 bytes textures/farming_potato.png | Bin 0 -> 233 bytes textures/farming_potato_1.png | Bin 0 -> 132 bytes textures/farming_potato_2.png | Bin 0 -> 184 bytes textures/farming_potato_3.png | Bin 0 -> 209 bytes textures/farming_potato_4.png | Bin 0 -> 243 bytes 27 files changed, 417 insertions(+), 113 deletions(-) create mode 100644 config.lua create mode 100644 craft.lua create mode 100644 crops/barley.lua create mode 100644 crops/cotton.lua create mode 100644 crops/potato.lua create mode 100644 crops/wheat.lua create mode 100644 intllib.lua create mode 100644 locale/de.po create mode 100644 textures/farming_barley.png create mode 100644 textures/farming_barley_1.png create mode 100644 textures/farming_barley_2.png create mode 100644 textures/farming_barley_3.png create mode 100644 textures/farming_barley_4.png create mode 100644 textures/farming_barley_5.png create mode 100644 textures/farming_barley_6.png create mode 100644 textures/farming_barley_7.png create mode 100644 textures/farming_barley_seed.png create mode 100644 textures/farming_potato.png create mode 100644 textures/farming_potato_1.png create mode 100644 textures/farming_potato_2.png create mode 100644 textures/farming_potato_3.png create mode 100644 textures/farming_potato_4.png diff --git a/README.txt b/README.txt index d46748d..440ba49 100644 --- a/README.txt +++ b/README.txt @@ -6,6 +6,7 @@ Authors of source code ---------------------- Originally by PilzAdam (MIT) webdesigner97 (MIT) +ademant (MIT) Various Minetest developers and contributors (MIT) Authors of media (textures) @@ -18,9 +19,6 @@ Created by PilzAdam (CC BY 3.0): farming_string.png Created by BlockMen (CC BY 3.0): - farming_tool_diamondhoe.png - farming_tool_mesehoe.png - farming_tool_bronzehoe.png farming_tool_steelhoe.png farming_tool_stonehoe.png farming_tool_woodhoe.png @@ -38,3 +36,7 @@ Created by Gambit (CC BY 3.0): Created by Napiophelios (CC BY-SA 3.0): farming_cotton.png + +Created by ademant (CC BY 3.0): + farming_tool_flail.png + farming_tool_coffee_grinder.png (based on art by cactus_cowboy on openclipart.org) diff --git a/api_ng.lua b/api_ng.lua index c0f19f5..dd33171 100644 --- a/api_ng.lua +++ b/api_ng.lua @@ -66,7 +66,7 @@ farming.register_plant = function(name, def) def.switch_drop_count = def.steps end end - if not def.spawn then + if not def.spawnon then def.spawnon = { spawnon = {"default:dirt_with_grass"}, spawn_min = 0, spawn_max = 42, @@ -78,7 +78,7 @@ farming.register_plant = function(name, def) def.spawnon.spawn_min = def.spawnon.spawn_min or 0 def.spawnon.spawn_max = def.spawnon.spawn_max or 42 def.spawnon.spawnby = def.spawnon.spawn_by or nil - def.spawnon.scale = def.spawnon.scale or 0.006 + def.spawnon.scale = def.spawnon.scale or farming.rarety def.spawnon.spawn_num = def.spawnon.spawn_num or -1 end @@ -157,19 +157,27 @@ farming.register_plant = function(name, def) if def.steps ~= 1 then base_rarity = 8 - (i - 1) * 7 / (def.steps - 1) end + -- create drop table local drop = { items = { {items = {harvest_name}}, } } + -- if seeds are not crafted out of harvest, drop additional seeds + if def.groups.drop_seed ~= nil then + table.insert(drop.items,1,{items={seed_name}}) + end + -- with higher grow levels you harvest more if (i >= def.switch_drop_count ) then table.insert(drop.items,1,{items={harvest_name},rarity=base_rarity}) --- drop.items=table_insert(drop.items,{items={harvest_name},rarity=base_rarity}) + if def.groups.drop_seed ~= nil then + table.insert(drop.items,1,{items={seed_name},rarity=base_rarity}) + end end + -- at the end stage you can harvest by change a cultured seed (if defined) if (i == def.steps and def.next_plant ~= nil) then def.next_plant_rarity = def.next_plant_rarity or base_rarity*2 table.insert(drop.items,1,{items={def.next_plant},rarity=def.next_plant_rarity}) --- drop.items = table_insert(drop.items,{items=def.next_plant,rarity=def.next_plant_rarity}) end local nodegroups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1} @@ -205,10 +213,6 @@ farming.register_plant = function(name, def) }) end - - - - -- replacement LBM for pre-nodetimer plants minetest.register_lbm({ name = ":" .. mname .. ":start_nodetimer_" .. pname, @@ -219,26 +223,32 @@ farming.register_plant = function(name, def) }) -- register mapgen - print("spawn on "..def.spawnon.spawnon[1]) - minetest.register_decoration({ - deco_type = "simple", - place_on = def.spawnon.spawnon, - sidelen = 16, - noise_params = { - offset = 0, - scale = def.spawnon.scale, -- 0.006, - spread = {x = 100, y = 100, z = 100}, - seed = 329, - octaves = 3, - persist = 0.6 - }, - y_min = def.spawnon.spawn_min, - y_max = def.spawnon.spawn_max, - decoration = harvest_name.."_1", - spawn_by = def.spawnon.spawnby, - num_spawn_by = def.spawnon.spawn_num, - }) - + print("spawn "..dump(def.spawnon)) + print("scale "..def.spawnon.scale) + local mapgen_level = def.switch_drop_count - 1 + print(mapgen_level) + for i = 1,math.max(mapgen_level,1) do + for j,onpl in ipairs(def.spawnon.spawnon) do + minetest.register_decoration({ + deco_type = "simple", + place_on = onpl, + sidelen = 16, + noise_params = { + offset = 0.12 - 0.08*i, + scale = def.spawnon.scale, -- 0.006, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_min = def.spawnon.spawn_min, + y_max = def.spawnon.spawn_max, + decoration = harvest_name.."_"..i, + spawn_by = def.spawnon.spawnby, + num_spawn_by = def.spawnon.spawn_num, + }) + end + end -- Return local r = { seed = mname .. ":seed_" .. pname, diff --git a/config.lua b/config.lua new file mode 100644 index 0000000..6349595 --- /dev/null +++ b/config.lua @@ -0,0 +1,39 @@ + +--[[ + Farming settings can be changed here and kept inside mod folder + even after the mod has been updated, or you can place inside + world folder for map specific settings. +--]] + +-- true to enable crop/food in-game and on mapgen +farming.carrot = true +farming.potato = true +farming.tomato = true +farming.cucumber = true +farming.corn = true +farming.coffee = true +farming.melon = true +farming.pumpkin = true +farming.cocoa = true +farming.raspberry = true +farming.blueberry = true +farming.rhubarb = true +farming.beans = true +farming.grapes = true +farming.barley = true +farming.chili = true +farming.hemp = true +farming.onion = true +farming.garlic = true +farming.pepper = true +farming.pineapple = true +farming.peas = true +farming.beetroot = true + +-- rarety of crops on map, default is 0.001 (higher number = more crops) +farming.rarety = 0.002 + +-- node type, where grain can be randomly found +farming.change_soil = {"default:dirt","default:dirt_with_grass","default:dirt_with_dry_grass","default:dirt_with_rainforest_litter", + "default:dirt_with_coniferous_litter","default:permafrost_with_moss"} +farming.change_soil_desert = {"default:desert_sand"} diff --git a/craft.lua b/craft.lua new file mode 100644 index 0000000..c125271 --- /dev/null +++ b/craft.lua @@ -0,0 +1,104 @@ +local S = farming.intllib +local modname=minetest.get_current_modname() + +-- define seed crafting +local function seed_craft(grain_name) + local mname = grain_name:split(":")[1] + local pname = grain_name:split(":")[2] + + minetest.register_craft({ + type = "shapeless", + output = mname..":seed_"..pname.." 8", + recipe = { + grain_name,grain_name,grain_name,grain_name, modname..":flail",grain_name,grain_name,grain_name,grain_name + }, + replacements = {{"group:food_flail", modname..":flail"}, + {"group:food_wheat","farming:straw"}}, + }) + minetest.register_craft({ + type = "shapeless", + output = mname..":seed_"..pname.." 1", + recipe = { + grain_name, modname..":flail" + }, + replacements = {{"group:food_flail", modname..":flail"}, + {"group:food_wheat","farming:straw"}}, + }) + minetest.register_craft({ + type = "shapeless", + output = mname..":seed_"..pname.." 1", + recipe = { + modname..":flail",grain_name + }, + replacements = {{"group:food_flail", modname..":flail"}, + {"group:food_wheat","farming:straw"}}, + }) +end + +-- defining template for roasting +local function roast_seed(seed_name,roast_name,cooktime) + minetest.register_craft({ + type = "cooking", + cooktime = cooktime or 3, + output = roast_name, + recipe = seed_name + }) +end + +-- craft flour with mortar +-- minetest.clear_craft({output="farming:flour"}) +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = { + "group:seed", "group:seed", "group:seed", + "group:seed", modname..":mortar_pestle" + }, + replacements = {{"group:food_mortar_pestle", modname..":mortar_pestle"}}, +}) + +seed_craft("farming:wheat") +seed_craft("farming:barley") + +roast_seed("farming:seed_barley","farming:seed_barley_roasted") +roast_seed("farming:seed_wheat","farming_grain:seed_wheat_roasted") + +minetest.register_craft({ +type = "shapeless", +output = modname..":grain_powder", +recipe = { + "group:food_grain_roasted", modname..":coffee_grinder" +}, +replacements = {{"group:food_coffee_grinder", modname..":coffee_grinder"}}, +}) + +minetest.register_craft( { + output = modname..":grain_coffee_cup", + type = "shapeless", + recipe = {"vessels:drinking_glass", "group:food_grain_powder", + "bucket:bucket_water"}, + replacements = { + {"bucket:bucket_water", "bucket:bucket_empty"}, + } +}) + +minetest.register_craftitem("farming:bread", { + description = "Bread", + inventory_image = "farming_bread.png", + on_use = minetest.item_eat(5), + groups = {food_bread = 1, flammable = 2}, +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 15, + output = "farming:bread", + recipe = "farming:flour" +}) + +minetest.register_craftitem("farming:flour", { + description = "Flour", + inventory_image = "farming_flour.png", + groups = {food_flour = 1, flammable = 1}, +}) + diff --git a/crops/barley.lua b/crops/barley.lua new file mode 100644 index 0000000..7ad14d8 --- /dev/null +++ b/crops/barley.lua @@ -0,0 +1,22 @@ +-- Barley + +farming.register_plant("farming:barley", { + description = "Barley Seed", + paramtype2 = "meshoptions", + inventory_image = "farming_barley_seed.png", + steps = 8, + switch_drop_count = 6, -- at which stage more harvest + minlight = 13, + maxlight = default.LIGHT_MAX, + fertility = {"grassland"}, + groups = {food_wheat = 1, flammable = 4}, + place_param2 = 3, + spawnon = { spawnon = farming.change_soil or {"default:dirt_with_grass"}, + spawn_min = 0, + spawn_max = 42, + spawnby = nil, + scale = 0.006, -- 0.006 + spawn_num = -1} +}) + + diff --git a/crops/cotton.lua b/crops/cotton.lua new file mode 100644 index 0000000..f8216a5 --- /dev/null +++ b/crops/cotton.lua @@ -0,0 +1,39 @@ +-- Cotton + +farming.register_plant("farming:cotton", { + description = "Cotton Seed", + inventory_image = "farming_cotton_seed.png", + steps = 8, + minlight = 13, + maxlight = default.LIGHT_MAX, + fertility = {"grassland", "desert"}, + groups = {flammable = 4,drop_seed=1}, + spawnon = { spawnon = farming.change_soil_desert or {"default:desert_sand"}, + spawn_min = 0, + spawn_max = 42, + spawnby = nil, + scale = 0.006, -- 0.006 + spawn_num = -1} +}) + +minetest.register_craftitem("farming:string", { + description = "String", + inventory_image = "farming_string.png", + groups = {flammable = 2}, +}) + +minetest.register_craft({ + output = "wool:white", + recipe = { + {"farming:cotton", "farming:cotton"}, + {"farming:cotton", "farming:cotton"}, + } +}) + +minetest.register_craft({ + output = "farming:string 2", + recipe = { + {"farming:cotton"}, + {"farming:cotton"}, + } +}) diff --git a/crops/potato.lua b/crops/potato.lua new file mode 100644 index 0000000..9b19a1e --- /dev/null +++ b/crops/potato.lua @@ -0,0 +1,22 @@ +-- Potato + +farming.register_plant("farming:potato", { + description = "Potato", + paramtype2 = "meshoptions", + inventory_image = "farming_potato.png", + steps = 4, + switch_drop_count = 3, -- at which stage more harvest + minlight = 13, + maxlight = default.LIGHT_MAX, + fertility = {"grassland"}, + groups = {food_wheat = 1, flammable = 4,no_seed=1}, + place_param2 = 3, + spawnon = { spawnon = farming.change_soil or {"default:dirt_with_grass"}, + spawn_min = 0, + spawn_max = 42, + spawnby = nil, + scale = 0.006, -- 0.006 + spawn_num = -1} +}) + + diff --git a/crops/wheat.lua b/crops/wheat.lua new file mode 100644 index 0000000..6178ec5 --- /dev/null +++ b/crops/wheat.lua @@ -0,0 +1,22 @@ +-- WHEAT + +farming.register_plant("farming:wheat", { + description = "Wheat Seed", + paramtype2 = "meshoptions", + inventory_image = "farming_wheat_seed.png", + steps = 8, + switch_drop_count = 6, -- at which stage more harvest + minlight = 13, + maxlight = default.LIGHT_MAX, + fertility = {"grassland"}, + groups = {food_wheat = 1, flammable = 4}, + place_param2 = 3, + spawnon = { spawnon = farming.change_soil or {"default:dirt_with_grass"}, + spawn_min = 0, + spawn_max = 42, + spawnby = nil, + scale = 0.006, -- 0.006 + spawn_num = -1} +}) + + diff --git a/depends.txt b/depends.txt index 4873626..4b790f7 100644 --- a/depends.txt +++ b/depends.txt @@ -1,3 +1,4 @@ default +30biomes? +intllib? wool? -stairs? diff --git a/init.lua b/init.lua index c85ef5d..827044d 100644 --- a/init.lua +++ b/init.lua @@ -3,91 +3,43 @@ farming = {} farming.path = minetest.get_modpath("farming") +local S = dofile(farming.path .. "/intllib.lua") +farming.intllib = S + minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- start loading from "..minetest.get_modpath(minetest.get_current_modname())) -- Load files +farming.rarety = 0.002 -- 0.006 +farming.potato = minetest.settings:get("farming.potato") or true +farming.wheat = minetest.settings:get("farming.wheat") or true +farming.cotton = minetest.settings:get("farming.cotton") or true + +dofile(farming.path .. "/config.lua") +--[[ +for i,inp in ipairs({farming.path,minetest.get_worldpath}) do + print(inp.."/farming.conf") + local inconf = io.open(inp.."/farming.conf", "r") + if inconf then + dofile(inp .. "/farming.conf") + inp:close() + inp = nil + end +end +]] dofile(farming.path .. "/api.lua") dofile(farming.path .. "/api_ng.lua") dofile(farming.path .. "/nodes.lua") dofile(farming.path .. "/hoes.lua") dofile(farming.path .. "/utensils.lua") +dofile(farming.path .. "/craft.lua") --- WHEAT +dofile(farming.path .. "/crops/wheat.lua") +dofile(farming.path .. "/crops/potato.lua") +dofile(farming.path .. "/crops/barley.lua") +dofile(farming.path .. "/crops/cotton.lua") -farming.register_plant("farming:wheat", { - description = "Wheat Seed", - paramtype2 = "meshoptions", - inventory_image = "farming_wheat_seed.png", - steps = 8, - minlight = 13, - maxlight = default.LIGHT_MAX, - fertility = {"grassland"}, - groups = {food_wheat = 1, flammable = 4}, - place_param2 = 3, -}) - -minetest.register_craftitem("farming:flour", { - description = "Flour", - inventory_image = "farming_flour.png", - groups = {food_flour = 1, flammable = 1}, -}) - -minetest.register_craftitem("farming:bread", { - description = "Bread", - inventory_image = "farming_bread.png", - on_use = minetest.item_eat(5), - groups = {food_bread = 1, flammable = 2}, -}) - -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" -}) - - --- Cotton - -farming.register_plant("farming:cotton", { - description = "Cotton Seed", - inventory_image = "farming_cotton_seed.png", - steps = 8, - minlight = 13, - maxlight = default.LIGHT_MAX, - fertility = {"grassland", "desert"}, - groups = {flammable = 4}, -}) - -minetest.register_craftitem("farming:string", { - description = "String", - inventory_image = "farming_string.png", - groups = {flammable = 2}, -}) - -minetest.register_craft({ - output = "wool:white", - recipe = { - {"farming:cotton", "farming:cotton"}, - {"farming:cotton", "farming:cotton"}, - } -}) - -minetest.register_craft({ - output = "farming:string 2", - recipe = { - {"farming:cotton"}, - {"farming:cotton"}, - } -}) -- Straw diff --git a/intllib.lua b/intllib.lua new file mode 100644 index 0000000..6669d72 --- /dev/null +++ b/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/locale/de.po b/locale/de.po new file mode 100644 index 0000000..ecb6645 --- /dev/null +++ b/locale/de.po @@ -0,0 +1,39 @@ +# German Translation for farming mod. +# Copyright (C) 2017 +# This file is distributed under the same license as the farming package. +# Xanthin. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: 1.27\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-31 HO:MI+ZONE\n" +"PO-Revision-Date: 2016-03-31 HO:MI+ZONE\n" +"Last-Translator: Xanthin\n" +"Language-Team: \n" +"Language: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: spelt.lua +msgid "Spelt" +msgstr "Dinkel" + +#: spelt.lua +msgid "Spelt Seed" +msgstr "Dinkelkörner" + +#: spelt.lua +msgid "Roasted Spelt" +msgstr "Gerösteter Dinkel" + +#: spelt.lua +msgid "Spelt Coffee" +msgstr "Dinkelkaffee" + +#: spelt.lua +msgid "Cup of Spelt Coffee" +msgstr "Tasse Dinkelkaffee" + diff --git a/nodes.lua b/nodes.lua index a1b37ad..f2b39a1 100644 --- a/nodes.lua +++ b/nodes.lua @@ -8,12 +8,24 @@ local add_soil = function(item,soil) }) end -local change_soil = {"default:dirt","default:dirt_with_grass","default:dirt_with_dry_grass","default:dirt_with_rainforest_litter", - "default:dirt_with_coniferous_litter"} -for i,v in ipairs(change_soil) do +-- override grass items +if (farming.change_soil == nil) then + farming.change_soil = {"default:dirt","default:dirt_with_grass","default:dirt_with_dry_grass","default:dirt_with_rainforest_litter", + "default:dirt_with_coniferous_litter","default:permafrost_with_moss"} +end +for i,v in ipairs(farming.change_soil) do add_soil(v,"farming:soil") end +-- override desert items +if (farming.change_soil_desert == nil) then + farming.change_soil_desert = {"default:desert_sand"} +end +for i,v in ipairs(farming.change_soil_desert) do + add_soil(v,"farming:desert_sand_soil") +end + +-- register nodes minetest.register_node("farming:soil", { description = "Soil", tiles = {"default_dirt.png^farming_soil.png", "default_dirt.png"}, @@ -40,11 +52,6 @@ minetest.register_node("farming:soil_wet", { } }) -local change_soil_desert = {"default:desert_sand"} -for i,v in ipairs(change_soil_desert) do - add_soil(v,"farming:desert_sand_soil") -end - minetest.register_node("farming:desert_sand_soil", { description = "Desert Sand Soil", drop = "default:desert_sand", diff --git a/textures/farming_barley.png b/textures/farming_barley.png new file mode 100644 index 0000000000000000000000000000000000000000..39300349286a31956d23d1e99f49384d584d176e GIT binary patch literal 551 zcmV+?0@(eDP)<~{%b0o+MMK~#7FV=yu{+PNTcL9;cGK@4KpwW{pu=J;dF6V~(xOe-{K43r?C zp{L&Y$jXdu{ch{}16R+Cp4;I!q0Ff%(Xb>$3%dp&UeWCZbk)2flZ6cqi+h8nH~UYh zbZbt~FAdefu3<`%!IEyTRTF)u<(bW?bDq`UI;}OhtH8c7*`zoGn}(`j`H8vuvuo|< zHaJYmvzl4&KBdNaYFkimonLE-N4AeKx&|O>4v}t;keOQLIJ3#4J;`8lrDK1&ZBLC? zUzKlJphmK%4Z4P0BgSe+j?QGQ35Ax^8@<|7%_i6ScI23~<=E868} zAyb{NXmhYscee5Lwvfg|v(6&>rZ}yJDD~Q4#WH6RbPeHh4Cy+I)vnwPfnr^m#*^#3 zYa-3Mik#|$q-uRcYkkBE^ckTV;K)ggAytc^+J&nrSgI{vV`8;OmA`UhxMIDpSdA-p zu^9_o0|L293FI2HR6B9hdGIv)3wNaGl{tx2IC7U;GMAV$K{a5aLKDVHJC+(JwmLV? zhCt~oJ1yd=r9{-9ysve s!~w1phK<6_j!ewV)l$uq9hjLJ6nmKV8{GME9H@!G)78&qol`;+048`RmH+?% literal 0 HcmV?d00001 diff --git a/textures/farming_barley_3.png b/textures/farming_barley_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f68e1d014149f16bf18b5b34827f5b52ff3829c1 GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{@cx%fzrukimw5;RF}! zWImm3oGf=4>{jveW-(iLbK1`rWC~?S?B=y>;tj3i&sxlSL`C{GP#0rKkY6x^!?PP{ zK#qf_i(^OycP1j@CQ>yR2IJ$e=d4BB`jJ`Lr@2m%!#o+1c=d#Wzp$Py_Lpa<3 literal 0 HcmV?d00001 diff --git a/textures/farming_barley_4.png b/textures/farming_barley_4.png new file mode 100644 index 0000000000000000000000000000000000000000..da3861523602c5baa3282e1a4893cae41d5c2cf5 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{;cAM=vkKQ6@GZYa<)O zd^YAB7LTpWqE#Gr6S#Q-8QhO?dMp*J+RUID&yX>NHNKhCuWeZqP&;EukY6x^!?PP{ zKu)Zui(^OyW6}aeh7w&-Hi5$mA08dNS%0%Uv%5HGokMQ;1BI9QPs|OTeU5s{`DT5} z8`Js6Z+q-+x~>;d(Y`_K#+7CIrN?hQ*>HTq^whUAE>6hvb>w+-T)HRYWoOO~=Ik~m V-wlF=G literal 0 HcmV?d00001 diff --git a/textures/farming_barley_5.png b/textures/farming_barley_5.png new file mode 100644 index 0000000000000000000000000000000000000000..ace1fba882938cf3f2604a4f56844e7a047624cf GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{;c=_d$lTH53T;8;Fzuo^Pdpei;TsOV;z}q*^&HpR?$tzd?>iLcB zTc51gt#4(Mdh7d-t=J)&>vx=p<`T!@4*02$$E84am~w(<^0^6<9vK?*@OP jPD8i1RmyhJj!x;l+|1&0C4apH+RNbS>gTe~DWM4f|LII$ literal 0 HcmV?d00001 diff --git a/textures/farming_barley_6.png b/textures/farming_barley_6.png new file mode 100644 index 0000000000000000000000000000000000000000..18046dc16a31548ca931fcc11aec4be9747dcfb6 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{;eWq>~ISTNz@j_zGq- z1m*Emtz@tZWA#X6Ettkrwvaoci(A8z!PJvMT8%+int`30Ax5O$8K|AHB*-tA!Qt7B zG$5zR)5S5Qf-$y}m5IfWgL!#@N9phX=jZ)i;8_vy!+A=)-?y*K4;YvlSVX*-^4150 zh-m#Z*p!gR`rNTIY~qx63JM+D4xIIUA(3>~X2r{gCm7C~Wd)`8x2bzvc`@1U_lpXL zvv#i?+WDL(XQw!;?|OFWb(>7t4W(&s_egImz1{fshL@gR@Glmn#L%ymK-VyMy85}S Ib4q9e0Me0K*Z=?k literal 0 HcmV?d00001 diff --git a/textures/farming_barley_7.png b/textures/farming_barley_7.png new file mode 100644 index 0000000000000000000000000000000000000000..6057c815ac54c49ba2cc19477c2a79428a1edbdc GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{;eWh0TEv&-AUCY?;!* zQMrntaR+O`bS8&L*7z#kpnNV|q>Sq3&f1`dryw}9FiOM?7@862M7 zNCR@pJzX3_Di~Q0HWrF7@~{}Z{bl^{*ZOG>&$}_PIItQCgs@3_tT^g1!*%A5BkvzS zc6&VUe7x%MrN%eU?EU<T#3HQW4}?W`^0XPrXs7tiT&*{jC0>hkJ zx{&|D8mS`_n9tAVTwl#_aW41PMuyYV*><)vPEBO!jb!MFU|3zwFgKH-){|kw+YVcx ze#Vj@zhDN3XE)M-oM=xM$B+ufCB8=)8w>gumCoYG?keht)E-C;NOB;=Ft-H+qVN eno7@ccZQ7(jL*c|OT3}^k{ zY@qj3^!${6!l?p2iXCp(TFw{nOg~_7P+p|k`JU7U1VdMGwZ@ri4C4A f`Yxd@-h2#9D@^8Jt}t~38q476>gTe~DWM4f8{R9! literal 0 HcmV?d00001 diff --git a/textures/farming_potato_2.png b/textures/farming_potato_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8e50e694c7467faa4f2f72f68588f113cc66772f GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=1^?DQ*91*nE&-`c=WA z4GdvZ7?KwA{VR2LnVH4m7)S zvN2w9;CEo3@U4G>pixoViMd?69PTnq+cwJ}zsK$3o5#s@kxol?+rHU+q2UWpm1j9>)VsGe%DPF}`+-#b*B}3)7?*8OkkPHqwikG_Ow#gMQJ+RysGP-4 z{+Ohd*Iza)|8;7@FW=^Geo9~5Crzl?(%8Fx-#2FE8C>`I1ooc>TE^h%>gTe~DWM4f DZc9rL literal 0 HcmV?d00001 diff --git a/textures/farming_potato_4.png b/textures/farming_potato_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1f3275c455fa736aa149ed58f8caf503cd2a02cd GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=9ci|JnZ4@ZSA9E1oHR z|M9i?Aj9uJKTn=IKK-g-(FTSaH?JixWC)wW;MKukU&}CW7gHlp4`WG?UoeBivm0qZ zPNAoZV@L&~??Fa3CPxN_12-r8u8!b(X>0pn-Uh)P@hnUh1tJy=lU}g1D+q9K+AdUQ zxzJO;km-#00FVdQ&MBb@0G@n+a literal 0 HcmV?d00001