From c23219729c2afbc8fc7992bd0839696c80d8cd21 Mon Sep 17 00:00:00 2001 From: mckaygerhard Date: Tue, 6 Jun 2023 11:28:47 -0400 Subject: [PATCH] update farming mod for mt game v4, need test compatibility --- mods/README.md | 2 +- mods/farming/.gitignore | 1 + mods/farming/README.md | 205 ++++++++++----- mods/farming/compatibility.lua | 29 +-- mods/farming/crops/artichoke.lua | 24 +- mods/farming/crops/asparagus.lua | 94 +++++++ mods/farming/crops/barley.lua | 31 ++- mods/farming/crops/beans.lua | 19 ++ mods/farming/crops/beetroot.lua | 19 ++ mods/farming/crops/blackberry.lua | 21 +- mods/farming/crops/blueberry.lua | 19 ++ mods/farming/crops/cabbage.lua | 19 ++ mods/farming/crops/carrot.lua | 36 ++- mods/farming/crops/chili.lua | 38 +++ mods/farming/crops/cocoa.lua | 7 +- mods/farming/crops/coffee.lua | 28 ++ mods/farming/crops/corn.lua | 20 ++ mods/farming/crops/cotton.lua | 34 ++- mods/farming/crops/cucumber.lua | 28 ++ mods/farming/crops/eggplant.lua | 90 +++++++ mods/farming/crops/garlic.lua | 26 +- mods/farming/crops/ginger.lua | 89 +++++++ mods/farming/crops/grapes.lua | 19 ++ mods/farming/crops/hemp.lua | 32 ++- mods/farming/crops/lettuce.lua | 21 +- mods/farming/crops/melon.lua | 32 ++- mods/farming/crops/mint.lua | 38 ++- mods/farming/crops/onion.lua | 26 ++ mods/farming/crops/parsley.lua | 20 ++ mods/farming/crops/peas.lua | 19 ++ mods/farming/crops/pepper.lua | 27 ++ mods/farming/crops/pineapple.lua | 31 +++ mods/farming/crops/potato.lua | 19 ++ mods/farming/crops/pumpkin.lua | 48 +++- mods/farming/crops/raspberry.lua | 19 ++ mods/farming/crops/rhubarb.lua | 39 ++- mods/farming/crops/rice.lua | 46 +++- mods/farming/crops/soy.lua | 26 ++ mods/farming/crops/spinach.lua | 90 +++++++ mods/farming/crops/strawberry.lua | 112 ++++++++ mods/farming/crops/sunflower.lua | 36 ++- mods/farming/crops/tomato.lua | 20 ++ mods/farming/crops/vanilla.lua | 20 ++ mods/farming/crops/wheat.lua | 7 +- mods/farming/farming.conf_example | 8 +- mods/farming/food.lua | 66 ++++- mods/farming/grass.lua | 2 +- mods/farming/hoes.lua | 82 ++---- mods/farming/init.lua | 110 +++++--- mods/farming/license.txt | 48 +++- mods/farming/locale/farming.de.tr | 2 +- mods/farming/locale/farming.eo.tr | 194 ++++++++++++++ mods/farming/lucky_block.lua | 158 ++++++------ mods/farming/mapgen.lua | 240 ------------------ mods/farming/soil.lua | 37 +-- mods/farming/statistics.lua | 4 +- mods/farming/textures/crops_onion.png | Bin 841 -> 262 bytes mods/farming/textures/ethereal_strawberry.png | Bin 0 -> 382 bytes .../textures/ethereal_strawberry_1.png | Bin 0 -> 116 bytes .../textures/ethereal_strawberry_2.png | Bin 0 -> 137 bytes .../textures/ethereal_strawberry_3.png | Bin 0 -> 157 bytes .../textures/ethereal_strawberry_4.png | Bin 0 -> 209 bytes .../textures/ethereal_strawberry_5.png | Bin 0 -> 234 bytes .../textures/ethereal_strawberry_6.png | Bin 0 -> 240 bytes .../textures/ethereal_strawberry_7.png | Bin 0 -> 258 bytes .../textures/ethereal_strawberry_8.png | Bin 0 -> 258 bytes mods/farming/textures/farming_apple_pie.png | Bin 200 -> 262 bytes mods/farming/textures/farming_asparagus.png | Bin 0 -> 153 bytes mods/farming/textures/farming_asparagus_1.png | Bin 0 -> 115 bytes mods/farming/textures/farming_asparagus_2.png | Bin 0 -> 140 bytes mods/farming/textures/farming_asparagus_3.png | Bin 0 -> 165 bytes mods/farming/textures/farming_asparagus_4.png | Bin 0 -> 177 bytes mods/farming/textures/farming_asparagus_5.png | Bin 0 -> 200 bytes mods/farming/textures/farming_barley.png | Bin 230 -> 263 bytes mods/farming/textures/farming_barley_1.png | Bin 140 -> 114 bytes mods/farming/textures/farming_barley_2.png | Bin 151 -> 146 bytes mods/farming/textures/farming_barley_3.png | Bin 209 -> 176 bytes mods/farming/textures/farming_barley_4.png | Bin 229 -> 196 bytes mods/farming/textures/farming_barley_5.png | Bin 246 -> 225 bytes mods/farming/textures/farming_barley_6.png | Bin 271 -> 236 bytes mods/farming/textures/farming_barley_7.png | Bin 277 -> 256 bytes mods/farming/textures/farming_barley_8.png | Bin 0 -> 329 bytes .../textures/farming_blueberry_pie.png | Bin 195 -> 280 bytes mods/farming/textures/farming_burger.png | Bin 480 -> 422 bytes .../farming/textures/farming_chili_powder.png | Bin 0 -> 190 bytes mods/farming/textures/farming_coffee_1.png | Bin 135 -> 126 bytes mods/farming/textures/farming_coffee_2.png | Bin 145 -> 164 bytes mods/farming/textures/farming_coffee_3.png | Bin 171 -> 195 bytes mods/farming/textures/farming_coffee_4.png | Bin 192 -> 232 bytes mods/farming/textures/farming_coffee_5.png | Bin 192 -> 250 bytes .../farming/textures/farming_coffee_beans.png | Bin 204 -> 162 bytes mods/farming/textures/farming_eggplant.png | Bin 0 -> 194 bytes mods/farming/textures/farming_eggplant_1.png | Bin 0 -> 113 bytes mods/farming/textures/farming_eggplant_2.png | Bin 0 -> 137 bytes mods/farming/textures/farming_eggplant_3.png | Bin 0 -> 170 bytes mods/farming/textures/farming_eggplant_4.png | Bin 0 -> 195 bytes mods/farming/textures/farming_ginger.png | Bin 0 -> 193 bytes mods/farming/textures/farming_ginger_1.png | Bin 0 -> 120 bytes mods/farming/textures/farming_ginger_2.png | Bin 0 -> 156 bytes mods/farming/textures/farming_ginger_3.png | Bin 0 -> 177 bytes mods/farming/textures/farming_ginger_4.png | Bin 0 -> 217 bytes .../textures/farming_mac_and_cheese.png | Bin 0 -> 353 bytes mods/farming/textures/farming_melon_1.png | Bin 138 -> 139 bytes mods/farming/textures/farming_melon_2.png | Bin 161 -> 161 bytes mods/farming/textures/farming_melon_3.png | Bin 177 -> 170 bytes mods/farming/textures/farming_melon_4.png | Bin 181 -> 182 bytes mods/farming/textures/farming_melon_5.png | Bin 196 -> 187 bytes mods/farming/textures/farming_melon_6.png | Bin 219 -> 218 bytes mods/farming/textures/farming_melon_7.png | Bin 247 -> 244 bytes .../farming/textures/farming_melon_bottom.png | Bin 172 -> 309 bytes mods/farming/textures/farming_melon_side.png | Bin 179 -> 303 bytes mods/farming/textures/farming_melon_slice.png | Bin 227 -> 198 bytes mods/farming/textures/farming_melon_top.png | Bin 193 -> 309 bytes mods/farming/textures/farming_onigiri.png | Bin 204 -> 171 bytes mods/farming/textures/farming_pea_1.png | Bin 203 -> 207 bytes mods/farming/textures/farming_pea_2.png | Bin 215 -> 221 bytes mods/farming/textures/farming_pea_3.png | Bin 431 -> 441 bytes mods/farming/textures/farming_pea_4.png | Bin 528 -> 534 bytes mods/farming/textures/farming_pea_5.png | Bin 705 -> 711 bytes mods/farming/textures/farming_popcorn.png | Bin 292 -> 345 bytes .../textures/farming_pumpkin_bottom.png | Bin 258 -> 1237 bytes .../textures/farming_pumpkin_face_off.png | Bin 259 -> 587 bytes .../textures/farming_pumpkin_face_on.png | Bin 269 -> 663 bytes .../farming/textures/farming_pumpkin_side.png | Bin 231 -> 1053 bytes mods/farming/textures/farming_pumpkin_top.png | Bin 272 -> 605 bytes mods/farming/textures/farming_rhubarb_1.png | Bin 119 -> 116 bytes mods/farming/textures/farming_rhubarb_2.png | Bin 152 -> 119 bytes mods/farming/textures/farming_rhubarb_3.png | Bin 167 -> 152 bytes mods/farming/textures/farming_rhubarb_4.png | Bin 0 -> 167 bytes mods/farming/textures/farming_rhubarb_pie.png | Bin 198 -> 263 bytes mods/farming/textures/farming_rice.png | Bin 325 -> 190 bytes mods/farming/textures/farming_rice_seed.png | Bin 0 -> 165 bytes mods/farming/textures/farming_spinach.png | Bin 0 -> 166 bytes mods/farming/textures/farming_spinach_1.png | Bin 0 -> 119 bytes mods/farming/textures/farming_spinach_2.png | Bin 0 -> 139 bytes mods/farming/textures/farming_spinach_3.png | Bin 0 -> 146 bytes mods/farming/textures/farming_spinach_4.png | Bin 0 -> 163 bytes mods/farming/textures/farming_sugar_cube.png | Bin 0 -> 315 bytes 138 files changed, 1966 insertions(+), 611 deletions(-) create mode 100644 mods/farming/.gitignore create mode 100644 mods/farming/crops/asparagus.lua create mode 100644 mods/farming/crops/eggplant.lua create mode 100644 mods/farming/crops/ginger.lua create mode 100644 mods/farming/crops/spinach.lua create mode 100644 mods/farming/crops/strawberry.lua create mode 100644 mods/farming/locale/farming.eo.tr delete mode 100644 mods/farming/mapgen.lua create mode 100644 mods/farming/textures/ethereal_strawberry.png create mode 100644 mods/farming/textures/ethereal_strawberry_1.png create mode 100644 mods/farming/textures/ethereal_strawberry_2.png create mode 100644 mods/farming/textures/ethereal_strawberry_3.png create mode 100644 mods/farming/textures/ethereal_strawberry_4.png create mode 100644 mods/farming/textures/ethereal_strawberry_5.png create mode 100644 mods/farming/textures/ethereal_strawberry_6.png create mode 100644 mods/farming/textures/ethereal_strawberry_7.png create mode 100644 mods/farming/textures/ethereal_strawberry_8.png create mode 100644 mods/farming/textures/farming_asparagus.png create mode 100644 mods/farming/textures/farming_asparagus_1.png create mode 100644 mods/farming/textures/farming_asparagus_2.png create mode 100644 mods/farming/textures/farming_asparagus_3.png create mode 100644 mods/farming/textures/farming_asparagus_4.png create mode 100644 mods/farming/textures/farming_asparagus_5.png create mode 100644 mods/farming/textures/farming_barley_8.png create mode 100644 mods/farming/textures/farming_chili_powder.png create mode 100644 mods/farming/textures/farming_eggplant.png create mode 100644 mods/farming/textures/farming_eggplant_1.png create mode 100644 mods/farming/textures/farming_eggplant_2.png create mode 100644 mods/farming/textures/farming_eggplant_3.png create mode 100644 mods/farming/textures/farming_eggplant_4.png create mode 100644 mods/farming/textures/farming_ginger.png create mode 100644 mods/farming/textures/farming_ginger_1.png create mode 100644 mods/farming/textures/farming_ginger_2.png create mode 100644 mods/farming/textures/farming_ginger_3.png create mode 100644 mods/farming/textures/farming_ginger_4.png create mode 100644 mods/farming/textures/farming_mac_and_cheese.png create mode 100644 mods/farming/textures/farming_rhubarb_4.png create mode 100644 mods/farming/textures/farming_rice_seed.png create mode 100644 mods/farming/textures/farming_spinach.png create mode 100644 mods/farming/textures/farming_spinach_1.png create mode 100644 mods/farming/textures/farming_spinach_2.png create mode 100644 mods/farming/textures/farming_spinach_3.png create mode 100644 mods/farming/textures/farming_spinach_4.png create mode 100644 mods/farming/textures/farming_sugar_cube.png diff --git a/mods/README.md b/mods/README.md index 71fc226..6479dc1 100644 --- a/mods/README.md +++ b/mods/README.md @@ -19,7 +19,7 @@ Most of those mods have mirror at http://git.mirror.org | default | https://codeberg.org/minenux/minetest-game-minetest | https://codeberg.org/minenux/minetest-game-minetest/commit/c7cb79422ba19c696966472942db6177c934838d | | | doors | https://codeberg.org/minenux/minetest-mod-doors | https://codeberg.org/minenux/minetest-mod-doors/commit/a89ab0454deb4933b6e4971c57055c40b7938e5b | [doors/README.md](doors/README.md) | | dye | https://codeberg.org/minenux/minetest-game-minetest | https://codeberg.org/minenux/minetest-game-minetest/commit/c7cb79422ba19c696966472942db6177c934838d | | -| farming | https://codeberg.org/minenux/minetest-mod-farming | https://codeberg.org/minenux/minetest-mod-farming/commit/00e4b3cb89d3c1b1d66b6af4821191c1d667e1bc | [farming/README.md](farming/README.md) | +| farming | https://codeberg.org/minenux/minetest-mod-farming | https://codeberg.org/minenux/minetest-mod-farming/commit/08c3a9b37bab5d8a0f5971b168aef412db5fc424 | [farming/README.md](farming/README.md) | | fire | https://codeberg.org/minenux/minetest-mod-fire | https://codeberg.org/minenux/minetest-mod-fire/commit/4e5f7ad55314bd9b126fb133cfc5a32fa58b20d2 | [fire/README.md](fire/README.md) | | flowers | https://codeberg.org/minenux/minetest-game-minetest | https://codeberg.org/minenux/minetest-game-minetest/commit/c7cb79422ba19c696966472942db6177c934838d | | | give_initial_stuff | https://codeberg.org/minenux/minetest-game-minetest | https://codeberg.org/minenux/minetest-game-minetest/commit/c7cb79422ba19c696966472942db6177c934838d | | diff --git a/mods/farming/.gitignore b/mods/farming/.gitignore new file mode 100644 index 0000000..3e88fa7 --- /dev/null +++ b/mods/farming/.gitignore @@ -0,0 +1 @@ +farming.conf diff --git a/mods/farming/README.md b/mods/farming/README.md index 6b957b2..6c37d89 100644 --- a/mods/farming/README.md +++ b/mods/farming/README.md @@ -1,7 +1,7 @@ -minetest mod Farming Redo -========================= +Farming Redo mod for Minetest +============================= -This mod improves all food and farming related content +FARM mod for food Information ----------- @@ -18,8 +18,18 @@ original wheat and cotton will require seeds which are found inside normal and j Tech information ---------------- -This mod sustitute default one, you must disable the default of minetest -game if present or override it. +This mod replaces the default `farming` mod with a fully compatible API that allows +players to grow crops even when they are not nearby. It also includes many new foods +and crops which can be planted directly onto tilled soil without seeds. Crops that do +require seeds like wheat and cotton are found when digging in long grasses. + +Farming Redo is a featured version of the built-in farming mod in minetest +and comes with wheat, cotton, carrot, cucumber, potato and tomato to start out +with which spawn throughout the map... new foods need only be planted +on tilled soil so no seeds are required, original wheat and cotton will +require seeds which are found inside normal and jungle grass... + +Crops grow by adding your new plant to the {growing = 1} group and numbering the stages from _1 to as many stages as you like, but the underscore MUST be used only once in the node name to separate plant from stage number e.g. This mod works by adding your new plant to the {growing=1} group and numbering the stages with sufix from `_1` to as many stages as you like, @@ -30,12 +40,7 @@ to separate plant from stage number e.g.: * `farming:wheat_6` through to `farming:wheat_8` will grow up with 3 times passed, but looks like faster * `farming:cucumber_4` through to `farming:cucumber_4` will grow up inmediatelly -https://forum.minetest.net/viewtopic.php?id=9019 - -**It provides 47 lucky blocks.** - Farming Redo also works with Bonemeal mod for quick growing crops and saplings -at https://notabug.org/TenPlus1/bonemeal #### Dependencies @@ -45,71 +50,79 @@ Optional dependences: * stairs * intllib (only for older engines) -* lucky_block +* lucky_block (adds 47 lucky blocks) * toolranks It detects other mods like FarmingPlus, Ethereal and Bonemeal etc, -but cannot set to optional depends becouse of the bug of circular depends. +but cannot set to optional depends because of the bug of circular depends. + +TODO: check if configuration setting must be separate or just leave as is, indicating the place of the config by the "place file" column. +TODO: check nodes classification, +TODO: list `crops/*lua` files and compare #### Configuration -It reads the configuration values from two places, `minetest.conf` and `farming.conf`, this last -must be at world path, if you have older place at mod path will be read but must be deprecated. +Configuration takes at two places, `farming.conf` is used to load custom settings for each crop and can be found in either the +farming mod folder or the world folder. Also `minetest.conf` contains a setting for crop growth speed. | Configuration | type | default | place file | Notes about | | -------------------- | ----- | ------- | ------------ | ----------------------------------------- | -| time_speed | float | 73 | minetest.conf | Speed to grow up the plants on engine (used as base for seed) | | farming_stage_length | float | 160.0 | minetest.conf | Contains a value used for speed of crop growth in seconds | -| farming.rarety | float | 0.002 | farming.conf | default rarety of crops on map (higher number = more crops) | -| farming.min_light | int | 12 | farming.conf | default minimum and maximum light levels crops need to grow | -| farming.max_light | int | 15 | farming.conf | default minimum and maximum light levels crops need to grow | -| farming.carrot | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.potato | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.tomato | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.cucumber | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.corn | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.coffee | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.melon | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.pumpkin | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.cocoa | bool | true | farming.conf | true or false only | -| farming.raspberry | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.blueberry | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.rhubarb | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.beans | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.grapes | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.barley | bool | true | farming.conf | true or false only | -| farming.chili | float | 0.003 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.hemp | float | 0.003 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.garlic | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.onion | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.pepper | float | 0.002 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.pineapple | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.peas | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.beetroot | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.mint | float | 0.005 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.cabbage | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.blackberry | float | 0.002 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.lettuce | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.soy | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.vanilla | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.artichoke | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.parsley | float | 0.002 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.sunflower | float | 0.001 | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | -| farming.grains | bool | true | farming.conf | true or false only | -| farming.rice | bool | true | farming.conf | true to enable crop/food in-game and on mapgen set spawn rarety | +| farming.min_light | int | 12 | farming.conf | default minimum light levels crops need to grow | +| farming.max_light | int | 15 | farming.conf | default maximum light levels crops need to grow | +| farming.carrot | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.potato | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.tomato | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.cucumber | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.corn | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.coffee | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.melon | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.pumpkin | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.cocoa | bool | true | farming.conf | true to enable crop/food or false to disable | +| farming.raspberry | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.blueberry | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.rhubarb | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.beans | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.grapes | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.barley | bool | true | farming.conf | true to enable crop/food, false to disable | +| farming.chili | float | 0.003 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.hemp | float | 0.003 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.garlic | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.onion | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.pepper | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.pineapple | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.peas | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.beetroot | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.mint | float | 0.005 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.cabbage | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.blackberry | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.lettuce | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.soy | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.vanilla | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.artichoke | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.parsley | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.sunflower | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.grains | bool | true | farming.conf | true to enable crop/food or false to disable | +| farming.rice | bool | true | farming.conf | true to enable crop/food or false to disable | +| farming.asparagus | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.eggplant | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.spinach | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable | +| farming.strawberry | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable | #### Nodes and food -This farming mod provides a large featured basic foods production of farming: +This farming mod provides a large selection of craftable food and items: | Node name | Description name | | ----------------------- | --------------------- | | farming:salt | Salt | -| farming:salt_crystal | Salt crystal | +| farming:salt_crystal | Salt Crystal | +| farming:chili_powder | Chili Powder | | farming:rose_water | Rose Water | | farming:glass_water | Glass of Water | | farming:sugar | Sugar | +| farming:sugar_cube | Sugar Cube | | farming:caramel | Caramel | | farming:turkish_delight | Turkish Delight | | farming:garlic_bread | Garlic Bread | @@ -121,28 +134,86 @@ This farming mod provides a large featured basic foods production of farming: | farming:apple_pie | Apple Pie | | farming:cactus_juice | Cactus Juice | | farming:pasta | Pasta | +| farming:mac_and_cheese | Mac & Cheese | | farming:spaghetti | Spaghetti | | farming:bibimbap | Bibimbap | | farming:burger | Burger | | farming:salad | Salad | | farming:smoothie_berry | Triple Berry Smoothie | -| farming:spanish_potatoes | Spanish Potatoes | +| farming:spanish_potatoes | Spanish Potatoes | | farming:potato_omelet | Potato omelet | | farming:paella | Paella | | farming:flan | Vanilla Flan | | farming:cheese_vegan | Vegan Cheese | -| farming:onigiri | Onirigi | +| farming:onigiri | Onigiri | | farming:gyoza | Gyoza | | farming:mochi | Mochi | +| farming:beetroot_soup | Beetroot Soup | +| farming:muffin_blueberry | Blueberry Muffin | +| farming:blueberry_pie | Blueberry Pie | +| farming:carrot_juice | Carrot Juice | +| farming:carrot_gold | Golden Carrot (revives) | +| farming:chili_bowl | Bowl or Chili | +| farming:cocoa_beans | Cocoa Beans | +| farming:cookie | Chocolate Cookie | +| farming:chocolate_dark | Bar of Dark Chocolate | +| farming:chocolate_block | Chocolate Block | +| farming:coffee_cup | Cup of Coffee | +| farming:corn_cob | Corn on the Cob | +| farming:popcorn | Popcorn | +| farming:cornstarch | Cornstarch | +| farming:ethanol | Bottle of Ethanol (fuel) | +| farming:string | String | +| farming:garlic_braid | Garlic Braid | +| farming:garlic_clove | Garlic Clove | +| farming:hemp_oil | Hemp Oil | +| farming:hemp_fibre | Hemp Fibre | +| farming:hemp_block | Hemp Block | +| farming:hemp_rope | Hemp Rope | +| farming:mint_tea | Mint Tea | +| farming:onion_soup | Onion Soup | +| farming:pea_soup | Pea Soup | +| farming:pepper_ground | Ground Pepper | +| farming:pineapple_ring | Pineapple Ring | +| farming:pineapple_juice | Pineapple Juice | +| farming:baked_potato | Baked Potato | +| farming:potato_salad | Cucumber & Potato Salad | +| farming:jackolantern | Jack 'O Lantern | +| farming:scarecrow_bottom | Scarecrow Bottom | +| farming:pumpkin_dough | Pumpkin Dough | +| farming:pumpkin_bread | Pumpkin Bread | +| farming:smoothie_raspberry | Raspberry Smoothie | +| farming:rhubarb_pie | Rhybarb Pie | +| farming:rice_flour | Rice Flour | +| farming:rice_bread | Rice Bread | +| farming:flour_multigrain | Multigrain Rice | +| farming:bread_multigrain | Multigrain Bread | +| farming:soy_sauce | Soy Sauce | +| farming:soy_milk | Soy Milk | +| farming:tofu | Tofu | +| farming:tofu_cooked | Cooked Tofu | +| farming:sunflower_seeds_toasted | Toasted Sunflower Seeds | +| farming:sunflower_oil | Sunflower Oil | +| farming:sunflower_bread | Sunflower Bread | +| farming:tomato_soup | Tomato Soup | +| farming:vanilla_extract | Vanilla Extract | +| farming:flour | Flour | +| farming:bread | Bread | +| farming:straw | Straw Block | +| farming:bread_slice | Bread Slice | +| farming:toast | Toast | +| farming:toast_sandwich | Toast Sandwich | TODO: list `crops/*lua` files and compare +#### Item and Tools - -#### Items tools - -| farming:scythe_mithril | Mithril Scythe (Use to harvest and replant crops) | -| farming:hoe_bomb | Hoe Bomb (use or throw on grassy areas to hoe land) | +| node name | Description | +| ----------------------- | --------------------- | +| farming:trellis | Trellis (for growing grapes) | +| farming:beanpole | Bean Pole (for growing beans) | +| farming:scythe_mithril | Mithril Scythe (Use to harvest and replant crops) | +| farming:hoe_bomb | Hoe Bomb (use or throw on grassy areas to hoe land) | | farming:hoe_wood | Wooden Hoe | | farming:hoe_stone | Stone Hoe | | farming:hoe_steel | Steel Hoe | @@ -161,6 +232,8 @@ TODO: list `crops/*lua` files and compare | moreores:hoe_silver | Silver Hoe | | moreores:hoe_mithril | Mitril Hoe | +TODO: list `crops/*lua` files and compare +TODO: check relationship with other mods tools #### Nodes and Aliasing @@ -169,7 +242,6 @@ if those mods/nodes are not present, will be (re)defined/provided, note for the both "farming" names here, in the left side its about default Farming mod, not Farming Redo one. - | mod name : node name | new mod name : new node | | --------------------------- | ----------------------- | | farming:big_pumpkin | farming:jackolantern | @@ -233,10 +305,13 @@ about default Farming mod, not Farming Redo one. | farming_plus:tomato_3 | farming:tomato_6 | | farming_plus:tomato | farming:tomato_8 | -#### AMB +#### ABM -There one abm for new group `group:growing`. +The ABM checks every 5 minutes to make sure crops in `group:growing` that were planted +on an older map are enabled and growing properly. +* "Soil changes" for `group:field` by example wet soil +* "Start crop timer" for `group:growing` nodes (like seeds) #### development notes @@ -245,6 +320,7 @@ this can be used in a loop for over all files using `find`. ### Changelog: +- 1.47 - Now blueberries can make blue dye, tweak soil types to work better with older 0.4.x clients and add spanish translation (thx mckaygerhard), add trellis setting to registered_crops and fix pea and soy crop names (thx nixnoxus), add strawberries if ethereal mod not active, added asparagus; spinach; eggplant (thx Atlante for new textures), Sugar Cube - 1.46 - Added min/max default light settings, added lettuce and blackberries with food items (thanks OgelGames), added soya, vanilla and sunflowers (thanks Felfa), added tofu, added salt crystals (thanks gorlock) - 1.45 - Dirt and Hoes are more in line with default by using dry/wet/base, added cactus juice, added pasta, spaghetti, cabbage, korean bibimbap, code tidy options, onion soup added (thanks edcrypt), Added apple pie, added wild cotton to savanna @@ -299,4 +375,3 @@ options, onion soup added (thanks edcrypt), Added apple pie, added wild cotton t - 0.2 - Fixed check for wet soil - 0.1 - Fixed growing bug - 0.0 - Initial release - diff --git a/mods/farming/compatibility.lua b/mods/farming/compatibility.lua index 1fdf620..425132e 100644 --- a/mods/farming/compatibility.lua +++ b/mods/farming/compatibility.lua @@ -131,29 +131,12 @@ alias("farming_plus:rhubarb", "farming:rhubarb_3") alias("farming_plus:rhubarb_item", "farming:rhubarb") -- Strawberry -if eth then - alias("farming_plus:strawberry_item", "ethereal:strawberry") - alias("farming_plus:strawberry_seed", "ethereal:strawberry") - alias("farming_plus:strawberry_1", "ethereal:strawberry_1") - alias("farming_plus:strawberry_2", "ethereal:strawberry_3") - alias("farming_plus:strawberry_3", "ethereal:strawberry_5") - alias("farming_plus:strawberry", "ethereal:strawberry_7") -else - minetest.register_craftitem(":ethereal:strawberry", { - description = S("Strawberry"), - inventory_image = "farming_strawberry.png", - wield_image = "farming_strawberry.png", - groups = {food_strawberry = 1, flammable = 2}, - on_use = minetest.item_eat(1) - }) - - alias("farming_plus:strawberry_item", "ethereal:strawberry") - alias("farming_plus:strawberry_seed", "ethereal:strawberry") - alias("farming_plus:strawberry_1", "farming:raspberry_1") - alias("farming_plus:strawberry_2", "farming:raspberry_2") - alias("farming_plus:strawberry_3", "farming:raspberry_3") - alias("farming_plus:strawberry", "farming:raspberry_4") -end +alias("farming_plus:strawberry_item", "ethereal:strawberry") +alias("farming_plus:strawberry_seed", "ethereal:strawberry") +alias("farming_plus:strawberry_1", "ethereal:strawberry_1") +alias("farming_plus:strawberry_2", "ethereal:strawberry_3") +alias("farming_plus:strawberry_3", "ethereal:strawberry_5") +alias("farming_plus:strawberry", "ethereal:strawberry_7") -- Tomato alias("farming_plus:tomato_seed", "farming:tomato") diff --git a/mods/farming/crops/artichoke.lua b/mods/farming/crops/artichoke.lua index 92143f6..2dc5deb 100644 --- a/mods/farming/crops/artichoke.lua +++ b/mods/farming/crops/artichoke.lua @@ -19,7 +19,8 @@ local def = { sunlight_propagates = true, walkable = false, buildable_to = true, - drop = "", + drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -46,6 +47,7 @@ minetest.register_node("farming:artichoke_4", table.copy(def)) -- stage 5 (final) def.tiles = {"farming_artichoke_5.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:artichoke 2"}, rarity = 1}, @@ -62,3 +64,23 @@ farming.registered_plants["farming:artichoke"] = { maxlight = 15, steps = 5 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.artichoke, + spread = {x = 100, y = 100, z = 100}, + seed = 123, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 13, + decoration = {"farming:artichoke_5"}, + spawn_by = "group:tree", + num_spawn_by = 1 +}) diff --git a/mods/farming/crops/asparagus.lua b/mods/farming/crops/asparagus.lua new file mode 100644 index 0000000..5924037 --- /dev/null +++ b/mods/farming/crops/asparagus.lua @@ -0,0 +1,94 @@ + +local S = farming.intllib + +-- asparagus +minetest.register_craftitem("farming:asparagus", { + description = S("Asparagus"), + inventory_image = "farming_asparagus.png", + groups = {seed = 2, food_asparagus = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:asparagus_1") + end, + on_use = minetest.item_eat(1) +}) + +-- asparagus definition +local def = { + drawtype = "plantlike", + tiles = {"farming_asparagus_1.png"}, + paramtype = "light", + paramtype2 = "meshoptions", + place_param2 = 3, + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + waving = 1, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:asparagus_1", table.copy(def)) + +-- stage 2 +def.tiles = {"farming_asparagus_2.png"} +minetest.register_node("farming:asparagus_2", table.copy(def)) + +-- stage 3 +def.tiles = {"farming_asparagus_3.png"} +minetest.register_node("farming:asparagus_3", table.copy(def)) + +-- stage 4 +def.tiles = {"farming_asparagus_4.png"} +def.drop = { + items = { + {items = {"farming:asparagus"}, rarity = 2} + } +} +minetest.register_node("farming:asparagus_4", table.copy(def)) + +-- stage 5 +def.tiles = {"farming_asparagus_5.png"} +def.groups.growing = nil +def.selection_box = farming.select_final +def.drop = { + items = { + {items = {"farming:asparagus"}, rarity = 1}, + {items = {"farming:asparagus 2"}, rarity = 2} + } +} +minetest.register_node("farming:asparagus_5", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["farming:asparagus"] = { + crop = "farming:asparagus", + seed = "farming:asparagus", + minlight = 7, + maxlight = farming.max_light, + steps = 5 +} + +-- mapgen +minetest.register_decoration({ + name = "farming:asparagus_5", + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.1, + scale = farming.asparagus, + spread = {x = 100, y = 100, z = 100}, + seed = 234, + octaves = 3, + persist = 0.6 + }, + y_min = 8, + y_max = 32, + decoration = "farming:asparagus_5", + param2 = 3 +}) diff --git a/mods/farming/crops/barley.lua b/mods/farming/crops/barley.lua index e7f3840..cf2d932 100644 --- a/mods/farming/crops/barley.lua +++ b/mods/farming/crops/barley.lua @@ -8,14 +8,15 @@ minetest.register_node("farming:seed_barley", { inventory_image = "farming_barley_seed.png", wield_image = "farming_barley_seed.png", drawtype = "signlike", - groups = {seed = 1, snappy = 3, attached_node = 1}, + groups = {seed = 1, snappy = 3, attached_node = 1, growing = 1}, paramtype = "light", paramtype2 = "wallmounted", walkable = false, sunlight_propagates = true, + next_plant = "farming:barley_1", selection_box = farming.select, on_place = function(itemstack, placer, pointed_thing) - return farming.place_seed(itemstack, placer, pointed_thing, "farming:barley_1") + return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_barley") end }) @@ -47,6 +48,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -72,12 +74,6 @@ minetest.register_node("farming:barley_4", table.copy(def)) -- stage 5 def.tiles = {"farming_barley_5.png"} -def.drop = { - items = { - {items = {"farming:barley"}, rarity = 2}, - {items = {"farming:seed_barley"}, rarity = 2} - } -} minetest.register_node("farming:barley_5", table.copy(def)) -- stage 6 @@ -85,14 +81,25 @@ def.tiles = {"farming_barley_6.png"} def.drop = { items = { {items = {"farming:barley"}, rarity = 2}, - {items = {"farming:seed_barley"}, rarity = 1} + {items = {"farming:seed_barley"}, rarity = 2} } } minetest.register_node("farming:barley_6", table.copy(def)) --- stage 7 (final) +-- stage 7 def.tiles = {"farming_barley_7.png"} +def.drop = { + items = { + {items = {"farming:barley"}, rarity = 2}, + {items = {"farming:seed_barley"}, rarity = 1} + } +} +minetest.register_node("farming:barley_7", table.copy(def)) + +-- stage 8 (final) +def.tiles = {"farming_barley_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:barley"}, rarity = 1}, @@ -101,7 +108,7 @@ def.drop = { {items = {"farming:seed_barley"}, rarity = 3} } } -minetest.register_node("farming:barley_7", table.copy(def)) +minetest.register_node("farming:barley_8", table.copy(def)) -- add to registered_plants farming.registered_plants["farming:barley"] = { @@ -109,7 +116,7 @@ farming.registered_plants["farming:barley"] = { seed = "farming:seed_barley", minlight = farming.min_light, maxlight = farming.max_light, - steps = 7 + steps = 8 } -- Fuel diff --git a/mods/farming/crops/beans.lua b/mods/farming/crops/beans.lua index 02ebe1a..90a30bd 100644 --- a/mods/farming/crops/beans.lua +++ b/mods/farming/crops/beans.lua @@ -210,6 +210,7 @@ minetest.register_node("farming:beanpole_4", table.copy(def)) -- stage 5 (final) def.tiles = {"farming_beanpole_5.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:beanpole"}, rarity = 1}, @@ -253,3 +254,21 @@ minetest.register_node("farming:beanbush", { }, sounds = default.node_sound_leaves_defaults() }) + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.beans, + spread = {x = 100, y = 100, z = 100}, + seed = 345, + octaves = 3, + persist = 0.6 + }, + y_min = 18, + y_max = 38, + decoration = "farming:beanbush" +}) diff --git a/mods/farming/crops/beetroot.lua b/mods/farming/crops/beetroot.lua index 05e0b3a..b8be3ef 100644 --- a/mods/farming/crops/beetroot.lua +++ b/mods/farming/crops/beetroot.lua @@ -69,6 +69,7 @@ minetest.register_node("farming:beetroot_4", table.copy(def)) -- stage 5 def.tiles = {"farming_beetroot_5.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { max_items = 4, items = { {items = {"farming:beetroot"}, rarity = 1}, @@ -87,3 +88,21 @@ farming.registered_plants["farming:beetroot"] = { maxlight = farming.max_light, steps = 5 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.beetroot, + spread = {x = 100, y = 100, z = 100}, + seed = 456, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 20, + decoration = "farming:beetroot_5" +}) diff --git a/mods/farming/crops/blackberry.lua b/mods/farming/crops/blackberry.lua index e2122fd..47dd08e 100644 --- a/mods/farming/crops/blackberry.lua +++ b/mods/farming/crops/blackberry.lua @@ -10,7 +10,7 @@ minetest.register_craftitem("farming:blackberry", { on_place = function(itemstack, placer, pointed_thing) return farming.place_seed(itemstack, placer, pointed_thing, "farming:blackberry_1") end, - on_use = minetest.item_eat(1), + on_use = minetest.item_eat(1) }) local def = { @@ -43,6 +43,7 @@ minetest.register_node("farming:blackberry_3", table.copy(def)) -- stage 4 def.tiles = {"farming_blackberry_4.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {'farming:blackberry 2'}, rarity = 1}, @@ -60,3 +61,21 @@ farming.registered_plants["farming:blackberry"] = { maxlight = farming.max_light, steps = 4 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.blackberry, + spread = {x = 100, y = 100, z = 100}, + seed = 567, + octaves = 3, + persist = 0.6 + }, + y_min = 3, + y_max = 20, + decoration = "farming:blackberry_4" +}) diff --git a/mods/farming/crops/blueberry.lua b/mods/farming/crops/blueberry.lua index be1d3b2..1713bd1 100644 --- a/mods/farming/crops/blueberry.lua +++ b/mods/farming/crops/blueberry.lua @@ -80,6 +80,7 @@ minetest.register_node("farming:blueberry_3", table.copy(def)) -- stage 4 (final) def.tiles = {"farming_blueberry_4.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:blueberries 2"}, rarity = 1}, @@ -97,3 +98,21 @@ farming.registered_plants["farming:blueberries"] = { maxlight = farming.max_light, steps = 4 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.blueberry, + spread = {x = 100, y = 100, z = 100}, + seed = 678, + octaves = 3, + persist = 0.6 + }, + y_min = 3, + y_max = 15, + decoration = "farming:blueberry_4" +}) diff --git a/mods/farming/crops/cabbage.lua b/mods/farming/crops/cabbage.lua index b57ac00..622782b 100644 --- a/mods/farming/crops/cabbage.lua +++ b/mods/farming/crops/cabbage.lua @@ -51,6 +51,7 @@ minetest.register_node("farming:cabbage_5", table.copy(def)) -- stage 6 def.tiles = {"farming_cabbage_6.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { max_items = 2, items = { {items = {"farming:cabbage 2"}, rarity = 1}, @@ -67,3 +68,21 @@ farming.registered_plants["farming:cabbage"] = { maxlight = farming.max_light, steps = 6 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.cabbage, + spread = {x = 100, y = 100, z = 100}, + seed = 789, + octaves = 3, + persist = 0.6 + }, + y_min = 2, + y_max = 15, + decoration = "farming:cabbage_6" +}) diff --git a/mods/farming/crops/carrot.lua b/mods/farming/crops/carrot.lua index 2dd45f3..0f53c87 100644 --- a/mods/farming/crops/carrot.lua +++ b/mods/farming/crops/carrot.lua @@ -46,11 +46,7 @@ minetest.register_craftitem("farming:carrot_gold", { minetest.register_craft({ output = "farming:carrot_gold", - recipe = { - {"", "default:gold_lump", ""}, - {"default:gold_lump", "group:food_carrot", "default:gold_lump"}, - {"", "default:gold_lump", ""} - } + recipe = {{"group:food_carrot", "default:gold_lump"}} }) -- carrot definition @@ -62,6 +58,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -107,6 +104,7 @@ minetest.register_node("farming:carrot_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_carrot_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:carrot 2"}, rarity = 1}, @@ -123,3 +121,31 @@ farming.registered_plants["farming:carrot"] = { maxlight = farming.max_light, steps = 8 } + +-- mapgen +local mg = farming.mapgen == "v6" + +def = { + y_max = mg and 30 or 20, + near = mg and "group:water" or nil, + num = mg and 1 or -1, +} + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.carrot, + spread = {x = 100, y = 100, z = 100}, + seed = 890, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = def.y_max, + decoration = "farming:carrot_8", + spawn_by = def.near, + num_spawn_by = def.num +}) diff --git a/mods/farming/crops/chili.lua b/mods/farming/crops/chili.lua index 95f3a30..21aa371 100644 --- a/mods/farming/crops/chili.lua +++ b/mods/farming/crops/chili.lua @@ -33,6 +33,22 @@ minetest.register_craft({ recipe = {{"farming:chili_pepper"}} }) +-- chili powder +minetest.register_craftitem("farming:chili_powder", { + description = S("Chili Powder"), + on_use = minetest.item_eat(-1), + inventory_image = "farming_chili_powder.png" +}) + +minetest.register_craft({ + output = "farming:chili_powder", + recipe = { + {"farming:chili_pepper", "farming:mortar_pestle"} + }, + replacements = {{"farming:mortar_pestle", "farming:mortar_pestle"}} +}) + + -- chili definition local def = { drawtype = "plantlike", @@ -42,6 +58,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 4, plant = 1, attached_node = 1, @@ -80,6 +97,7 @@ minetest.register_node("farming:chili_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_chili_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:chili_pepper 3"}, rarity = 1}, @@ -96,3 +114,23 @@ farming.registered_plants["farming:chili_pepper"] = { maxlight = farming.max_light, steps = 8 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.chili, + spread = {x = 100, y = 100, z = 100}, + seed = 901, + octaves = 3, + persist = 0.6 + }, + y_min = 5, + y_max = 35, + decoration = {"farming:chili_8"}, + spawn_by = "group:tree", + num_spawn_by = 1 +}) diff --git a/mods/farming/crops/cocoa.lua b/mods/farming/crops/cocoa.lua index da932d2..47045d4 100644 --- a/mods/farming/crops/cocoa.lua +++ b/mods/farming/crops/cocoa.lua @@ -207,6 +207,9 @@ farming.registered_plants["farming:cocoa_beans"] = { steps = 4 } +-- localize math.random for speed +local random = math.random + -- add random cocoa pods to jungle tree's minetest.register_on_generated(function(minp, maxp) @@ -224,7 +227,7 @@ minetest.register_on_generated(function(minp, maxp) if minetest.find_node_near(pos, 1, {"default:jungleleaves", "moretrees:jungletree_leaves_green"}) then - dir = math.random(1, 40) + dir = random(80) if dir == 1 then pos.x = pos.x + 1 elseif dir == 2 then pos.x = pos.x - 1 @@ -239,7 +242,7 @@ minetest.register_on_generated(function(minp, maxp) --print ("Cocoa Pod added at " .. minetest.pos_to_string(pos)) minetest.swap_node(pos, { - name = "farming:cocoa_" .. tostring(math.random(4)) + name = "farming:cocoa_" .. tostring(random(4)) }) end end diff --git a/mods/farming/crops/coffee.lua b/mods/farming/crops/coffee.lua index 490547e..64d4e13 100644 --- a/mods/farming/crops/coffee.lua +++ b/mods/farming/crops/coffee.lua @@ -52,6 +52,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -78,6 +79,7 @@ minetest.register_node("farming:coffee_4", table.copy(def)) -- stage 5 (final) def.tiles = {"farming_coffee_5.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:coffee_beans 2"}, rarity = 1}, @@ -95,3 +97,29 @@ farming.registered_plants["farming:coffee"] = { maxlight = farming.max_light, steps = 5 } + +-- mapgen +local mg = farming.mapgen == "v6" + +def = { + y_max = mg and 50 or 55, + spawn_on = mg and {"default:dirt_with_grass"} or {"default:dirt_with_dry_grass", + "default:dirt_with_rainforest_litter", "default:dry_dirt_with_dry_grass"} +} + +minetest.register_decoration({ + deco_type = "simple", + place_on = def.spawn_on, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.coffee, + spread = {x = 100, y = 100, z = 100}, + seed = 12, + octaves = 3, + persist = 0.6 + }, + y_min = 20, + y_max = def.y_max, + decoration = "farming:coffee_5" +}) diff --git a/mods/farming/crops/corn.lua b/mods/farming/crops/corn.lua index 97bb86a..b124e19 100644 --- a/mods/farming/crops/corn.lua +++ b/mods/farming/crops/corn.lua @@ -113,6 +113,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -159,6 +160,7 @@ minetest.register_node("farming:corn_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_corn_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:corn 2"}, rarity = 1}, @@ -176,3 +178,21 @@ farming.registered_plants["farming:corn"] = { maxlight = farming.max_light, steps = 8 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.corn, + spread = {x = 100, y = 100, z = 100}, + seed = 134, + octaves = 3, + persist = 0.6 + }, + y_min = 12, + y_max = 25, + decoration = "farming:corn_7" +}) diff --git a/mods/farming/crops/cotton.lua b/mods/farming/crops/cotton.lua index 6ea2e6f..f231f24 100644 --- a/mods/farming/crops/cotton.lua +++ b/mods/farming/crops/cotton.lua @@ -34,14 +34,15 @@ minetest.register_node("farming:seed_cotton", { inventory_image = "farming_cotton_seed.png", wield_image = "farming_cotton_seed.png", drawtype = "signlike", - groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4}, + groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4, growing = 1}, paramtype = "light", paramtype2 = "wallmounted", walkable = false, sunlight_propagates = true, selection_box = farming.select, + next_plant = "farming:cotton_1", on_place = function(itemstack, placer, pointed_thing) - return farming.place_seed(itemstack, placer, pointed_thing, "farming:cotton_1") + return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_cotton") end }) @@ -99,6 +100,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 4, plant = 1, attached_node = 1, @@ -156,6 +158,7 @@ minetest.register_node("farming:cotton_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_cotton_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:cotton"}, rarity = 1}, @@ -184,3 +187,30 @@ farming.register_plant("farming:cotton", { groups = {flammable = 2}, steps = 8, })]] + +-- mapgen +local mg = farming.mapgen == "v6" + +def = { + grow_on = mg and {"default:dirt_with_grass"} or {"default:dry_dirt_with_dry_grass"}, + biome = mg and {"jungle"} or {"savanna"} +} + +minetest.register_decoration({ + name = "farming:cotton_wild", + deco_type = "simple", + place_on = def.grow_on, + sidelen = 16, + noise_params = { + offset = -0.1, + scale = 0.1, + spread = {x = 50, y = 50, z = 50}, + seed = 4242, + octaves = 3, + persist = 0.7 + }, + biomes = def.biome, + y_max = 31000, + y_min = 1, + decoration = "farming:cotton_wild" +}) diff --git a/mods/farming/crops/cucumber.lua b/mods/farming/crops/cucumber.lua index c5e70de..3494b16 100644 --- a/mods/farming/crops/cucumber.lua +++ b/mods/farming/crops/cucumber.lua @@ -47,6 +47,7 @@ minetest.register_node("farming:cucumber_3", table.copy(def)) -- stage 4 (final) def.tiles = {"farming_cucumber_4.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:cucumber 2"}, rarity = 1}, @@ -63,3 +64,30 @@ farming.registered_plants["farming:cucumber"] = { maxlight = farming.max_light, steps = 4 } + +-- mapgen +local mg = farming.mapgen == "v6" + +def = { + near = mg and "group:water" or nil, + num = mg and 1 or -1, +} + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.cucumber, + spread = {x = 100, y = 100, z = 100}, + seed = 245, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 20, + decoration = "farming:cucumber_4", + spawn_by = def.near, + num_spawn_by = def.num +}) diff --git a/mods/farming/crops/eggplant.lua b/mods/farming/crops/eggplant.lua new file mode 100644 index 0000000..7b6a8f3 --- /dev/null +++ b/mods/farming/crops/eggplant.lua @@ -0,0 +1,90 @@ + +local S = farming.intllib + +-- eggplant +minetest.register_craftitem("farming:eggplant", { + description = S("Eggplant"), + inventory_image = "farming_eggplant.png", + groups = {seed = 2, food_eggplant = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:eggplant_1") + end, + on_use = minetest.item_eat(3) +}) + +-- definition +local def = { + drawtype = "plantlike", + tiles = {"farming_eggplant_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + waving = 1, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:eggplant_1", table.copy(def)) + +-- stage 2 +def.tiles = {"farming_eggplant_2.png"} +minetest.register_node("farming:eggplant_2", table.copy(def)) + +-- stage 3 +def.tiles = {"farming_eggplant_3.png"} +def.drop = { + items = { + {items = {"farming:eggplant"}, rarity = 1}, + {items = {"farming:eggplant"}, rarity = 3} + } +} +minetest.register_node("farming:eggplant_3", table.copy(def)) + +-- stage 4 +def.tiles = {"farming_eggplant_4.png"} +def.groups.growing = nil +def.selection_box = farming.select_final +def.drop = { + items = { + {items = {"farming:eggplant 2"}, rarity = 1}, + {items = {"farming:eggplant 2"}, rarity = 2} + } +} +minetest.register_node("farming:eggplant_4", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["farming:eggplant"] = { + crop = "farming:eggplant", + seed = "farming:eggplant", + minlight = 7, + maxlight = farming.max_light, + steps = 4 +} + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.1, + scale = farming.eggplant, + spread = {x = 100, y = 100, z = 100}, + seed = 356, + octaves = 3, + persist = 0.6 + }, + biomes = {"deciduous_forest"}, + y_max = 31000, + y_min = 1, + decoration = "farming:eggplant_4", + param2 = 3 +}) diff --git a/mods/farming/crops/garlic.lua b/mods/farming/crops/garlic.lua index e141479..ca2005a 100644 --- a/mods/farming/crops/garlic.lua +++ b/mods/farming/crops/garlic.lua @@ -7,7 +7,7 @@ local S = farming.intllib --- potato +-- garlic clove minetest.register_craftitem("farming:garlic_clove", { description = S("Garlic clove"), inventory_image = "crops_garlic_clove.png", @@ -26,9 +26,8 @@ minetest.register_craftitem("farming:garlic", { }) minetest.register_craft({ - type = "shapeless", output = "farming:garlic_clove 8", - recipe = {"farming:garlic"} + recipe = {{"farming:garlic"}} }) minetest.register_craft({ @@ -117,6 +116,7 @@ minetest.register_node("farming:garlic_4", table.copy(def)) -- stage 5 def.tiles = {"crops_garlic_plant_5.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:garlic 3"}, rarity = 1}, @@ -134,3 +134,23 @@ farming.registered_plants["farming:garlic"] = { maxlight = farming.max_light, steps = 5 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.garlic, + spread = {x = 100, y = 100, z = 100}, + seed = 467, + octaves = 3, + persist = 0.6 + }, + y_min = 3, + y_max = 35, + decoration = "farming:garlic_5", + spawn_by = "group:tree", + num_spawn_by = 1 +}) diff --git a/mods/farming/crops/ginger.lua b/mods/farming/crops/ginger.lua new file mode 100644 index 0000000..7cfbd05 --- /dev/null +++ b/mods/farming/crops/ginger.lua @@ -0,0 +1,89 @@ + +local S = farming.intllib + +-- ginger +minetest.register_craftitem("farming:ginger", { + description = S("Ginger"), + inventory_image = "farming_ginger.png", + groups = {seed = 2, food_ginger = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:ginger_1") + end, + on_use = minetest.item_eat(1) +}) + +-- ginger definition +local def = { + drawtype = "plantlike", + tiles = {"farming_ginger_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + waving = 1, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:ginger_1", table.copy(def)) + +-- stage 2 +def.tiles = {"farming_ginger_2.png"} +minetest.register_node("farming:ginger_2", table.copy(def)) + +-- stage 3 +def.tiles = {"farming_ginger_3.png"} +def.drop = { + items = { + {items = {"farming:ginger"}, rarity = 1}, + {items = {"farming:ginger"}, rarity = 3} + } +} +minetest.register_node("farming:ginger_3", table.copy(def)) + +-- stage 4 (final) +def.tiles = {"farming_ginger_4.png"} +def.groups.growing = nil +def.selection_box = farming.select_final +def.drop = { + items = { + {items = {"farming:ginger 2"}, rarity = 1}, + {items = {"farming:ginger 2"}, rarity = 2} + } +} +minetest.register_node("farming:ginger_4", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["farming:ginger"] = { + crop = "farming:ginger", + seed = "farming:ginger", + minlight = 5, + maxlight = default.LIGHT_MAX, + steps = 4 +} + +-- mapgen +minetest.register_decoration({ + name = "farming:ginger_4", + deco_type = "simple", + place_on = {"default:dirt_with_rainforest_litter"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.ginger, + spread = {x = 100, y = 100, z = 100}, + seed = 999, + octaves = 3, + persist = 0.6 + }, + y_max = 80, + y_min = 1, + decoration = "farming:ginger_3", + param2 = 3 +}) diff --git a/mods/farming/crops/grapes.lua b/mods/farming/crops/grapes.lua index ee8fe38..7622c0e 100644 --- a/mods/farming/crops/grapes.lua +++ b/mods/farming/crops/grapes.lua @@ -217,6 +217,7 @@ minetest.register_node("farming:grapes_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_grapes_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:trellis"}, rarity = 1}, @@ -260,3 +261,21 @@ minetest.register_node("farming:grapebush", { }, sounds = default.node_sound_leaves_defaults() }) + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.grapes, + spread = {x = 100, y = 100, z = 100}, + seed = 578, + octaves = 3, + persist = 0.6 + }, + y_min = 25, + y_max = 50, + decoration = "farming:grapebush" +}) diff --git a/mods/farming/crops/hemp.lua b/mods/farming/crops/hemp.lua index 4cc05e5..da5d568 100644 --- a/mods/farming/crops/hemp.lua +++ b/mods/farming/crops/hemp.lua @@ -8,14 +8,15 @@ minetest.register_node("farming:seed_hemp", { inventory_image = "farming_hemp_seed.png", wield_image = "farming_hemp_seed.png", drawtype = "signlike", - groups = {seed = 1, snappy = 3, attached_node = 1}, + groups = {seed = 1, snappy = 3, attached_node = 1, growing = 1}, paramtype = "light", paramtype2 = "wallmounted", walkable = false, sunlight_propagates = true, selection_box = farming.select, + next_plant = "farming:hemp_1", on_place = function(itemstack, placer, pointed_thing) - return farming.place_seed(itemstack, placer, pointed_thing, "farming:hemp_1") + return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_hemp") end }) @@ -101,7 +102,8 @@ minetest.register_node("farming:hemp_block", { description = S("Hemp Block"), tiles = {"farming_hemp_block.png"}, paramtype = "light", - groups = {snappy = 1, oddly_breakable_by_hand = 1, flammable = 2} + groups = {snappy = 1, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_leaves_defaults() }) minetest.register_craft( { @@ -190,6 +192,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -242,6 +245,7 @@ minetest.register_node("farming:hemp_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_hemp_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:hemp_leaf 2"}, rarity = 1}, @@ -256,7 +260,27 @@ minetest.register_node("farming:hemp_8", table.copy(def)) farming.registered_plants["farming:hemp"] = { crop = "farming:hemp", seed = "farming:seed_hemp", - mminlight = farming.min_light, + minlight = farming.min_light, maxlight = farming.max_light, steps = 8 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.hemp, + spread = {x = 100, y = 100, z = 100}, + seed = 420, + octaves = 3, + persist = 0.6 + }, + y_min = 3, + y_max = 45, + decoration = "farming:hemp_7", + spawn_by = "group:tree", + num_spawn_by = 1 +}) diff --git a/mods/farming/crops/lettuce.lua b/mods/farming/crops/lettuce.lua index bbd7138..9e3d314 100644 --- a/mods/farming/crops/lettuce.lua +++ b/mods/farming/crops/lettuce.lua @@ -8,7 +8,7 @@ minetest.register_craftitem("farming:lettuce", { on_place = function(itemstack, placer, pointed_thing) return farming.place_seed(itemstack, placer, pointed_thing, "farming:lettuce_1") end, - on_use = minetest.item_eat(2), + on_use = minetest.item_eat(2) }) local def = { @@ -45,6 +45,7 @@ minetest.register_node("farming:lettuce_4", table.copy(def)) -- stage 5 def.tiles = {"farming_lettuce_5.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {'farming:lettuce 2'}, rarity = 1}, @@ -61,3 +62,21 @@ farming.registered_plants["farming:lettuce"] = { maxlight = farming.max_light, steps = 5 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.lettuce, + spread = {x = 100, y = 100, z = 100}, + seed = 689, + octaves = 3, + persist = 0.6 + }, + y_min = 5, + y_max = 35, + decoration = "farming:lettuce_5" +}) diff --git a/mods/farming/crops/melon.lua b/mods/farming/crops/melon.lua index 66decdc..dd81ecb 100644 --- a/mods/farming/crops/melon.lua +++ b/mods/farming/crops/melon.lua @@ -79,7 +79,7 @@ minetest.register_node("farming:melon_8", { "farming_melon_side.png" }, groups = { - food_melon = 1, snappy = 2, oddly_breakable_by_hand = 1, + food_melon = 1, snappy = 3, choppy = 3, oddly_breakable_by_hand = 2, flammable = 2, plant = 1 }, drop = "farming:melon_8", @@ -96,3 +96,33 @@ farming.registered_plants["farming:melon"] = { maxlight = farming.max_light, steps = 8 } + +-- mapgen +local mg = farming.mapgen == "v6" + +def = { + y_max = mg and 20 or 6, + spawn_on = mg and {"default:dirt_with_grass"} or {"default:dirt_with_dry_grass", + "default:dirt_with_rainforest_litter"}, + near = mg and "group:water" or nil, + num = mg and 1 or -1, +} + +minetest.register_decoration({ + deco_type = "simple", + place_on = def.spawn_on, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.melon, + spread = {x = 100, y = 100, z = 100}, + seed = 790, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = def.y_max, + decoration = "farming:melon_8", + spawn_by = def.near, + num_spawn_by = def.num +}) diff --git a/mods/farming/crops/mint.lua b/mods/farming/crops/mint.lua index de4b6b3..a0057a5 100644 --- a/mods/farming/crops/mint.lua +++ b/mods/farming/crops/mint.lua @@ -2,13 +2,21 @@ local S = farming.intllib -- mint seed -minetest.register_craftitem("farming:seed_mint", { +minetest.register_node("farming:seed_mint", { description = S("Mint Seeds"), + tiles = {"farming_mint_seeds.png"}, inventory_image = "farming_mint_seeds.png", - groups = {seed = 2, flammable = 2}, + wield_image = "farming_mint_seeds.png", + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1, growing = 1, flammable = 2}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + next_plant = "farming:mint_1", on_place = function(itemstack, placer, pointed_thing) - return farming.place_seed( - itemstack, placer, pointed_thing, "farming:mint_1") + return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_mint") end }) @@ -47,6 +55,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -69,6 +78,7 @@ minetest.register_node("farming:mint_3", table.copy(def)) -- stage 4 (final) def.tiles = {"farming_mint_4.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:mint_leaf 2"}, rarity = 1}, @@ -87,3 +97,23 @@ farming.registered_plants["farming:mint"] = { maxlight = farming.max_light, steps = 4 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass", "default:dirt_with_coniferous_litter"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.mint, + spread = {x = 100, y = 100, z = 100}, + seed = 801, + octaves = 3, + persist = 0.6 + }, + y_min = 0, + y_max = 75, + decoration = "farming:mint_4", + spawn_by = {"group:water", "group:sand"}, + num_spawn_by = 1 +}) diff --git a/mods/farming/crops/onion.lua b/mods/farming/crops/onion.lua index 63cdbe5..2b6fd91 100644 --- a/mods/farming/crops/onion.lua +++ b/mods/farming/crops/onion.lua @@ -36,6 +36,12 @@ minetest.register_craft({ replacements = {{"farming:pot", "farming:pot"}} }) +-- yellow dye +minetest.register_craft({ + output = "dye:yellow", + recipe = {{"group:food_onion"}} +}) + -- crop definition local def = { drawtype = "plantlike", @@ -48,6 +54,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 3, plant = 1, attached_node = 1, @@ -74,6 +81,7 @@ minetest.register_node("farming:onion_4", table.copy(def)) -- stage 5 def.tiles = {"crops_onion_plant_5.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { max_items = 5, items = { {items = {"farming:onion"}, rarity = 1}, @@ -93,3 +101,21 @@ farming.registered_plants["farming:onion"] = { maxlight = farming.max_light, steps = 5 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.onion, + spread = {x = 100, y = 100, z = 100}, + seed = 912, + octaves = 3, + persist = 0.6 + }, + y_min = 5, + y_max = 28, + decoration = "farming:onion_5" +}) diff --git a/mods/farming/crops/parsley.lua b/mods/farming/crops/parsley.lua index 0bc20eb..e2dab3e 100644 --- a/mods/farming/crops/parsley.lua +++ b/mods/farming/crops/parsley.lua @@ -19,6 +19,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -37,6 +38,7 @@ minetest.register_node("farming:parsley_2", table.copy(def)) -- stage 3 (final) def.tiles = {"farming_parsley_3.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:parsley 2"}, rarity = 1}, @@ -54,3 +56,21 @@ farming.registered_plants["farming:parsley"] = { maxlight = 15, steps = 3 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.parsley, + spread = {x = 100, y = 100, z = 100}, + seed = 23, + octaves = 3, + persist = 0.6 + }, + y_min = 10, + y_max = 40, + decoration = "farming:parsley_3" +}) diff --git a/mods/farming/crops/peas.lua b/mods/farming/crops/peas.lua index 94053f2..00ff5e3 100644 --- a/mods/farming/crops/peas.lua +++ b/mods/farming/crops/peas.lua @@ -71,6 +71,7 @@ minetest.register_node("farming:pea_4", table.copy(def)) -- stage 5 def.tiles = {"farming_pea_5.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { max_items = 5, items = { {items = {"farming:pea_pod"}, rarity = 1}, @@ -89,3 +90,21 @@ farming.registered_plants["farming:pea_pod"] = { maxlight = farming.max_light, steps = 5 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.peas, + spread = {x = 100, y = 100, z = 100}, + seed = 132, + octaves = 3, + persist = 0.6 + }, + y_min = 25, + y_max = 55, + decoration = "farming:pea_5" +}) diff --git a/mods/farming/crops/pepper.lua b/mods/farming/crops/pepper.lua index bdf6287..b5a4298 100644 --- a/mods/farming/crops/pepper.lua +++ b/mods/farming/crops/pepper.lua @@ -113,6 +113,7 @@ minetest.register_node("farming:pepper_4", table.copy(def)) -- stage 5 (green pepper) def.tiles = {"crops_pepper_plant_5.png"} +def.selection_box = farming.select_final def.drop = { max_items = 2, items = { {items = {"farming:pepper 2"}, rarity = 1}, @@ -153,3 +154,29 @@ farming.registered_plants["farming:pepper"] = { maxlight = farming.max_light, steps = 5 } + +-- mapgen +local mg = farming.mapgen == "v6" + +def = { + grow_on = mg and {"default:dirt_with_grass"} or {"default:dirt_with_rainforest_litter"} +} + +minetest.register_decoration({ + deco_type = "simple", + place_on = def.grow_on, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.pepper, + spread = {x = 100, y = 100, z = 100}, + seed = 243, + octaves = 3, + persist = 0.6 + }, + y_min = 5, + y_max = 35, + decoration = {"farming:pepper_5", "farming:pepper_6", "farming:pepper_7"}, + spawn_by = "group:tree", + num_spawn_by = 1 +}) diff --git a/mods/farming/crops/pineapple.lua b/mods/farming/crops/pineapple.lua index 6bb1918..73cd6bc 100644 --- a/mods/farming/crops/pineapple.lua +++ b/mods/farming/crops/pineapple.lua @@ -85,6 +85,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -123,6 +124,7 @@ minetest.register_node("farming:pineapple_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_pineapple_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:pineapple"}, rarity = 1}, @@ -139,3 +141,32 @@ farming.registered_plants["farming:pineapple"] = { maxlight = farming.max_light, steps = 8 } + +-- mapgen +local mg = farming.mapgen == "v6" + +def = { + grow_on = mg and {"default:dirt_with_grass"} or {"default:dirt_with_dry_grass", + "default:dry_dirt_with_dry_grass"}, + grow_near = mg and "group:sand" or nil, + num = mg and 1 or -1 +} + +minetest.register_decoration({ + deco_type = "simple", + place_on = def.grow_on, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.pineapple, + spread = {x = 100, y = 100, z = 100}, + seed = 354, + octaves = 3, + persist = 0.6 + }, + y_min = 11, + y_max = 30, + decoration = {"farming:pineapple_8"}, + spawn_by = def.grow_near, + num_spawn_by = def.num +}) diff --git a/mods/farming/crops/potato.lua b/mods/farming/crops/potato.lua index a55ab29..dc69bff 100644 --- a/mods/farming/crops/potato.lua +++ b/mods/farming/crops/potato.lua @@ -94,6 +94,7 @@ minetest.register_node("farming:potato_3", table.copy(def)) -- stage 4 def.tiles = {"farming_potato_4.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:potato 2"}, rarity = 1}, @@ -110,3 +111,21 @@ farming.registered_plants["farming:potato"] = { maxlight = farming.max_light, steps = 4 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.potato, + spread = {x = 100, y = 100, z = 100}, + seed = 465, + octaves = 3, + persist = 0.6 + }, + y_min = 15, + y_max = 40, + decoration = "farming:potato_3" +}) diff --git a/mods/farming/crops/pumpkin.lua b/mods/farming/crops/pumpkin.lua index 2829d47..b32b17f 100644 --- a/mods/farming/crops/pumpkin.lua +++ b/mods/farming/crops/pumpkin.lua @@ -1,8 +1,4 @@ ---[[ - Big thanks to PainterlyPack.net for allowing me to use these textures -]] - local S = farming.intllib -- pumpkin slice @@ -34,12 +30,12 @@ minetest.register_craft({ minetest.register_node("farming:jackolantern", { description = S("Jack 'O Lantern (punch to turn on and off)"), tiles = { - "farming_pumpkin_top.png", "farming_pumpkin_top.png", + "farming_pumpkin_bottom.png^farming_pumpkin_top.png", "farming_pumpkin_bottom.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", - "farming_pumpkin_side.png", "farming_pumpkin_face_off.png" + "farming_pumpkin_side.png", "farming_pumpkin_side.png^farming_pumpkin_face_off.png" }, paramtype2 = "facedir", - groups = {choppy = 1, oddly_breakable_by_hand = 1, flammable = 2}, + groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(), on_punch = function(pos, node, puncher) local name = puncher:get_player_name() or "" @@ -51,14 +47,14 @@ minetest.register_node("farming:jackolantern", { minetest.register_node("farming:jackolantern_on", { tiles = { - "farming_pumpkin_top.png", "farming_pumpkin_top.png", + "farming_pumpkin_bottom.png^farming_pumpkin_top.png", "farming_pumpkin_bottom.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", - "farming_pumpkin_side.png", "farming_pumpkin_face_on.png" + "farming_pumpkin_side.png", "farming_pumpkin_side.png^farming_pumpkin_face_on.png" }, light_source = default.LIGHT_MAX - 1, paramtype2 = "facedir", groups = { - choppy = 1, oddly_breakable_by_hand = 1, flammable = 2, + snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, not_in_creative_inventory = 1 }, sounds = default.node_sound_wood_defaults(), @@ -182,12 +178,12 @@ minetest.register_node("farming:pumpkin_7", table.copy(def)) minetest.register_node("farming:pumpkin_8", { description = S("Pumpkin"), tiles = { - "farming_pumpkin_top.png", + "farming_pumpkin_bottom.png^farming_pumpkin_top.png", "farming_pumpkin_bottom.png", "farming_pumpkin_side.png" }, groups = { - food_pumpkin = 1, choppy = 2, oddly_breakable_by_hand = 1, + food_pumpkin = 1, snappy = 3, choppy = 3, oddly_breakable_by_hand = 2, flammable = 2, plant = 1 }, drop = "farming:pumpkin_8", @@ -206,3 +202,31 @@ farming.registered_plants["farming:pumpkin"] = { maxlight = farming.max_light, steps = 8 } + +-- mapgen +local mg = farming.mapgen == "v6" + +def = { + y_max = mg and 20 or 6, + near = mg and "group:water" or nil, + num = mg and 1 or -1, +} + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.pumpkin, + spread = {x = 100, y = 100, z = 100}, + seed = 576, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = def.y_max, + decoration = "farming:pumpkin_8", + spawn_by = def.near, + num_spawn_by = def.num +}) diff --git a/mods/farming/crops/raspberry.lua b/mods/farming/crops/raspberry.lua index df1d3d9..6d85461 100644 --- a/mods/farming/crops/raspberry.lua +++ b/mods/farming/crops/raspberry.lua @@ -61,6 +61,7 @@ minetest.register_node("farming:raspberry_3", table.copy(def)) -- stage 4 (final) def.tiles = {"farming_raspberry_4.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:raspberries 2"}, rarity = 1}, @@ -78,3 +79,21 @@ farming.registered_plants["farming:raspberries"] = { maxlight = farming.max_light, steps = 4 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.raspberry, + spread = {x = 100, y = 100, z = 100}, + seed = 687, + octaves = 3, + persist = 0.6 + }, + y_min = 3, + y_max = 15, + decoration = "farming:raspberry_4" +}) diff --git a/mods/farming/crops/rhubarb.lua b/mods/farming/crops/rhubarb.lua index d0ac58a..989b72b 100644 --- a/mods/farming/crops/rhubarb.lua +++ b/mods/farming/crops/rhubarb.lua @@ -38,6 +38,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -55,17 +56,27 @@ minetest.register_node("farming:rhubarb_1", table.copy(def)) def.tiles = {"farming_rhubarb_2.png"} minetest.register_node("farming:rhubarb_2", table.copy(def)) --- stage 3 (final) +-- stage3 def.tiles = {"farming_rhubarb_3.png"} -def.groups.growing = nil def.drop = { items = { - {items = {"farming:rhubarb 2"}, rarity = 1}, + {items = {"farming:rhubarb"}, rarity = 1}, + } +} +minetest.register_node("farming:rhubarb_3", table.copy(def)) + +-- stage 4 (final) +def.tiles = {"farming_rhubarb_4.png"} +def.groups.growing = nil +def.selection_box = farming.select_final +def.drop = { + items = { + {items = {"farming:rhubarb 2"}, rarity = 1}, {items = {"farming:rhubarb"}, rarity = 2}, {items = {"farming:rhubarb"}, rarity = 3} } } -minetest.register_node("farming:rhubarb_3", table.copy(def)) +minetest.register_node("farming:rhubarb_4", table.copy(def)) -- add to registered_plants farming.registered_plants["farming:rhubarb"] = { @@ -73,5 +84,23 @@ farming.registered_plants["farming:rhubarb"] = { seed = "farming:rhubarb", minlight = 10, maxlight = 12, - steps = 3 + steps = 4 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.rhubarb, + spread = {x = 100, y = 100, z = 100}, + seed = 798, + octaves = 3, + persist = 0.6 + }, + y_min = 3, + y_max = 20, + decoration = "farming:rhubarb_3" +}) diff --git a/mods/farming/crops/rice.lua b/mods/farming/crops/rice.lua index 6b8e2be..892278d 100644 --- a/mods/farming/crops/rice.lua +++ b/mods/farming/crops/rice.lua @@ -1,19 +1,41 @@ local S = farming.intllib +-- rice seed +minetest.register_node("farming:seed_rice", { + description = S("Rice Seed"), + tiles = {"farming_rice_seed.png"}, + inventory_image = "farming_rice_seed.png", + wield_image = "farming_rice_seed.png", + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4, growing = 1}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + next_plant = "farming:rice_1", + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_rice") + end +}) + -- rice minetest.register_craftitem("farming:rice", { description = S("Rice"), inventory_image = "farming_rice.png", groups = {seed = 2, food_rice = 1, flammable = 2}, - on_place = function(itemstack, placer, pointed_thing) - return farming.place_seed(itemstack, placer, pointed_thing, "farming:rice_1") - end }) --- replacement for rice seeds that was removed -minetest.register_alias("farming:seed_rice", "farming:rice") +-- dry rice seed to give edible rice +minetest.register_craft({ + type = "cooking", + cooktime = 1, + output = "farming:rice", + recipe = "farming:seed_rice" +}) +-- rice flour and bread minetest.register_craftitem("farming:rice_bread", { description = S("Rice Bread"), inventory_image = "farming_rice_bread.png", @@ -54,6 +76,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 4, plant = 1, attached_node = 1, @@ -99,8 +122,9 @@ minetest.register_node("farming:rice_6", table.copy(def)) def.tiles = {"farming_rice_7.png"} def.drop = { items = { - {items = {"farming:rice"}, rarity = 1}, - {items = {"farming:rice"}, rarity = 3} + {items = {"farming:seed_rice"}, rarity = 1}, + {items = {"farming:seed_rice"}, rarity = 2}, + {items = {"farming:seed_rice"}, rarity = 3} } } minetest.register_node("farming:rice_7", table.copy(def)) @@ -108,10 +132,12 @@ minetest.register_node("farming:rice_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_rice_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { - {items = {"farming:rice 2"}, rarity = 1}, - {items = {"farming:rice"}, rarity = 2} + {items = {"farming:seed_rice 2"}, rarity = 1}, + {items = {"farming:seed_rice 2"}, rarity = 2}, + {items = {"farming:seed_rice"}, rarity = 3} } } minetest.register_node("farming:rice_8", table.copy(def)) @@ -119,7 +145,7 @@ minetest.register_node("farming:rice_8", table.copy(def)) -- add to registered_plants farming.registered_plants["farming:rice"] = { crop = "farming:rice", - seed = "farming:rice", + seed = "farming:seed_rice", minlight = farming.min_light, maxlight = farming.max_light, steps = 8 diff --git a/mods/farming/crops/soy.lua b/mods/farming/crops/soy.lua index e0ed093..13c20af 100644 --- a/mods/farming/crops/soy.lua +++ b/mods/farming/crops/soy.lua @@ -171,6 +171,7 @@ minetest.register_node("farming:soy_6", table.copy(def)) -- stage 7 def.tiles = {"farming_soy_7.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { max_items = 5, items = { {items = {"farming:soy_pod"}, rarity = 1}, @@ -190,3 +191,28 @@ farming.registered_plants["farming:soy_pod"] = { maxlight = farming.max_light, steps = 7 } + +-- mapgen +local mg = farming.mapgen == "v6" + +def = { + spawn_on = mg and {"default:dirt_with_grass"} or {"default:dirt_with_dry_grass", + "default:dirt_with_rainforest_litter", "default:dry_dirt_with_dry_grass"} +} + +minetest.register_decoration({ + deco_type = "simple", + place_on = def.spawn_on, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.soy, + spread = {x = 100, y = 100, z = 100}, + seed = 809, + octaves = 3, + persist = 0.6 + }, + y_min = 20, + y_max = 50, + decoration = "farming:soy_6" +}) diff --git a/mods/farming/crops/spinach.lua b/mods/farming/crops/spinach.lua new file mode 100644 index 0000000..528e7bf --- /dev/null +++ b/mods/farming/crops/spinach.lua @@ -0,0 +1,90 @@ + +local S = farming.intllib + +-- spinach +minetest.register_craftitem("farming:spinach", { + description = S("Spinach"), + inventory_image = "farming_spinach.png", + groups = {seed = 2, food_spinach = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:spinach_1") + end, + on_use = minetest.item_eat(1) +}) + +-- definition +local def = { + drawtype = "plantlike", + tiles = {"farming_spinach_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:spinach_1", table.copy(def)) + +-- stage 2 +def.tiles = {"farming_spinach_2.png"} +minetest.register_node("farming:spinach_2", table.copy(def)) + +-- stage 3 +def.tiles = {"farming_spinach_3.png"} +def.drop = { + items = { + {items = {"farming:spinach"}, rarity = 1}, + {items = {"farming:spinach"}, rarity = 3} + } +} +minetest.register_node("farming:spinach_3", table.copy(def)) + +-- stage 4 +def.tiles = {"farming_spinach_4.png"} +def.groups.growing = nil +def.selection_box = farming.select_final +def.drop = { + items = { + {items = {"farming:spinach 2"}, rarity = 1}, + {items = {"farming:spinach 2"}, rarity = 2}, + {items = {"farming:spinach 2"}, rarity = 3} + } +} +minetest.register_node("farming:spinach_4", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["farming:spinach"] = { + crop = "farming:spinach", + seed = "farming:spinach", + minlight = 7, + maxlight = farming.max_light, + steps = 4 +} + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.1, + scale = farming.spinach, + spread = {x = 100, y = 100, z = 100}, + seed = 910, + octaves = 3, + persist = 0.6 + }, + biomes = {"deciduous_forest"}, + y_max = 31000, + y_min = 1, + decoration = "farming:spinach_4", + param2 = 3 +}) diff --git a/mods/farming/crops/strawberry.lua b/mods/farming/crops/strawberry.lua new file mode 100644 index 0000000..9e0792b --- /dev/null +++ b/mods/farming/crops/strawberry.lua @@ -0,0 +1,112 @@ + +local S = farming.intllib + +-- Strawberry (can also be planted as seed) +minetest.register_craftitem(":ethereal:strawberry", { + description = S("Strawberry"), + inventory_image = "ethereal_strawberry.png", + groups = {seed = 2, food_strawberry = 1, food_berry = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:strawberry_1") + end, + on_use = minetest.item_eat(1) +}) + +-- Define Strawberry Bush growth stages +local def = { + drawtype = "plantlike", + tiles = {"ethereal_strawberry_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + 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, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +--stage 1 +minetest.register_node(":ethereal:strawberry_1", table.copy(def)) + +-- stage 2 +def.tiles = {"ethereal_strawberry_2.png"} +minetest.register_node(":ethereal:strawberry_2", table.copy(def)) + +-- stage 3 +def.tiles = {"ethereal_strawberry_3.png"} +minetest.register_node(":ethereal:strawberry_3", table.copy(def)) + +-- stage 4 +def.tiles = {"ethereal_strawberry_4.png"} +minetest.register_node(":ethereal:strawberry_4", table.copy(def)) + +-- stage 5 +def.tiles = {"ethereal_strawberry_5.png"} +minetest.register_node(":ethereal:strawberry_5", table.copy(def)) + +-- stage 6 +def.tiles = {"ethereal_strawberry_6.png"} +def.drop = { + items = { + {items = {"ethereal:strawberry 1"}, rarity = 2}, + {items = {"ethereal:strawberry 2"}, rarity = 3} + } +} +minetest.register_node(":ethereal:strawberry_6", table.copy(def)) + +-- stage 7 +def.tiles = {"ethereal_strawberry_7.png"} +def.drop = { + items = { + {items = {"ethereal:strawberry 1"}, rarity = 1}, + {items = {"ethereal:strawberry 2"}, rarity = 3} + } +} +minetest.register_node(":ethereal:strawberry_7", table.copy(def)) + +-- stage 8 +def.tiles = {"ethereal_strawberry_8.png"} +def.groups.growing = nil +def.selection_box = farming.select_final +def.drop = { + items = { + {items = {"ethereal:strawberry 2"}, rarity = 1}, + {items = {"ethereal:strawberry 3"}, rarity = 3} + } +} +minetest.register_node(":ethereal:strawberry_8", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["ethereal:strawberry"] = { + crop = "ethereal:strawberry", + seed = "ethereal:strawberry", + minlight = farming.min_light, + maxlight = farming.max_light, + steps = 8 +} + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.strawberry, + spread = {x = 100, y = 100, z = 100}, + seed = 143, + octaves = 3, + persist = 0.6 + }, + y_min = 20, + y_max = 55, + decoration = "ethereal:strawberry_7" +}) diff --git a/mods/farming/crops/sunflower.lua b/mods/farming/crops/sunflower.lua index 1a45054..c3cb6b1 100644 --- a/mods/farming/crops/sunflower.lua +++ b/mods/farming/crops/sunflower.lua @@ -8,12 +8,22 @@ minetest.register_craftitem("farming:sunflower", { }) -- sunflower seeds -minetest.register_craftitem("farming:seed_sunflower", { +minetest.register_node("farming:seed_sunflower", { description = S("Sunflower Seeds"), + tiles = {"farming_sunflower_seeds.png"}, inventory_image = "farming_sunflower_seeds.png", - groups = {seed = 2, food_sunflower_seeds = 1, flammable = 2}, + wield_image = "farming_sunflower_seeds.png", + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1, growing = 1, + food_sunflower_seeds = 1, flammable = 2}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + next_plant = "farming:sunflower_1", on_place = function(itemstack, placer, pointed_thing) - return farming.place_seed(itemstack, placer, pointed_thing, "farming:sunflower_1") + return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_sunflower") end }) @@ -98,6 +108,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -137,6 +148,7 @@ minetest.register_node("farming:sunflower_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_sunflower_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:sunflower"}, rarity = 1}, @@ -153,3 +165,21 @@ farming.registered_plants["farming:sunflower"] = { maxlight = farming.max_light, steps = 8 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.sunflower, + spread = {x = 100, y = 100, z = 100}, + seed = 254, + octaves = 3, + persist = 0.6 + }, + y_min = 10, + y_max = 40, + decoration = "farming:sunflower_8" +}) diff --git a/mods/farming/crops/tomato.lua b/mods/farming/crops/tomato.lua index 6eff7c6..5541067 100644 --- a/mods/farming/crops/tomato.lua +++ b/mods/farming/crops/tomato.lua @@ -43,6 +43,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -87,6 +88,7 @@ minetest.register_node("farming:tomato_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_tomato_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:tomato 3"}, rarity = 1}, @@ -104,3 +106,21 @@ farming.registered_plants["farming:tomato"] = { maxlight = farming.max_light, steps = 8 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.tomato, + spread = {x = 100, y = 100, z = 100}, + seed = 365, + octaves = 3, + persist = 0.6 + }, + y_min = 5, + y_max = 25, + decoration = "farming:tomato_7" +}) diff --git a/mods/farming/crops/vanilla.lua b/mods/farming/crops/vanilla.lua index f014a8d..c5304e9 100644 --- a/mods/farming/crops/vanilla.lua +++ b/mods/farming/crops/vanilla.lua @@ -20,6 +20,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, @@ -102,6 +103,7 @@ minetest.register_node("farming:vanilla_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_vanilla_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:vanilla 2"}, rarity = 1}, @@ -120,3 +122,21 @@ farming.registered_plants["farming:vanilla"] = { maxlight = farming.max_light, steps = 8 } + +-- mapgen +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = farming.vanilla, + spread = {x = 100, y = 100, z = 100}, + seed = 476, + octaves = 3, + persist = 0.6 + }, + y_min = 5, + y_max = 35, + decoration = "farming:vanilla_7" +}) diff --git a/mods/farming/crops/wheat.lua b/mods/farming/crops/wheat.lua index 1a7de8a..d59e7e0 100644 --- a/mods/farming/crops/wheat.lua +++ b/mods/farming/crops/wheat.lua @@ -8,14 +8,15 @@ minetest.register_node("farming:seed_wheat", { inventory_image = "farming_wheat_seed.png", wield_image = "farming_wheat_seed.png", drawtype = "signlike", - groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4}, + groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4, growing = 1}, paramtype = "light", paramtype2 = "wallmounted", walkable = false, sunlight_propagates = true, selection_box = farming.select, + next_plant = "farming:wheat_1", on_place = function(itemstack, placer, pointed_thing) - return farming.place_seed(itemstack, placer, pointed_thing, "farming:wheat_1") + return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_wheat") end }) @@ -158,6 +159,7 @@ local def = { walkable = false, buildable_to = true, drop = "", + waving = 1, selection_box = farming.select, groups = { snappy = 3, flammable = 4, plant = 1, attached_node = 1, @@ -216,6 +218,7 @@ minetest.register_node("farming:wheat_7", table.copy(def)) -- stage 8 (final) def.tiles = {"farming_wheat_8.png"} def.groups.growing = nil +def.selection_box = farming.select_final def.drop = { items = { {items = {"farming:wheat"}, rarity = 1}, diff --git a/mods/farming/farming.conf_example b/mods/farming/farming.conf_example index 7f103cd..9840d7a 100644 --- a/mods/farming/farming.conf_example +++ b/mods/farming/farming.conf_example @@ -6,6 +6,9 @@ --]] -- true to enable crop/food in-game and on mapgen set spawn rarety +farming.asparagus = 0.002 +farming.eggplant = 0.002 +farming.spinach = 0.002 farming.carrot = 0.001 farming.potato = 0.001 farming.tomato = 0.001 @@ -38,12 +41,11 @@ farming.vanilla = 0.001 farming.artichoke = 0.001 farming.parsley = 0.002 farming.sunflower = 0.001 +farming.ginger = 0.002 +farming.strawberry = not minetest.get_modpath("ethereal") and 0.002 farming.grains = true -- true or false only farming.rice = true --- default rarety of crops on map (higher number = more crops) -farming.rarety = 0.002 - -- default minimum and maximum light levels crops need to grow farming.min_light = 12 farming.max_light = 15 diff --git a/mods/farming/food.lua b/mods/farming/food.lua index 8665625..ca1ed16 100644 --- a/mods/farming/food.lua +++ b/mods/farming/food.lua @@ -2,6 +2,7 @@ local S = farming.intllib --= filter sea water into river water + minetest.register_craft({ output = "bucket:bucket_river_water", recipe = { @@ -67,18 +68,40 @@ minetest.register_craft({ recipe = "default:papyrus" }) +minetest.register_node("farming:sugar_cube", { + description = S("Sugar Cube"), + tiles = {"farming_sugar_cube.png"}, + groups = {crumbly = 2}, + floodable = true, + sounds = default.node_sound_gravel_defaults() +}) + +minetest.register_craft({ + output = "farming:sugar_cube", + recipe = { + {"farming:sugar", "farming:sugar", "farming:sugar"}, + {"farming:sugar", "farming:sugar", "farming:sugar"}, + {"farming:sugar", "farming:sugar", "farming:sugar"} + } +}) + +minetest.register_craft({ + output = "farming:sugar 9", + recipe = {{"farming:sugar_cube"}} +}) + --= Sugar caramel minetest.register_craftitem("farming:caramel", { description = S("Caramel"), - inventory_image = "farming_caramel.png", + inventory_image = "farming_caramel.png" }) minetest.register_craft({ type = "cooking", cooktime = 6, output = "farming:caramel", - recipe = "group:food_sugar", + recipe = "group:food_sugar" }) --= Salt @@ -165,8 +188,9 @@ minetest.register_node("farming:salt_crystal", { selection_box = { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} - }, + } }) + minetest.register_craft({ output = "farming:salt 9", recipe = { @@ -233,6 +257,7 @@ minetest.register_craft({ {"group:food_sugar", "dye:pink", "group:food_sugar"} }, replacements = { + {"group:food_cornstarch", "farming:bowl"}, {"group:food_cornstarch", "farming:bowl"}, {"group:food_rose_water", "vessels:glass_bottle"} } @@ -328,7 +353,7 @@ minetest.register_craftitem("farming:jaffa_cake", { }) minetest.register_craft({ - output = "farming:jaffa_cake", + output = "farming:jaffa_cake 3", recipe = { {"farming:baking_tray", "group:food_egg", "group:food_sugar"}, {"group:food_flour", "group:food_cocoa", "group:food_orange"}, @@ -337,7 +362,8 @@ minetest.register_craft({ replacements = { {"farming:baking_tray", "farming:baking_tray"}, {"mobs:bucket_milk", "bucket:bucket_empty"}, - {"farming:soy_milk", "vessels:drining_glass"} + {"mobs:wooden_bucket_milk", "wooden_bucket:bucket_wood_empty"}, + {"farming:soy_milk", "vessels:drinking_glass"} } }) @@ -366,13 +392,9 @@ minetest.register_craftitem("farming:cactus_juice", { groups = {vessel = 1, drink = 1}, on_use = function(itemstack, user, pointed_thing) if user then - if math.random(5) == 1 then - return minetest.do_item_eat(-1, "vessels:drinking_glass", - itemstack, user, pointed_thing) - else - return minetest.do_item_eat(2, "vessels:drinking_glass", - itemstack, user, pointed_thing) - end + local num = math.random(5) == 1 and -1 or 2 + return minetest.do_item_eat(num, "vessels:drinking_glass", + itemstack, user, pointed_thing) end end }) @@ -416,6 +438,21 @@ minetest.register_craft({ } }) +-- Mac & Cheese + +minetest.register_craftitem("farming:mac_and_cheese", { + description = S("Mac & Cheese"), + inventory_image = "farming_mac_and_cheese.png", + on_use = minetest.item_eat(6, "farming:bowl") +}) + +minetest.register_craft({ + output = "farming:mac_and_cheese", + recipe = { + {"group:food_pasta", "group:food_cheese", "group:food_bowl"} + } +}) + -- Spaghetti minetest.register_craftitem("farming:spaghetti", { @@ -585,7 +622,8 @@ minetest.register_craft({ }, replacements = { {"cucina_vegana:soy_milk", "vessels:drinking_glass"}, - {"group:food_milk", "bucket:bucket_empty"}, + {"mobs:bucket_milk", "bucket:bucket_empty"}, + {"mobs:wooden_bucket_milk", "wooden_bucket:bucket_wood_empty"}, {"farming:vanilla_extract", "vessels:glass_bottle"} } }) @@ -630,7 +668,7 @@ minetest.register_craft({ -- Onigiri minetest.register_craftitem("farming:onigiri", { - description = S("Onirigi"), + description = S("Onigiri"), inventory_image = "farming_onigiri.png", on_use = minetest.item_eat(2), groups = {flammable = 2} diff --git a/mods/farming/grass.lua b/mods/farming/grass.lua index a52ace9..86e7ac5 100644 --- a/mods/farming/grass.lua +++ b/mods/farming/grass.lua @@ -39,7 +39,7 @@ minetest.override_item("default:junglegrass", { max_items = 1, items = { {items = {"farming:seed_cotton"}, rarity = 8}, - {items = {"farming:rice"},rarity = 8}, + {items = {"farming:seed_rice"},rarity = 8}, {items = {"default:junglegrass"}} } } diff --git a/mods/farming/hoes.lua b/mods/farming/hoes.lua index 9340d55..f508b56 100644 --- a/mods/farming/hoes.lua +++ b/mods/farming/hoes.lua @@ -190,29 +190,29 @@ farming.register_hoe(":farming:hoe_diamond", { -- Toolranks support if tr then -minetest.override_item("farming:hoe_wood", { - original_description = "Wood Hoe", - description = toolranks.create_description("Wood Hoe")}) + minetest.override_item("farming:hoe_wood", { + original_description = S("Wood Hoe"), + description = toolranks.create_description(S("Wood Hoe"))}) -minetest.override_item("farming:hoe_stone", { - original_description = "Stone Hoe", - description = toolranks.create_description("Stone Hoe")}) + minetest.override_item("farming:hoe_stone", { + original_description = S("Stone Hoe"), + description = toolranks.create_description(S("Stone Hoe"))}) -minetest.override_item("farming:hoe_steel", { - original_description = "Steel Hoe", - description = toolranks.create_description("Steel Hoe")}) + minetest.override_item("farming:hoe_steel", { + original_description = S("Steel Hoe"), + description = toolranks.create_description(S("Steel Hoe"))}) -minetest.override_item("farming:hoe_bronze", { - original_description = "Bronze Hoe", - description = toolranks.create_description("Bronze Hoe")}) + minetest.override_item("farming:hoe_bronze", { + original_description = S("Bronze Hoe"), + description = toolranks.create_description(S("Bronze Hoe"))}) -minetest.override_item("farming:hoe_mese", { - original_description = "Mese Hoe", - description = toolranks.create_description("Mese Hoe")}) + minetest.override_item("farming:hoe_mese", { + original_description = S("Mese Hoe"), + description = toolranks.create_description(S("Mese Hoe"))}) -minetest.override_item("farming:hoe_diamond", { - original_description = "Diamond Hoe", - description = toolranks.create_description("Diamond Hoe")}) + minetest.override_item("farming:hoe_diamond", { + original_description = S("Diamond Hoe"), + description = toolranks.create_description(S("Diamond Hoe"))}) end @@ -314,13 +314,13 @@ local function throw_potion(itemstack, player) local dir = player:get_look_dir() local velocity = 20 - obj:setvelocity({ + obj:set_velocity({ x = dir.x * velocity, y = dir.y * velocity, z = dir.z * velocity }) - obj:setacceleration({ + obj:set_acceleration({ x = dir.x * -3, y = -9.5, z = dir.z * -3 @@ -386,15 +386,9 @@ minetest.register_tool("farming:scythe_mithril", { local def = minetest.registered_nodes[node.name] - if not def then - return - end - - if not def.drop then - return - end - - if not def.groups + if not def + or not def.drop + or not def.groups or not def.groups.plant then return end @@ -481,34 +475,4 @@ if minetest.get_modpath("moreores") then {"", "", "group:stick"} } }) ---[[ - farming.register_hoe(":moreores:hoe_silver", { - description = S("%s Hoe"):format(S("Silver")), - inventory_image = "moreores_tool_silverhoe.png", - max_uses = 300, - material = "moreores:silver_ingot" - }) - - farming.register_hoe(":moreores:hoe_mithril", { - description = S("%s Hoe"):format(S("Mithril")), - inventory_image = "moreores_tool_mithrilhoe.png", - max_uses = 1000, - material = "moreores:mithril_ingot" - }) - - -- Toolranks support - if tr then - - local desc = S("%s Hoe"):format(S("Silver")) - - minetest.override_item("moreores:hoe_silver", { - original_description = desc, - description = toolranks.create_description(desc)}) - - desc = S("%s Hoe"):format(S("Mithril")) - - minetest.override_item("moreores:hoe_mithril", { - original_description = desc, - description = toolranks.create_description(desc)}) - end]] end diff --git a/mods/farming/init.lua b/mods/farming/init.lua index 87aa48d..653a4b2 100644 --- a/mods/farming/init.lua +++ b/mods/farming/init.lua @@ -7,15 +7,20 @@ farming = { mod = "redo", - version = "20220309", + version = "20230407", path = minetest.get_modpath("farming"), select = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} }, + select_final = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5} + }, registered_plants = {}, min_light = 12, - max_light = 15 + max_light = 15, + mapgen = minetest.get_mapgen_setting("mg_name") } @@ -103,7 +108,7 @@ end -- Growth Logic local STAGE_LENGTH_AVG = tonumber( - minetest.settings:get("farming_stage_length")) or 200 -- 160 + minetest.settings:get("farming_stage_length")) or 200 local STAGE_LENGTH_DEV = STAGE_LENGTH_AVG / 6 @@ -193,30 +198,30 @@ local function reg_plant_stages(plant_name, stage, force_last) local old_constr = node_def.on_construct local old_destr = node_def.on_destruct - minetest.override_item(node_name, - { - on_construct = function(pos) + minetest.override_item(node_name, { - if old_constr then - old_constr(pos) - end + on_construct = function(pos) - farming.handle_growth(pos) - end, + if old_constr then + old_constr(pos) + end - on_destruct = function(pos) + farming.handle_growth(pos) + end, - minetest.get_node_timer(pos):stop() + on_destruct = function(pos) - if old_destr then - old_destr(pos) - end - end, + minetest.get_node_timer(pos):stop() - on_timer = function(pos, elapsed) - return farming.plant_growth_timer(pos, elapsed, node_name) - end, - }) + if old_destr then + old_destr(pos) + end + end, + + on_timer = function(pos, elapsed) + return farming.plant_growth_timer(pos, elapsed, node_name) + end, + }) end elseif force_last then @@ -302,12 +307,32 @@ end) -- Just in case a growing type or added node is missed (also catches existing -- nodes added to map before timers were incorporated). minetest.register_abm({ + label = "Start crop timer", nodenames = {"group:growing"}, interval = 300, chance = 1, catch_up = false, action = function(pos, node) - farming.handle_growth(pos, node) + + -- check if group:growing node is a seed + local def = minetest.registered_nodes[node.name] + + if def and def.groups and def.groups.seed then + + local next_stage = def.next_plant + + def = minetest.registered_nodes[next_stage] + + -- change seed to stage_1 or crop + if def then + + local p2 = def.place_param2 or 1 + + minetest.set_node(pos, {name = next_stage, param2 = p2}) + end + else + farming.handle_growth(pos, node) + end end }) @@ -366,8 +391,8 @@ function farming.plant_growth_timer(pos, elapsed, node_name) growth = 1 else - local night_light = (minetest.get_node_light(light_pos, 0) or 0) - local day_light = (minetest.get_node_light(light_pos, 0.5) or 0) + local night_light = (minetest.get_node_light(light_pos, 0) or 0) + local day_light = (minetest.get_node_light(light_pos, 0.5) or 0) local night_growth = night_light >= MIN_LIGHT and night_light <= MAX_LIGHT local day_growth = day_light >= MIN_LIGHT and day_light <= MAX_LIGHT @@ -410,6 +435,9 @@ function farming.refill_plant(player, plantname, index) if not player then return end local inv = player:get_inventory() + + if not inv then return end + local old_stack = inv:get_stack("main", index) if old_stack:get_name() ~= "" then @@ -533,19 +561,19 @@ farming.register_plant = function(name, def) inventory_image = def.inventory_image, wield_image = def.inventory_image, drawtype = "signlike", - groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 2}, + groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 2, growing = 1}, paramtype = "light", paramtype2 = "wallmounted", walkable = false, sunlight_propagates = true, selection_box = farming.select, - place_param2 = def.place_param2 or nil, + place_param2 = 1, -- place seed flat next_plant = mname .. ":" .. pname .. "_1", on_place = function(itemstack, placer, pointed_thing) - return farming.place_seed(itemstack, placer, - pointed_thing, mname .. ":" .. pname .. "_1") - end, + return farming.place_seed(itemstack, placer, pointed_thing, + mname .. ":seed_" .. pname) + end }) -- Register harvest @@ -571,13 +599,16 @@ farming.register_plant = function(name, def) } } + local sel = farming.select local g = { snappy = 3, flammable = 2, plant = 1, growing = 1, attached_node = 1, not_in_creative_inventory = 1, } -- Last step doesn't need growing=1 so Abm never has to check these + -- also increase selection box for visual indication plant has matured if i == def.steps then + sel = farming.select_final g.growing = 0 end @@ -600,7 +631,7 @@ farming.register_plant = function(name, def) buildable_to = true, sunlight_propagates = true, drop = drop, - selection_box = farming.select, + selection_box = sel, groups = g, sounds = default.node_sound_leaves_defaults(), minlight = def.minlight, @@ -624,6 +655,9 @@ end -- default settings +farming.asparagus = 0.002 +farming.eggplant = 0.002 +farming.spinach = 0.002 farming.carrot = 0.001 farming.potato = 0.001 farming.tomato = 0.001 @@ -656,9 +690,10 @@ farming.lettuce = 0.001 farming.artichoke = 0.001 farming.parsley = 0.002 farming.sunflower = 0.001 +farming.ginger = 0.002 +farming.strawberry = not minetest.get_modpath("ethereal") and 0.002 farming.grains = true farming.rice = true -farming.rarety = 0.002 -- Load new global settings if found inside mod folder @@ -731,8 +766,17 @@ ddoo("lettuce.lua", farming.lettuce) ddoo("artichoke.lua", farming.artichoke) ddoo("parsley.lua", farming.parsley) ddoo("sunflower.lua", farming.sunflower) +ddoo("strawberry.lua", farming.strawberry) +ddoo("asparagus.lua", farming.asparagus) +ddoo("eggplant.lua", farming.eggplant) +ddoo("spinach.lua", farming.eggplant) +ddoo("ginger.lua", farming.ginger) dofile(farming.path .. "/food.lua") -dofile(farming.path .. "/mapgen.lua") dofile(farming.path .. "/compatibility.lua") -- Farming Plus compatibility -dofile(farming.path .. "/lucky_block.lua") + +if minetest.get_modpath("lucky_block") then + dofile(farming.path .. "/lucky_block.lua") +end + +print("[MOD] Farming Redo loaded") diff --git a/mods/farming/license.txt b/mods/farming/license.txt index 961a49f..a44cef2 100644 --- a/mods/farming/license.txt +++ b/mods/farming/license.txt @@ -23,6 +23,10 @@ THE SOFTWARE. License of media (textures): ---------------------------- + +Created by Shadall (CC0): + farming_burger.png + Created by PilzAdam (License: CC BY 3.0): farming_bread.png farming_soil.png @@ -63,10 +67,15 @@ Created by VanessaE (License: CC BY 3.0): farming_cotton_7.png farming_cotton_8.png -Created by 7eventy7 (https://www.planetminecraft.com/member/7eventy7/) +Created by alerikaisattera (License: CC-BY-SA 4.0) farming_melon_top.png farming_melon_side.png farming_melon_bottom.png + farming_pumpkin_bottom.png + farming_pumpkin_top.png + farming_pumpkin_side.png + farming_pumpkin_face_on.png + farming_pumpkin_face_off.png Created by Doc (License: CC BY 3.0): farming_cucumber.png @@ -131,7 +140,6 @@ Created by TenPlus1 (CC BY 3.0) farming_rhubarb_2.png farming_rhubarb_3.png farming_rhubarb.png - farming_rhubarb_pie.png farming_hemp*.png farming_tofu*.png @@ -157,7 +165,6 @@ Created by OgelGames (CC BY-SA 4.0) Created by Felfa (CC0) farming_blackberry*.png farming_lettuce*.png - farming_burger.png farming_soy*.png farming_vanilla*.png farming_artichoke*.png @@ -175,8 +182,37 @@ Created by sirrobzeroone (CC0) farming_gyoza.png farming_pineapple_ring.png -Created by TechM8 (https://www.deviantart.com/techm8) +Created by smoke_th (CC0 - https://opengameart.org/content/popcorn-icon) farming_popcorn.png -Created by RZR0 (CC-BY-NC-SA) - farming_blueberry_pie.png +Created by DMBuce (MIT - https://github.com/DMBuce/hatchling-snacks) + farming_mac_and_cheese.png + +Created by XSSheep (CC BY-SA 4.0 - https://minecraft.curseforge.com/projects/pixel-perfection-freshly-updated) + farming_coffee_1.png + farming_coffee_2.png + farming_coffee_3.png + farming_coffee_4.png + farming_coffee_5.png + farming_coffee_beans.png + farming_apple_pie.png (edited by TenPlus1) + farming_blueberry_pie.png (edited by TenPlus1) + farming_rhubarb_pie.png (edited by TenPlus1) + +Copyright (C) 2021-2022: Atlante - AFL-1.1 +License for code: AFL-1.1 + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + farming_asparagus* + farming_eggplant* + farming_spinach* + farming_ginger* diff --git a/mods/farming/locale/farming.de.tr b/mods/farming/locale/farming.de.tr index 3fb935b..61f315d 100644 --- a/mods/farming/locale/farming.de.tr +++ b/mods/farming/locale/farming.de.tr @@ -38,7 +38,7 @@ Cornstarch=Speisestärke Cotton=Baumwolle Cotton Seed=Baumwollsamen Cucumber=Gurke -Cucumber and Potato Salad=Gurken und Tomatensalat +Cucumber and Potato Salad=Kartoffelsalat mit Gurke Cup of Coffee=Tasse Kaffee Cutting Board=Schneidebrett Diamond Hoe=Diamanthacke diff --git a/mods/farming/locale/farming.eo.tr b/mods/farming/locale/farming.eo.tr new file mode 100644 index 0000000..0098ae6 --- /dev/null +++ b/mods/farming/locale/farming.eo.tr @@ -0,0 +1,194 @@ +# Translation of the farming mod by TenPlus1 +# textdomain: farming +# author: Jolesh +# last update: 2022/11/04 + +###### folder . ###### + +### init.lua ### +Seed=Semo + +### compatibility.lua ### +Banana=Banano +Banana Leaves=Bananaj Folioj +Orange=Oranĝo +Strawberry=Frago + +### food.lua ### +Sugar=Sukero +Salt=Salo +Rose Water=Roza Akvo +Turkish Delight=Turka Delico +Garlic Bread=Ajla Pano +Donut=Benjeto +Chocolate Donut=Ĉokolada Benjeto +Apple Donut=Poma Benjeto +Porridge=Kaĉo +Jaffa Cake=Jafa Kuko + +### hoes.lua ### +Hoe=Sarkilo +Wooden Hoe=Ligna Sarkilo +Stone Hoe=Ŝtona Sarkilo +Steel Hoe=Ŝtala Sarkilo +Bronze Hoe=Bronza Sarkilo +Mese Hoe=Mesea Sarkilo +Diamond Hoe=Diamanta Sarkilo +# Surcharge du mod [Toolranks] à faire # +Hoe Bomb (use or throw on grassy areas to hoe land)= +Mithril Scythe (Right-click to harvest and replant crops)= +# Surcharge du mod [Toolranks] à faire # + +### soil.lua ### +Soil=Tero +Wet Soil=Malseka Tero + +### utensils.lua ### +Wooden Bowl=Ligna Bovlo +Saucepan=Kaserolo +Cooking Pot=Kuirpoto +Baking Tray=Baka Pleto +Skillet=Pato +Mortar and Pestle=Pistujo +Cutting Board=Tranĉa Tabulo +Juicer=Spremilo +Glass Mixing Bowl=Vitra Miksa Bovlo + + +###### folder ./crops ###### + +### barley.lua ### +Barley Seed=Hordea Semo +Barley=Hordeo + +### beans.lua ### +Green Beans=Verdaj Fazeoloj +Bean Pole (place on soil before planting beans)=Fazeola Poluso (metu sur grundo antaŭ planti fabojn) + +### beetroot.lua ### +Beetroot=Betoto +Beetroot Soup=Betota Supo + +### blueberry.lua ### +Blueberries=Mirtiloj +Blueberry Muffin=Mirtila Mufino +Blueberry Pie=Mirtila Torto + +### carrot.lua ## +Carrot=Karoto +Carrot Juice=Karota Suko +Golden Carrot=Ora Karoto + +### chili.lua ### +Chili Pepper=Kapsiketo +Bowl of Chili=Bovlo da Kapsiketo + +### cocoa.lua ### +Cocoa Beans=Kakaa Faboj +Cookie=Kuketo +Bar of Dark Chocolate=Stango de Malhela Ĉokolado +Chocolate Block=Bloko de Ĉokolado + +### coffee.lua ### +Coffee Beans=Kafaj Seboj +Cup of Coffee=Taso da Kafo + +### corn.lua ### +Corn=Maizo +Corn on the Cob=Maiza sur la Spadiko +Cornstarch=Maizamelo +Bottle of Ethanol=Botelo da Etanolo + +### cotton.lua ### +Cotton Seed=Kotona Semo +Cotton=Kotono +String=Ŝnuro + +### cucumber.lua ### +Cucumber=Kukumo + +### garlic.lua ### +Garlic clove=Ajlokloko +Garlic=Ajlo +Garlic Braid=Ajla Plektaĵo + +### grapes.lua ### +Grapes=Vinberoj +Trellis (place on soil before planting grapes)=Trellis (meti sur grundo antaŭ planti vinberojn) + +### hemp.lua ### +Hemp Seed=Kanaba Semo +Hemp Leaf=Kanaba Folio +Bottle of Hemp Oil=Botelo da Kanaba Oleo +Hemp Fibre=Kanaba Fibro +Hemp Block=Kanaba Bloko +Hemp Rope=Kanaba Ŝnuro + +### melon.lua ### +Melon Slice=Tranĉaĵo de Melono +Melon=Melono + +### onion.lua ### +Onion=Cepo + +### peas.lua ### +Pea Pod=Pizujo +Peas=Pizoj +Pea Soup=Piza Supo + +### pepper.lua ### +Peppercorn=Piprograjno +Pepper=Pipro +Ground Pepper=Muelita Pipro + +### pinapple.lua ### +Pineapple Top=Pinto de Ananaso +Pineapple=Ananaso +Pineapple Ring=Ananasa Ringo +Pineapple Juice=Ananasa Suko + +### potato.lua ### +Potato=Terpomo +Baked Potato=Bakita Terpomo +Cucumber and Potato Salad=Salato de Kukumo kaj Terpomo + +### pumpkin.lua ### +Pumpkin Slice=Tranĉaĵo de Kukurbo +Jack 'O Lantern (punch to turn on and off)=Kukurba Lanterno (punu por ŝalti kaj malŝalti) +Scarecrow Bottom=Birdotimigilo Fundo +Pumpkin Bread=Kukurba Pano +Pumpkin Dough=Kukurba Pasto +Pumpkin=Kukurbo + +### raspberry.lua ### +Raspberries=Framboj +Raspberry Smoothie=Fraba Glataĵo + +### rhubarb.lua ### +Rhubarb=Rabarbo +Rhubarb Pie=Rabarba Torto + +### ryeoatrice.lua ### +Rye=Sekalo +Rye seed=Sekala Semo +Oat=Aveno +Oat seed=Avena Semo +Rice=Rizo +Rice grains=Rizaj grajnoj +Rice Bread=Riza Pano +Rice Flour=Riza Faruno +Multigrain Flour=Multgrajna Faruno +Multigrain Bread=Multgrajna Pano + +### tomato.lua ### +Tomato=Tomato + +### wheat.lua ### +Wheat Seed=Tritika Semo +Wheat=Tritiko +Straw=Pajlo +Flour=Faruno +Bread=Pano +Sliced Bread=Tranĉita Pano +Toast=Toasto +Toast Sandwich=Toasta Sandviĉo diff --git a/mods/farming/lucky_block.lua b/mods/farming/lucky_block.lua index c6a2000..525ea36 100644 --- a/mods/farming/lucky_block.lua +++ b/mods/farming/lucky_block.lua @@ -1,79 +1,79 @@ - --- add lucky blocks - -if minetest.get_modpath("lucky_block") then - - lucky_block:add_blocks({ - {"dro", {"farming:corn"}, 5}, - {"dro", {"farming:coffee_cup_hot"}, 1}, - {"dro", {"farming:bread"}, 5}, - {"nod", "farming:jackolantern", 0}, - {"tro", "farming:jackolantern_on"}, - {"nod", "default:river_water_source", 1}, - {"tel"}, - {"dro", {"farming:trellis", "farming:grapes"}, 5}, - {"dro", {"farming:bottle_ethanol"}, 1}, - {"nod", "farming:melon", 0}, - {"dro", {"farming:donut", "farming:donut_chocolate", "farming:donut_apple"}, 5}, - {"dro", {"farming:hemp_leaf", "farming:hemp_fibre", "farming:seed_hemp"}, 10}, - {"nod", "fire:permanent_flame", 1}, - {"dro", {"farming:chili_pepper", "farming:chili_bowl"}, 5}, - {"dro", {"farming:bowl"}, 3}, - {"dro", {"farming:saucepan"}, 1}, - {"dro", {"farming:pot"}, 1}, - {"dro", {"farming:baking_tray"}, 1}, - {"dro", {"farming:skillet"}, 1}, - {"exp", 4}, - {"dro", {"farming:mortar_pestle"}, 1}, - {"dro", {"farming:cutting_board"}, 1}, - {"dro", {"farming:juicer"}, 1}, - {"dro", {"farming:mixing_bowl"}, 1}, - {"dro", {"farming:hoe_bronze"}, 1}, - {"dro", {"farming:hoe_mese"}, 1}, - {"dro", {"farming:hoe_diamond"}, 1}, - {"dro", {"farming:hoe_bomb"}, 10}, - {"dro", {"farming:turkish_delight"}, 5}, - {"lig"}, - {"dro", {"farming:scythe_mithril"}, 1}, - {"sch", "instafarm", 0, true, { - {"farming:wheat_8", "farming:carrot_8"}, - {"farming:cotton_8", "farming:rhubarb_3"}, - }}, - {"sch", "instafarm", 0, true, { - {"farming:wheat_8", "farming:pepper_5"}, - {"farming:cotton_8", "farming:onion_5"}, - }}, - {"sch", "instafarm", 0, true, { - {"farming:wheat_8", "farming:beetroot_5"}, - {"farming:cotton_8", "farming:barley_7"}, - }}, - {"sch", "instafarm", 0, true, { - {"farming:wheat_8", "farming:corn_8"}, - {"farming:cotton_8", "farming:grapes_8"}, - }}, - {"sch", "instafarm", 0, true, { - {"farming:wheat_8", "farming:pea_5"}, - {"farming:cotton_8", "farming:coffee_5"}, - }}, - {"sch", "instafarm", 0, true, { - {"farming:wheat_8", "farming:raspberry_4"}, - {"farming:cotton_8", "farming:tomato_8"}, - }}, - {"sch", "instafarm", 0, true, { - {"farming:wheat_8", "farming:chili_8"}, - {"farming:cotton_8", "farming:cucumber_4"}, - }}, - {"nod", "default:chest", 0, { - {name = "farming:seed_wheat", max = 15}, - {name = "farming:seed_barley", max = 15}, - {name = "farming:seed_barley", max = 15}, - {name = "farming:seed_hemp", max = 15}, - {name = "farming:seed_rye", max = 15}, - {name = "farming:seed_rice", max = 15}, - {name = "farming:seed_oat", max = 15}, - {name = "farming:soil_wet", max = 10}, - {name = "farming:cotton_wild", max = 5}, - {name = "farming:grapebush", max = 5}, - }}, - }) -end +lucky_block:add_blocks({ + {"dro", {"farming:corn"}, 5}, + {"dro", {"farming:coffee_cup_hot"}, 1}, + {"dro", {"farming:bread"}, 5}, + {"nod", "farming:jackolantern", 0}, + {"tro", "farming:jackolantern_on"}, + {"nod", "default:river_water_source", 1}, + {"tel"}, + {"dro", {"farming:trellis", "farming:grapes"}, 5}, + {"dro", {"farming:bottle_ethanol"}, 1}, + {"nod", "farming:melon", 0}, + {"dro", {"farming:donut", "farming:donut_chocolate", "farming:donut_apple"}, 5}, + {"dro", {"farming:hemp_leaf", "farming:hemp_fibre", "farming:seed_hemp"}, 10}, + {"nod", "fire:permanent_flame", 1}, + {"dro", {"farming:chili_pepper", "farming:chili_bowl"}, 5}, + {"dro", {"farming:bowl"}, 3}, + {"dro", {"farming:saucepan"}, 1}, + {"dro", {"farming:pot"}, 1}, + {"dro", {"farming:baking_tray"}, 1}, + {"dro", {"farming:skillet"}, 1}, + {"exp", 4}, + {"dro", {"farming:mortar_pestle"}, 1}, + {"dro", {"farming:cutting_board"}, 1}, + {"dro", {"farming:juicer"}, 1}, + {"dro", {"farming:mixing_bowl"}, 1}, + {"dro", {"farming:hoe_bronze"}, 1}, + {"dro", {"farming:hoe_mese"}, 1}, + {"dro", {"farming:hoe_diamond"}, 1}, + {"dro", {"farming:hoe_bomb"}, 10}, + {"dro", {"farming:turkish_delight"}, 5}, + {"lig"}, + {"dro", {"farming:scythe_mithril"}, 1}, + {"sch", "instafarm", 0, true, { + {"farming:wheat_8", "farming:carrot_8"}, + {"farming:cotton_8", "farming:rhubarb_3"}, + }}, + {"sch", "instafarm", 0, true, { + {"farming:wheat_8", "farming:pepper_5"}, + {"farming:cotton_8", "farming:onion_5"}, + }}, + {"sch", "instafarm", 0, true, { + {"farming:wheat_8", "farming:beetroot_5"}, + {"farming:cotton_8", "farming:barley_7"}, + }}, + {"sch", "instafarm", 0, true, { + {"farming:wheat_8", "farming:corn_8"}, + {"farming:cotton_8", "farming:grapes_8"}, + }}, + {"sch", "instafarm", 0, true, { + {"farming:wheat_8", "farming:pea_5"}, + {"farming:cotton_8", "farming:coffee_5"}, + }}, + {"sch", "instafarm", 0, true, { + {"farming:wheat_8", "farming:raspberry_4"}, + {"farming:cotton_8", "farming:tomato_8"}, + }}, + {"sch", "instafarm", 0, true, { + {"farming:wheat_8", "farming:chili_8"}, + {"farming:cotton_8", "farming:cucumber_4"}, + }}, + {"sch", "instafarm", 0, true, { + {"farming:wheat_8", "farming:spinach_4"}, + {"farming:cotton_8", "farming:eggplant_4"}, + }}, + {"nod", "default:chest", 0, { + {name = "farming:seed_wheat", max = 15}, + {name = "farming:seed_barley", max = 15}, + {name = "farming:seed_barley", max = 15}, + {name = "farming:seed_hemp", max = 15}, + {name = "farming:seed_rye", max = 15}, + {name = "farming:seed_rice", max = 15}, + {name = "farming:seed_oat", max = 15}, + {name = "farming:soil_wet", max = 10}, + {name = "farming:cotton_wild", max = 5}, + {name = "farming:grapebush", max = 5}, + {name = "farming:asparagus", max = 7} + }}, + {"dro", {"farming:chili_powder"}, 5} +}) diff --git a/mods/farming/mapgen.lua b/mods/farming/mapgen.lua deleted file mode 100644 index fce941d..0000000 --- a/mods/farming/mapgen.lua +++ /dev/null @@ -1,240 +0,0 @@ --- what mapgen are we using -local mg_name = minetest.get_mapgen_setting("mg_name") - --- temp vars -local tmp1, tmp2, tmp3 - --- decoration function -local function register_plant(name, min, max, spawnon, spawnby, num, rarety) - - -- do not place on mapgen if no value given (or not true) - if not rarety then - return - end - - -- set rarety value or default to farming.rarety if not a number - rarety = tonumber(rarety) or farming.rarety - - minetest.register_decoration({ - deco_type = "simple", - place_on = spawnon or {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = rarety, - spread = {x = 120, y = 120, z = 120}, - seed = 329, - octaves = 2, - persist = 0.6 - }, - y_min = min, - y_max = max, - decoration = "farming:" .. name, - spawn_by = spawnby, - num_spawn_by = num - }) -end - - --- add crops to mapgen -register_plant("potato_3", 1, 80, nil, "", -1, farming.potato) -register_plant("tomato_7", 5, 40, nil, "", -1, farming.tomato) -register_plant("corn_7", 1, 42, nil, "", -1, farming.corn) -register_plant("raspberry_4", 3, 20, nil, "", -1, farming.raspberry) -register_plant("rhubarb_3", 3, 25, nil, "", -1, farming.rhubarb) -register_plant("blueberry_4", 3, 20, nil, "", -1, farming.blueberry) -register_plant("beanbush", 1, 65, nil, "", -1, farming.beans) -register_plant("grapebush", 2, 85, nil, "", -1, farming.grapes) -register_plant("onion_5", 5, 42, nil, "", -1, farming.onion) -register_plant("garlic_5", 3, 60, nil, "group:tree", 1, farming.garlic) -register_plant("pea_5", 5, 100, nil, "", -1, farming.peas) -register_plant("beetroot_5", 1, 25, nil, "", -1, farming.beetroot) -register_plant("cabbage_6", 2, 20, nil, "", -1, farming.cabbage) -register_plant("lettuce_5", 5, 60, nil, "", -1, farming.lettuce) -register_plant("blackberry_4", 3, 20, nil, "", -1, farming.blackberry) -register_plant("vanilla_7", 5, 65, nil, "", -1, farming.vanilla) -register_plant("parsley_3", 1, 80, nil, "", -1, farming.parsley) -register_plant("sunflower_8", 1, 80, nil, "", -1, farming.sunflower) -register_plant("mint_4", 1, 145, { - "default:dirt_with_grass", "default:dirt_with_coniferous_litter"}, - "group:water", 1, farming.mint) - - --- v6 mapgen compatibility for specific crops -if mg_name == "v6" then - - register_plant("carrot_8", 1, 60, nil, "group:water", 1, farming.carrot) - register_plant("cucumber_4", 1, 40, nil, "group:water", 1, farming.cucumber) - register_plant("melon_8", 1, 40, nil, "group:water", 1, farming.melon) - register_plant("pumpkin_8", 1, 40, nil, "group:water", 1, farming.pumpkin) - register_plant("coffee_5", 10, 85, nil, "", -1, farming.coffee) - register_plant("soy_6", 10, 100, nil, "", -1, farming.soy) -else - -- v7 maps have a beach so plants growing near water is limited to 6 high - register_plant("carrot_8", 1, 25, nil, "", -1, farming.carrot) - register_plant("cucumber_4", 1, 20, nil, "", -1, farming.cucumber) - register_plant("melon_8", 1, 12, {"default:dirt_with_dry_grass", - "default:dirt_with_rainforest_litter"}, "", -1, farming.melon) - register_plant("pumpkin_8", 1, 12, nil, "", -1, farming.pumpkin) - register_plant("coffee_5", 10, 85, {"default:dirt_with_dry_grass", - "default:dirt_with_rainforest_litter", - "default:dry_dirt_with_dry_grass"}, "", -1, farming.coffee) - register_plant("soy_6", 10, 100, {"default:dirt_with_dry_grass", - "default:dirt_with_rainforest_litter", - "default:dry_dirt_with_dry_grass"}, "", -1, farming.soy) -end - - -if farming.hemp then -minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = tonumber(farming.hemp) or farming.rarety, - spread = {x = 110, y = 110, z = 110}, - seed = 420, - octaves = 3, - persist = 0.6 - }, - y_min = 3, - y_max = 45, - decoration = "farming:hemp_7", - spawn_by = "group:tree", - num_spawn_by = 1 -}) -end - - -if farming.chili then -minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = tonumber(farming.chili) or farming.rarety, - spread = {x = 110, y = 110, z = 110}, - seed = 760, - octaves = 3, - persist = 0.6 - }, - y_min = 5, - y_max = 35, - decoration = {"farming:chili_8"}, - spawn_by = "group:tree", - num_spawn_by = 1 -}) -end - - -if farming.artichoke then -minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = tonumber(farming.artichoke) or farming.rarety, - spread = {x = 110, y = 110, z = 110}, - seed = 448, - octaves = 3, - persist = 0.6 - }, - y_min = 1, - y_max = 13, - decoration = {"farming:artichoke_5"}, - spawn_by = "group:tree", - num_spawn_by = 1, -}) -end - - -if farming.pepper then - -local tmp1 = {"default:dirt_with_rainforest_litter"} -- v7 - -if mg_name == "v6" then - tmp1 = {"default:dirt_with_grass"} -- v6 -end - -minetest.register_decoration({ - deco_type = "simple", - place_on = tmp1, - sidelen = 16, - noise_params = { - offset = 0, - scale = tonumber(farming.pepper) or farming.rarety, - spread = {x = 100, y = 100, z = 100}, - seed = 933, - octaves = 3, - persist = 0.6 - }, - y_min = 5, - y_max = 35, - decoration = {"farming:pepper_5", "farming:pepper_6", "farming:pepper_7"}, - spawn_by = "group:tree", - num_spawn_by = 1 -}) -end - - -if farming.pineapple then - -tmp1 = {"default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass"} -tmp2 = nil -tmp3 = -1 - -if mg_name == "v6" then - tmp1 = {"default:dirt_with_grass"} - tmp2 = "default:desert_sand" - tmp3 = 1 -end - -minetest.register_decoration({ - deco_type = "simple", - place_on = tmp1, - sidelen = 16, - noise_params = { - offset = 0, - scale = tonumber(farming.pineapple) or farming.rarety, - spread = {x = 70, y = 70, z = 70}, - seed = 917, - octaves = 3, - persist = 0.6 - }, - y_min = 8, - y_max = 30, - decoration = {"farming:pineapple_8"}, - spawn_by = tmp2, - num_spawn_by = tmp3 -}) -end - -tmp1 = {"default:dry_dirt_with_dry_grass"} -tmp2 = {"savanna"} - -if mg_name == "v6" then - tmp1 = {"default:dirt_with_grass"} - tmp2 = {"jungle"} -end - -minetest.register_decoration({ - name = "farming:cotton_wild", - deco_type = "simple", - place_on = tmp1, - sidelen = 16, - noise_params = { - offset = -0.1, - scale = 0.1, - spread = {x = 150, y = 150, z = 150}, - seed = 4242, - octaves = 4, - persist = 0.7 - }, - biomes = tmp2, - y_max = 31000, - y_min = 1, - decoration = "farming:cotton_wild" -}) diff --git a/mods/farming/soil.lua b/mods/farming/soil.lua index 4363323..3d77aa1 100644 --- a/mods/farming/soil.lua +++ b/mods/farming/soil.lua @@ -111,6 +111,7 @@ minetest.register_alias("farming:desert_sand_soil_wet", dry_soil .. "_wet") -- if water near soil then change to wet soil minetest.register_abm({ + label = "Soil changes", nodenames = {"group:field"}, interval = 15, chance = 4, @@ -131,30 +132,34 @@ minetest.register_abm({ -- what's on top of soil, if solid/not plant change soil to dirt if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].walkable - and minetest.get_item_group(nn, "plant") == 0 then + and minetest.get_item_group(nn, "plant") == 0 + and minetest.get_item_group(nn, "growing") == 0 then + minetest.set_node(pos, {name = ndef.soil.base}) + return end - -- if map around soil not loaded then skip until loaded - if minetest.find_node_near(pos, 3, {"ignore"}) then - return - end + -- check if water is within 3 nodes + if minetest.find_node_near(pos, 3, {"group:water"}) then - -- check if water is within 3 nodes horizontally and 1 below - if #minetest.find_nodes_in_area( - {x = pos.x + 3, y = pos.y - 1, z = pos.z + 3}, - {x = pos.x - 3, y = pos.y , z = pos.z - 3}, - {"group:water"}) > 0 then + -- only change if it's not already wet soil + if node.name ~= ndef.soil.wet then + minetest.set_node(pos, {name = ndef.soil.wet}) + end - minetest.set_node(pos, {name = ndef.soil.wet}) + -- only dry out soil if no unloaded blocks nearby, just incase + elseif not minetest.find_node_near(pos, 3, {"ignore"}) then - elseif node.name == ndef.soil.wet then - minetest.set_node(pos, {name = ndef.soil.dry}) + if node.name == ndef.soil.wet then + minetest.set_node(pos, {name = ndef.soil.dry}) - elseif node.name == ndef.soil.dry - and minetest.get_item_group(nn, "plant") == 0 then - minetest.set_node(pos, {name = ndef.soil.base}) + -- if crop or seed found don't turn to dry soil + elseif node.name == ndef.soil.dry + and minetest.get_item_group(nn, "plant") == 0 + and minetest.get_item_group(nn, "growing") == 0 then + minetest.set_node(pos, {name = ndef.soil.base}) + end end end }) diff --git a/mods/farming/statistics.lua b/mods/farming/statistics.lua index b892867..945d792 100644 --- a/mods/farming/statistics.lua +++ b/mods/farming/statistics.lua @@ -7,9 +7,9 @@ local ROOT_2 = math.sqrt(2.0) local erf local erf_inv -local A = 8 * (math.pi - 3.0)/(3.0 * math.pi * (4.0 - math.pi)) +local A = 8 * (math.pi - 3.0) / (3.0 * math.pi * (4.0 - math.pi)) local B = 4.0 / math.pi -local C = 2.0/(math.pi * A) +local C = 2.0 / (math.pi * A) local D = 1.0 / A diff --git a/mods/farming/textures/crops_onion.png b/mods/farming/textures/crops_onion.png index 2099c63c717eaf37a5de6d5a39faadfbd11c5cba..8a6dc54a77482c24fa624fe0d783d93404b9b0f9 100644 GIT binary patch delta 245 zcmVP*PA(TwmNjp-T(jq0d!JM zQvg8b*k%9#0Ch=3K~xyiZO*|C#2^SoQB$j;APD;Z-&)&f7jB)o%ae%Dx#m7K_(1;= zhi1ymh#RtXQ&pxdB-UppTZnCpF`?3iKEXufg?2v>-GD?QRn&Oh$hnmIz*+=lMy#CU v`ZuMNX)X(XK?nedaC-l)j}hW|9PUpSkhBJf1<-H)00000NkvXXu0mjf!cu8W delta 829 zcmV-D1H$}<0?7uD8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-*m695$?<08W?0008kNklCBDGl=4eo-p-_NyP9-I!aLYmwEN5bit$18**NTirfuw_8~3^|07W&`%=V71E;^=#$6sN&AxDj8 z?aB$%h(OzY5JKUL6fWC_EmIJ}5Qqo_Zkbrw2LKKL(r9Wt9!uf?wUQ{)n+UHCU>RU1 zBe-G;0DtgY!155DDiKi6Zy_)UJR!9PoYE+D4VGO;1Px+puto=@wFu8b$f7{0%ucQ$ z{~@U1JhvNCR)`pduBIqU0UL4zA_OBG6buFw$~tWCkgn?d3C_LE;Z^~4aqEIsRK3usSJR1(AC7Jl0t zU@)zb``~w}%;`UdH-`Tik`vE8{7k3WI@FBBeT;gsGs`-IE5q>WB)b-M`!_mC^23$u z`8LU1tMAsC~XQXdKo#37T$6IK&m1K!cZOn z0004WQchC^n!~IR0GvPyIJQwW;ofr5@vS_Kk7&-n<{r4R7rea`}dn-usvKah|<3eHx&}k07WI z`e^tbA;t*d0!DATge86gx><#a56X$J{usBwLD+9@5O}LQAv0evdU2--{q|!1v(hB0g#UjTEfK8F8}}l07*qoM6N<$f~dNbB>(^b literal 0 HcmV?d00001 diff --git a/mods/farming/textures/ethereal_strawberry_1.png b/mods/farming/textures/ethereal_strawberry_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa21edc5a73cff8a86f367ab663d9748427e6bb GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnL3?x0byx0z;*aCb)T(`YgAKzr5#Q)p?D8g70 zKHs- L{an^LB{Ts52<05a literal 0 HcmV?d00001 diff --git a/mods/farming/textures/ethereal_strawberry_2.png b/mods/farming/textures/ethereal_strawberry_2.png new file mode 100644 index 0000000000000000000000000000000000000000..751115e9876d20ce7264a801486428c48f93640d GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@&H$ef*R`Ai@l6*0|Nnn`Y>5z1 zkg+7lFPOpM*^M+HN6*v6F+}2Wa)LxlgDJx)fsO_vsgMOid;U#F1){khtTJ h1S7A-Re=NshV%DWZ#dh_tpn<0@O1TaS?83{1OO8ICRYFe literal 0 HcmV?d00001 diff --git a/mods/farming/textures/ethereal_strawberry_3.png b/mods/farming/textures/ethereal_strawberry_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8b7a7b8c0b24eb4b9ed1b13d7a32af01bfc850a4 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@o&cW^S0EkVWbq#a7|wSV_X7Eh zB|(0{3=Yq3qyahho-U3d5|@(`7VszVHW;}mD@H&jT;+>O^7y>6A;z%_} xNY-$WTxY$Yhk^A@*TNnLjpk0#`6nYJ8M0(JUs}{0Jqa|5!PC{xWt~$(69D26Fcbg) literal 0 HcmV?d00001 diff --git a/mods/farming/textures/ethereal_strawberry_4.png b/mods/farming/textures/ethereal_strawberry_4.png new file mode 100644 index 0000000000000000000000000000000000000000..dcf001753c0770e613b6b5b551349f958886bd22 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv{s5m4S0EkVWbq#a7`AQ8JvQ~) zF`y7*NswPKgTu2MX+Tbar;B5V#`(MFHu5$Y@UR>(KgIB0kh$ST11Hm|f5w6uI_xfv z-PZHtw>8R7IkL_?laJT&^lIm64n6ZWq_TDHvP?N7CDLw|HKE3JmG}eM0KW;#{;l7# zUe@5MoukMdg)0e0Q4Oh0CniXq(|&mQd0&131IHnDf#!9p++dMnYy*H10g>_g(pKiq+|M*?o-WC78H+75Uf?UQD-oL+& b-2cF+)xpi>{&|5G&_xWMu6{1-oD!M<02*B^ literal 0 HcmV?d00001 diff --git a/mods/farming/textures/ethereal_strawberry_6.png b/mods/farming/textures/ethereal_strawberry_6.png new file mode 100644 index 0000000000000000000000000000000000000000..a4d0d603fc091f7ead1faa645646ba09e305e3d9 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvp#Yx{S0EkVWbq#a82;zx-oEY0 z&L*=GD9Tt8I9474ezNrP=8{z3;zN`o{YNk%ZJ(Erp-=)mD6xY+$^6WyXqFuE5#r8GN4IDq#ue zzqoEfMsdZui4Mo*w#4!^D0gH(_-VI2??UC9)X@C5@-IL2?%Pwg@tp(HdoF{e&83XH i*1X=5@TdAXqg~50?wf6EcW(i@i^0>?&t;ucLK6UGzF^M) literal 0 HcmV?d00001 diff --git a/mods/farming/textures/ethereal_strawberry_7.png b/mods/farming/textures/ethereal_strawberry_7.png new file mode 100644 index 0000000000000000000000000000000000000000..ace223cd88a0cd46bf55c2eda7c3d7d1646b8439 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv(Ey(iS0EkVWbq#a7@jzq-M;Pl zKR5T*s@x8s1Y=2%UoeBivm0qZ&TLN?#}JM4XD3+mF&Xl(=4vkbwprk-+fGLHh%iro z!NB0B|J)BuJaErdrXl3yiTRa^zrG*-#M+my!Es~rB*_yO^FdP8W62jemm=(T}r zFeG1>!TUf|yhe8Ev`4lHJPb!gL!Pm$n5X!z<5Nv~-zCQ4dC@l)Z{5f2_V%Lfas{hh ztJQ8?ym(LLwmy5zS3AaoI_DSgEGlNI?05gq;Pg}U^kI@c*AP7a9mRYGl zHQo6C4-N1kpFJSkJ&XsJWsb;{#|#VyGYxy#nD|!!tDI0)O!%-T0TC0L2ykgKx;Q1b w)^zlf7gMdZ6d5Mm{Xmogd0lv?cPx#07*qoM6N<$f_U9zb^rhX delta 184 zcmZo;I>9(WqMn7Bfq~)e-A6${N-n@B#1%+8GBD`s>#SQHl@zEOosg82lDM!deEQ63 z7xp#_=`LUas$eV$@(X5gcy=QV$cgZDaSY+Oo}6%i>Bi~P+y_dYo|$>sam}fdlhx19 z;S-s`$;Qg_X0l^~7b7!wM8Ym+=E>Xv3A?(Pn1frq4O4e|&tPJ14r=fA&JsGIu(WTR j3hRc8US3>0KNuL)Yh@PZ6c-%=TEgJz>gTe~DWM4faYsM0 diff --git a/mods/farming/textures/farming_asparagus.png b/mods/farming/textures/farming_asparagus.png new file mode 100644 index 0000000000000000000000000000000000000000..4dbc1ecb7c9faab745546690004d452985c88341 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4xHBpZ(Y^aoO+0X`wF`9-;IDQZ3iYW~IQAyt}j zU3!@_P35wZdVmTTOM?7@862M7NCR?=JY5_^IIbrrI53@Y61a6%;1I7b(`B8NOah4= wCdMvP4vH$B5@LBc%W21%0KLf!n@;jD+*reWh2z(vCqUf{p00i_>zopr0J2jp*Z=?k literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_asparagus_1.png b/mods/farming/textures/farming_asparagus_1.png new file mode 100644 index 0000000000000000000000000000000000000000..87444d1b361d59443eca33cf1fea0764269c42e8 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0Yx;PT4(0&A(VZN@l_@ zAfK@$$S;_|;n|HeAV<{G#W95AdUC=734>+>;Ry*zDM>)#jSPJDFKuoESqz@8elF{r G5}E)uRU0G# literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_asparagus_2.png b/mods/farming/textures/farming_asparagus_2.png new file mode 100644 index 0000000000000000000000000000000000000000..cb8c6b4bea138df631377ebad21652abded12d0c GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWWysHQic@w^QS&cW_b*kA zXw-5q3_1>!Wh@Eu3ubV5b|VeQ(eQL}4B@z*oUlMOq17-VLZL=%ngEA=%S=|ClV^^w i2qq;Zr6eXLFfhn$Wwd?z?}R*14}+(xpUXO@geCw#EhcpU literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_asparagus_3.png b/mods/farming/textures/farming_asparagus_3.png new file mode 100644 index 0000000000000000000000000000000000000000..904fb25f685ae165655f5624556a90f064c6a788 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUO)Ow=ic@w^QS&cW_b*iq zte1~y)Qad-e%fGj2dIXzB*-tA!Qt7BG$6;?)5S4_k?h=!qd*ZME zgA%5f>b{J2`8G4ywlGv~6VE?=%=FYsYmMGjReM5=rk+sZVlSJ_7_1wb{7B|(0{3=Yq3qyahZo-U3d9M|V|9pr5=;9+*&a5SoJ$lUC_8#FuY7`;S%r&8$l;ikS;{H(c8)I*0whub4y4SyB?VjjOGd&3EXR+~9U! W#%{T0m+cv#kqn-$elF{r5}E*V&pQkN literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_asparagus_5.png b/mods/farming/textures/farming_asparagus_5.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed183e03d89549b0cf0524329a0fda20d0e65df GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=7x$5+3=|zU49jjgkS) z;$f}wK@<2QCrC%m7JQ{SR~M*)u_VYZn8D%MjWi%9!qdeugyVYcsg1l120Si-$;E~_ zi4$AzxHuf=FcINtikNQEBo_Yuwa=I09~*v2Z(i)W_EES)=10SVHx0+mzua+AO{2}> s{2EoYiGDj9XQ~=3)kzbb{Y1r$zm$oycJ52lJfIy6p00i_>zopr0G3xnrT_o{ literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_barley.png b/mods/farming/textures/farming_barley.png index ca929e0e0cfa7852ad952325191cf22bb215e6eb..c681954862b41fcbb2fbb7bd7d2ee0a570a369d2 100644 GIT binary patch delta 235 zcmVKY~B063nNpc=Zcq(LfFI9jfT7WHBfHPW&ENPlG zZJI=YmOiYLIfKMI(6dqD%#NkchFJgr00DGTPE!Ct=GbNc003c0L_t&-(|wIg5`ZuW zL#f4Dh=tz&wAvZ%XQA1>$s-Vbrmkpk+B@GOjsO4v diff --git a/mods/farming/textures/farming_barley_1.png b/mods/farming/textures/farming_barley_1.png index 4a458b166f4da9be9ab663b447decf7697f8f355..177fbdf17ce9a2857bdcc157e080a8f9c8344b7f 100644 GIT binary patch delta 96 zcmeBSESew@#lgnFz##wmecv?mu286AOWcFnGH9xvXo{$A9 zU@Qsp3ubV5b|VeMN%D4gVd!9$^#F1tJY5_^IIbrrNGKfON!M)f6k}_1X=7kxVA;xW UGht2XDxew$Pgg&ebxsLQ01;Oqxc~qF diff --git a/mods/farming/textures/farming_barley_2.png b/mods/farming/textures/farming_barley_2.png index 96610c2f9f4e98fa44990ef6d947acffe15fc04c..d5a5936e23233327dd9c2e738d259a5ee5bff9a6 100644 GIT binary patch delta 117 zcmbQvIEitBN}fc3Pl#(`0Rs?}_KHqetUha%&ho9M>vvgQIOn(Q<-N&33C5BjzhDN3 zXE)M-91Tww#}JO|$q5Uz3m62scyf3cd3<=dIC)(Vnh;F6*2UngHr9B(nej delta 122 zcmbQlIGu5VO0jf+Pl&4_0|P@oGuJd;%UOI3n}w}6aWGuswK&JX@SN3qKkqxBEMrNK zUoeBivm0qZj+Up3V+hCfAd%8G=a9mGLSYTJcAjrj&!^6nq!^6eNBjdoP-OMy0 z!PnqHf=5OIN2+N-f-i?b>WTzig9jWO1*sfq#s&tGrUn}r7_MyPICH#lP8Y~#Pgg&e IbxsLQ02_}oTL1t6 delta 193 zcmdnMc#&~}L_G&H0|SGGE`KnPG7j(wadiMPY#5kA8F;gp8ETmCJ@Pfw1 z?$r&Aa}O?PSU7jDVng@BL{?|ZY6qrjXGe>}I^Q^T8Dm&kU-B%KVPt&B$Qa0z_l8mU dim+M+1H&OF{-unwM0bN+vd$@?2>?x0KX3p5 delta 213 zcmV;`04o2)0p$UZ7=H)@0000eEe}%w001*kOjJcc000I+01Qz8C0_soYy=g02ndZ0 z0G|e5g9$#63jnbOXp{v=r4azd0!Xz3db0pW#tE{>p4b2Y00DGTPE!Ct=GbNc003Y~ zL_t&-)3uCA4!|G`105g`w!r^iTb8z}xHkvOvBn1eJAVe1&Q9Qiq@BEi;HJ}wRDO`a z>ZaMn$Q4G}L+_Dpibr#W%AymLqeUCiS4BCyOc2`!5e>lO%?6po3WRV0p#B1BZ8Fxs P00000NkvXXu0mjf=JHME diff --git a/mods/farming/textures/farming_barley_5.png b/mods/farming/textures/farming_barley_5.png index 68c0d683934b8b164bb092a1bbf61e83d453b49b..cc1d66ba8a323bad1aacac5cf914c01a74c3c2ec 100644 GIT binary patch delta 209 zcmeyy_>ggeL_G^L0|Ud`yN`l^lvaRGh%3WHAd6v2r`?o^Rx`UDXHK(SvB+!ng77s< z1J*Bz-n}k!|K|Mj`>HP-?YL3ZJsqf&u_VYZn8D%MjWi%9)zif>gyVX0f&#aJp-)0W zVnRT|gR}^SCmJ~k4<1GyIB;~qhK5A(>upSOZM@4R!@LSbeIDG}u%PQ9-}P3ed92)N zhC0vnG*)P7tVlfZL~BQa>BA<|!%6F!n6#UjjNA0?HEl9bU}6xPD;+2}(aR9zR8Lnw Jmvv4FO#t@#QG5UZ delta 230 zcmVCNTgnKL9mK07_*8 zQf>-cdkbZU3uui1aF+~tqY-we0D`jsi@^Yu(g1^((whJP00DGTPE!Ct=GbNc0041G zL_t&-)18b#7Q`S3LsKgPqA>SA?V#<-Wm)jTPYCdJ;smoF;9u9y^xXIXx=ve>uuVKw z3tCv8h&aS^`CH;LIbVW(w-|!8!Kz6|$3T$FxS`c(pw~=@wN8*?q>!vu5=w)w6wrdS gq-cd+tuXk;A4yXKuV%~)!2kdN07*qoM6N<$f`I^7W&i*H diff --git a/mods/farming/textures/farming_barley_6.png b/mods/farming/textures/farming_barley_6.png index 496a218526b6327d94126a7183d6588e1f1db3cf..e72dd2e572a437cc138f7d1686353410fa72e7e0 100644 GIT binary patch delta 220 zcmV<203-j80_*{h7=Hu<0002(-QrRJ001XYOjJbx004uIKZ1`ufRH@N9UK7#92*)U7*=vD z2;gjJs9;T2&o;drBe{mJuim*#D;WUKmH zhHaA$xq>X{)OFAHOCB8|;q$me@`LkyYQUigb)AeZlP7|1T6<<*V1re7xuZI8t002ovPDHLk FV1lVLV95Xg diff --git a/mods/farming/textures/farming_barley_7.png b/mods/farming/textures/farming_barley_7.png index 1c636afbea800b2748fade6f1718ddffc5b375f5..a37c51730bd297751195921d35a48c118efc5ba9 100644 GIT binary patch delta 240 zcmV>dP>`rh zma9~ltXQD4Vx_iVptxnFw`j4wY7zCn&;S4c0d!JMQvg8b*k%9#0E9_IK~xCWV_?7l z0t}1{3=IryK&k=66ky?}Q1J3{!am0wMzfVj0{y0~Tl&EYM+?#2FBvsSu#Tkj)hkVgf`APAqCA+Z0N+ qFgUZRY|&KMq5>4rQZX@5F#!Oa(H)iXaM@P6y<+Lx?zV;_A%ZupL= z@H^ZHF>If@^M-8Yj0K}u20h`GnhYPoS&!N!jkOs_0+k7w^H7Ug(41fjHPLMC*00000 LNkvXXu0mjfyBA>5 diff --git a/mods/farming/textures/farming_barley_8.png b/mods/farming/textures/farming_barley_8.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a076538b641de80479bbb631ef851ce00d4760 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}a)3{WtEHhqOp$h4nNC)nenx{q zeydS-k7Y@pc}=fr;Y6GA$yQa9Z6^1cS5CLCnqgnD&~4citENTvT?_1*mN~ASWz(?2 zt6`;Q>l&A)wZ5(Ee7e_rO<3=}f3?S~UGaxEgq+x(bZTe1>4^$npmmHTL4Lsu4$p3+ z0Xb7VT^vIsF6;I%3N;xBFkf#H>Eh@ph;sS!U;C`#mbr6Prpx)4@YTr5OZZi`82w4G z|N5X!`tZBr&kiTrQvXMJ1*iEqK93fWp1X1C4Y%cO7lS1$Q*tlNb$>oJOUZoC&L<~- zCas$p9d#(mS~+uJxIp(03lE;EmvYlZ1VlxaCz Z{;gQR5&P6RI1lJP22WQ%mvv4FO#lb=fsFtF literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_blueberry_pie.png b/mods/farming/textures/farming_blueberry_pie.png index 21746864837226f9d0b342536c614a11c12495e5..1fa6b1c944092c24c75c8928f56118c4170703b3 100644 GIT binary patch delta 265 zcmV+k0rvjG0hj`i7=H)@0000eEe}%w003rCOjJcM0000006ijSK_g{MCSXk~f>bVl zR4VNy^}*S|jCGzSt5VsBmm P0000#ZJE35mPC#+Q0xS#=~NSWfr$Ix{)4aZa1g#?{a( eCL)q>fSuu`oJ5IF?L4 diff --git a/mods/farming/textures/farming_burger.png b/mods/farming/textures/farming_burger.png index c39f7c0a602a81a8d3a2b1bbe8611a615710cd75..43ab6d499fcae75ea97be86bb20415f93fa7368e 100644 GIT binary patch literal 422 zcmV;X0a^ZuP)!&+3TGD>bL&;^=u2_Q2+n{0d!JMQvg8b*k%9#0S`$;K~y-)y;IAQgdhwY$43Bh zP*DE=Q>O!n#4Y!*hizl1vYVDbc)k7=y5fO#&IK1ZermL~&bo|HG=jJGq+!C67^A-N zwy?<~Mxkg8@07*qoM6N<$f^wm>1ONa4 literal 480 zcmV<60U!Q}P)z^JS;Zfg4I&avlS&~V+E`lJXbMpX5>knUjRdw48!aLhq85TF6hv** zQtU(xsTWf%7?L6pbyjEB$vDou6k(scJ7bf^Q{8tt=e&1+9y~RasAP7pUjU%SiK{L# zGmWa5yzE^F@s&tnmAD+$M#^L2YLuImo2VgXgc!gJbey6EK;SzvA1ei$X%DZUV&DH_ z(8r_U`dqCJ@eAZOcHzK^xjLEAtU%l84O*EC9;-qTa1!r=GM5kc@Ulz>#I1Wjv@ zajH3^RP!A|4BfnQ6p}A)Y0g&~*dX{ljhX0)U$Q z0RaA8LGFPp!FCfQ)jK@&t;O+={x0000dpdQEub34k|4ie28U-i(tw;0PZ!4!j_b(@3S3jfXD)5bC{uP$eHfyk z92poHagpZ)hp~{67jx&1WlNW~wy7FyXlZF{n>L*l$k;u7`eFl_L*5NNTNv2d0v04~ i&|_Qh=mJBFE5nw%V*gJpylw?FpTX1B&t;ucLK6T(vpsPD literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_coffee_1.png b/mods/farming/textures/farming_coffee_1.png index 97c207a313610e5e4e8316d762ab75d8e8236aad..48d1b7ff007126eea955b4fdc21a9252eccaad48 100644 GIT binary patch delta 108 zcmZo?teYT_#=*wGz##wmelFzu{fQaAi=sgA%N*{z{&r5JEi`gG-FsI*|In` z<=^7&i76BMTYvmtqww{=0keai@@ZEE=LxaSMHLg)O5W5~=<$|g$XhGBddn>x1)zZp Mp00i_>zopr0Jb(Mo&W#< delta 117 zcmbAhe3 zBBLzwfyx+5g8YIR9G=}s19GH1T^vI=t|uof(AQ`&ydkrIhmTdG`6`141B3WtMo~|3 R{RKc(44$rjF6*2Ung9|iB60u# diff --git a/mods/farming/textures/farming_coffee_2.png b/mods/farming/textures/farming_coffee_2.png index a659f851fd94fe9e9025d2ef700b41bb19714e01..e80d7bef0e1f03e06b334f33eeb9dabd24f5551c 100644 GIT binary patch delta 136 zcmbQpxP)^)C{d1Bo!ArFfm+y&GJRyWc6pDSqz@8elF{r5*V8RC*3Ch delta 116 zcmZ3&IFWIJO0IN(Pl&4m0|RFOk7T8s*<72bLs7{W(i&gXG`y?o`r2od7AnlZz`$4% zlQQx6&pZzKlk7zloR(= TU;g9-RL|h)>gTe~DWM4fq{Jk= diff --git a/mods/farming/textures/farming_coffee_3.png b/mods/farming/textures/farming_coffee_3.png index 93088c80fb80b74a0e45c101060e04121d99bc92..a057d04ce07a9039f7e7b0a6b32095d3c527bb21 100644 GIT binary patch delta 162 zcmV;T0A2s90mA{1DStx>w7f!&q5CL>Rc6vd=To QfB*mh07*qoM6N<$f1I6 z$nf(fTWw?sdVD9j_2iM{>u0Z>H)wikw|nvdq-ozJ4GmDB_oXc<0Px=R9RPnFiUNOo SC=!bR0000&L_#J4dX z+(IO$| z3?#SzzF#HaBf?vRKPm#0;D@w?WEFh5oF=;Jt}Sg z)UiD5RXs01P3O*fLWS?YLmE_Yg@p4ppvoev1Rlqcd b$$^QX+=knGdWilSp!p1*u6{1-oD!M<*_k=3 diff --git a/mods/farming/textures/farming_coffee_beans.png b/mods/farming/textures/farming_coffee_beans.png index 0786f4e7ec4c60b67bc69814b5aa8a806e66b878..88e9438c4449d6522ae18d44abd90080e7184dfa 100644 GIT binary patch delta 146 zcmX@ZxQKCrL_G&H0|SGGE`KnP;t%i%adj{7=?Sx~^fC%HRaunmG0pzyCZH5!NswPK zgTu2MX+Vynr;B4q#jV~`(Oe7)0!|m*ZvUTEEb-EjnKo^K|udS?83{1OU(QHc0>g delta 188 zcmV;t07L(x0n7oA7=Hu<0002(-QrRJ000|MOjJc6001y16E-UoIxZGMG#5!a9ZWqM zQ$HPBMk04S*mFfYDD$gd=X?2(W=} zprUt2AkldC#N0xmho-MTDHvKjuH+AT(5u;{dHTT@(pzj{TQ$yv*r1nI9An8Q)-kDW q8-kG6DIr_-MVjgIap0EEOelVqN(s;az9W4A0000ry4wg^xJs$(n(@(X5gcy=QV$no)XaSY+Oo}6%iRm?%- z9V@Q@+hwj5E!XrqI)X|RB6=@8wrQNa-n@(_ l4LI6%aX9e^iX6$)X5d)N*Q3V&@(R#g22WQ%mvv4FO#p-$IsO0u literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_eggplant_1.png b/mods/farming/textures/farming_eggplant_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7246860d3a02887a78dc9685071617e671b3422b GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|u0Yy5PbH#Jt3>JVKOl#( zB*-tA!Qt7BG$2RJ)5S4_<9c$!0v3ZN4mE?-j4oCN3=AwS3`f^*jp7HYVDNPHb6Mw< G&;$S;Z5nz2 literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_eggplant_2.png b/mods/farming/textures/farming_eggplant_2.png new file mode 100644 index 0000000000000000000000000000000000000000..bfaf3634013536c770dc22f7f85c809bca088c20 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b1=8MmDk0SxX)_Ir7daKU z%FO`^F_r}R1v5B2yO9RuXn49fhHzX@PEe3GaMloGQxoGj-Ex%SP(e{qgH~XJW}9({ efeXt7NrnVr#)s0M?sfq6FnGH9xvXAc)B=-a9mGLaA13B&}KX%g}b1&V5V!t z0wKP2I-Ch^GgohBn4x$^>IuWdV9tijcEbpf1SKy6wwNP~a}O?JQen8biuH>1VsD^P O3=E#GelF{r5}E)5LNt5; literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_eggplant_4.png b/mods/farming/textures/farming_eggplant_4.png new file mode 100644 index 0000000000000000000000000000000000000000..7b32b1be4ec69c1bde7653a0e0f6b9d5c93362f4 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUO)Oy0mvV7b2@ldqa7>VE zbZPa-RtzXt_IVWZ8mNY`B*-tA!Qt7BG$1F^)5S4_<9c#}LjzMAi^18j335DwiOIoY z48~2DTSd7VOcn=LEvk^5a4_XW+$6S1i6X_?9Bi+>`7|0K#y`e(o zaKFpB75SD4b9Mj~FqQ=Q1v5B2yO9RuM0vV6hHzX@PH~-R;OXk;vd$@?2>|wpIJf`+ literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_ginger_1.png b/mods/farming/textures/farming_ginger_1.png new file mode 100644 index 0000000000000000000000000000000000000000..84d0d457ec190499fa1561aa85e2a9f450a16e17 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0UEo!AiN*L9xU5Nb!G8 zAfK@$$S;_|;n|HeAV{h|9aI1S literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_ginger_2.png b/mods/farming/textures/farming_ginger_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c472d20c99713ea3519c92d5c70ea6bf9d40bbc6 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b1=7+X+VTlj%B2p99mac( z7$gFP7)yfuf*Bm1-ADs+tUX;ELpZJ{CoGUNNK0V5%yx#$jZ2}edEzFp+$B6#NTDD0XetH7fsob1ZR#<1`r%l!qGpN|8LVeoYIb6Mw<&;$Tgjw)vW literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_ginger_3.png b/mods/farming/textures/farming_ginger_3.png new file mode 100644 index 0000000000000000000000000000000000000000..96f75d75f371bc21e93787156e7e79efb2f8b77e GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ%`eK84$+oRu$mOCs9frx z*kQad+o-XGvk|C(u_VYZn8D%MjWi&~%hSa%gyVX0f`ZTn0}BTUAH4*jj=2YF#MRmr zSSK_wuuWyy;K9+X<mdKI;Vst0Djdl?*IS* literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_ginger_4.png b/mods/farming/textures/farming_ginger_4.png new file mode 100644 index 0000000000000000000000000000000000000000..32f6de5b7eabb801056bc7c147bb9287bf019a60 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=4kr922Cpr9-sk6Rai$ zD=L>dD0Ubx%r@H9<2hx*mNcLW#*!evUxU;yQDM(;oaN-i;dC|qH4YZWO)78&q Iol`;+0BsyX00000 literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_mac_and_cheese.png b/mods/farming/textures/farming_mac_and_cheese.png new file mode 100644 index 0000000000000000000000000000000000000000..9ae8b1604ce988f69bc711ef0b67917f98f0fd19 GIT binary patch literal 353 zcmV-n0iOPeP)3WPGxyA$fqxYiHKI_<``eghOW`$p z3+L3l;`Mn=*0h0JEm5tPkk`6Ip_X3(fp1C_YVi-281_=Eb;T$V;;V$(j!6`134AjL z%A$F$l8dt%EA}_ja*B)+A$<`Hr$E{Kxx#OBiJr%WnFOtN%%ib|NZ4FGEez(c00000NkvXXu0mjf7R{Cz literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_melon_1.png b/mods/farming/textures/farming_melon_1.png index 3c6ea6d8d6e4f801d2479de7d62ed05d755775ae..f18f63308d9ac70cebcf85c659f3657767e2a9b2 100644 GIT binary patch delta 84 zcmeBT>}H&x!l4-86XMFiz%Wr$&aqUGEdj`6ED7=pW^j0RBMr!r@N{tu;kcfhut0wX lL-K~h5;3d+Y|&t$}J7JYD@<);T3K0RVNI6|4XN delta 83 zcmeBX>|>!YUWw6XH5iN6vZu3&qn63=E7VL4Lsu4$p3+0Xb5hE{-7_*OL<#=x4MT k-jG?q<5#NDe3iiiD8<95`!?n2cc3Z;Pgg&ebxsLQ04mBE`2YX_ diff --git a/mods/farming/textures/farming_melon_2.png b/mods/farming/textures/farming_melon_2.png index 185ed8263087abd2af6704be4a67c4835ad1d438..d5d94133208e7a8f7bf93555ff9e38879c2c64b2 100644 GIT binary patch delta 100 zcmZ3;xR7yzga`*S0|SGGE`KnPG7j(wadlu|n5b#sIwd%^2q?r@666=m;PC858jvI7 z>Eak7aXC3bBB?>#xutsogS7lEF2)koKL%_Jf(IDl|4o0)2UN%4>FVdQ&MBb@0HNv{ AZ2$lO delta 100 zcmZ3;xR7yzgdhtu0|Ud`yN`l^ltF+`i0ech0}rd63^71HV@Z%-FoVOh8)-m}yr+v} z2*>s0gaxV=9LWWTBsl}z)-X*un9rK}L6m`$!8L-Z;#0C!2~a76r>mdKI;Vst0E0su A;{X5v diff --git a/mods/farming/textures/farming_melon_3.png b/mods/farming/textures/farming_melon_3.png index 6e661f9246721c226d8589099e56d187ba32e4ef..07730e97af4db436a6101316020f02525ecea527 100644 GIT binary patch delta 94 zcmdnUxQcOt3Wr&MPlzi61H(j3V{g87U%vvGj3q&S!3+-1ZlnP@N}eu`ArhC96C^?! v_?=s3PhhaN-^JxvqRR9_YsUrFibNg;B?pGOid&hoK-CPMu6{1-oD!MmdKI;Vst E0B~*~OaK4? diff --git a/mods/farming/textures/farming_melon_4.png b/mods/farming/textures/farming_melon_4.png index d9199f3c822400e9a2d64e085a6ff49d562a6d83..9ff1e2f663d474ad91fedc112cf5bd2150a7f37a 100644 GIT binary patch delta 121 zcmdnWxQ%gwga`*S0|SGGE`KnPG7j(wadlu|n5bzGHC1DaBT$I3B*-tA!Qt7BG$6;& z)5S4F;&O6=g7}8T+#eQk7Zfh)E)W)Ykodqk_`t#bb*=r4yrB*ZcSC#_d8R)UVPJ@{ WXSjPy?OiTVGlQqApUXO@geCy^AtkW@ delta 120 zcmdnSxRr5&gdhtu0|Ud`yN`l^ltF+`i0echgBa^WFY|$X#*!evUXt;1^PXL?yT*eTuYl;kq9(+%7NH=kioWpm5hoPpI WO=kau&zFGO89ZJ6T-G@yGywn^7bvR$ diff --git a/mods/farming/textures/farming_melon_5.png b/mods/farming/textures/farming_melon_5.png index 755cbd34062e5a62910963f304f544dddd80554e..c44afcdd4dda67bc103157cd838fbda0df635ba5 100644 GIT binary patch delta 111 zcmX@YxSMf;3Wr&MPlzi61H(j3;~4&{GRJ^S#*!evU=* OGkCiCxvXq^7IFiJ@rS6=e}HWKb-e&$ICSpjX~2_8%TM_ uEI!D}=6vQDqm(5JFXIgPwuyW;i=`E8nH~OQNiYIUXYh3Ob6Mw<&;$TmY&OdP delta 143 zcmV;A0C4}>0owtPBn2~2OjJdYEHi)nttI{d0004WQchC?Up|Iap|Kr2*rkE5~I%kul`9poLfzY4)%N(f*Fpi^5F!?6QF zwLaH}WE}>rEj`K60i!3vXJi^Z5~qP-xXT|Sf^6TQ6uX6r#CK$XF>D&V-g+*TMi%4+ X8n6X-J|c3@00000NkvXXu0mjf)~`a= delta 172 zcmV;d08{_;0rvrrBn2~2OjJdYEHi(K%F|8&0004WQchCey-7?tfas21OcF{YaktoMrj{;tIxk0sS{}`_2TNBMc5408Hu;qNg7~ zP{ejOQ)(u1tF`{SBca_erovPfDD_O>HSVFD2`AZ2n4nchw^S2PrPY0onen0kr~<7=H)@0000eEe}%w002TzOjJcVZy!ExCqi%{LUJlbbtX%AB1(BG zQhq2?fFfOjCR&CcVu&kbjv#4`DQu4;aFQKylqhwWEPk0LdYmYHo*;vsEM9f1t^fc4 zu1Q2eR2b70P+JnjAPB?PinadggLcVPL7|EP#(u4uw*or4YYpV_*;a-GL#6Gpv%BxJgU?WX-b^kVK$!ME zXDAZ$YB>{Kk@W+g>7)CN69T#zY<)QomqSRy#)Pb4Ux0|8fQlpLC*t$TTU0PA~p?EpHPBcuRMu1-+^`7LR00Ix?ux&T_?7L@=M znSbN}>*Jcg0KN-OS^(s&n->5VoU;7@et30j0PVT$S^%}_>lI!zyCUML*LlnU0000< KMNUMnLSTY%?mE=~ diff --git a/mods/farming/textures/farming_melon_side.png b/mods/farming/textures/farming_melon_side.png index 07afb25d3d6fec12ab2e0e806c120ae153372003..7995ea5dc0613fba9ec3a37725d938c807804a6d 100644 GIT binary patch delta 288 zcmV+*0pI?!0j~m(7=H)@0000eEe}%w002TzOjJcNXdp6b88>z%Id>j1dLKS~BT|1M zPk|X$f+SpsC~S`-Z;=~sk|u4JAas{2b(kZ3m?eOlDSMqMe4ZeFp)G`2xJ~9@_@SkvvAwQ2X?hTf&3L_8Z>9d-#XN_#(NWTwG+*fQ5T<3x^hiC2FV&!M6 mekt|%{X&#_pBZP}=87*$5)1-5yJElq0000G-UIEgc4f%Z|xQvoGy zMlmrW2|Vf=&PR?ioZ%=eEMzvcTE@`oAf?^VB@=s4-^n{BCQPKEHEeAb`|H;)UT84P gj*N@zD_~}3$gUAvTB(p`1~i|+)78&qol`;+04Vo9ng9R* delta 211 zcmV;^04)E;0pkIX7=H)@0000eEe}%w001*kOjJcU002z{0&@@$#~mlhA05OcA-^Xl z+#W2yd>?%$n?{=|K-T|@6?a1s>%QW00DGTPE!Ct=GbNc003S| zL_t&-(~XYV4!|G?1o2oZc+~&@+G^8SN&3)v+kp)beIUhVEll;W^Ol*7=)ocGjUE65 zBa++9tT2zA_=*f95Af=oBP4h{*JYR-2Dz4H`lJ=1Wo~r)PE~~daRJU31E69?ZE*kq N002ovPDHLkV1g&mSMdM< diff --git a/mods/farming/textures/farming_melon_top.png b/mods/farming/textures/farming_melon_top.png index 29ca92d23e51dff30b729c0dd6d318966d1fae54..9309f37dcaccb98ec826d3c14935cfb368680c04 100644 GIT binary patch delta 294 zcmV+>0one+0kr~<7=H)@0000eEe}%w002TzOjJcJT^2cNA~|p$KyWBTb0kQ1AWM2H zPkbd)fFfRlCt8LdX^kmmk0Ec2Ds7M?ag!Z#l_`FiCw-YOd7LPGo*;yuE!>4ZMF0Q* zu1Q2eR2b70kXw#JF$hB`Aq`17Jc{rBw_4^0p##V^6yTAbJbw_$3?mpm+C<#2U`azW z2YXn+8@`B-KA4E*A_itc7bxtLk~Ie?!bFzyJ@>3-i(q1vk+fE@f_Ypz?m%Y!g>?gPI&{|zK{2nZfu?ao;T4aRy`v~6X0 stCVFoE}gb#9UrdY=)`^5KX_IA0C^=07@w|bg#Z8m07*qoM6N<$f>~&CzW@LL delta 177 zcmV;i08an40>J^07=Hu<0002(-QrRJ000kAOjJcIT^TWR98!TCZ<8Z^oh6xxX?_3z z0BuP`K~xCW4UNGO0x=8&H8&IhxfFmM7XY>zz)Jr$k&k8{yCcxV$stq+BZCkREH!2& z?^y;@$>ak&?_Rk!YMWhy1uxCdO2_beyeT`mo>y^$dex~4vMTE22#m-d@7)N+H+-G1 fW~z@vSL)0kP%jqdNi3`M00000NkvXXu0mjfBsN0m diff --git a/mods/farming/textures/farming_onigiri.png b/mods/farming/textures/farming_onigiri.png index 86ee7c68e993143836a2ac883916e7ce2fdea6b1..e1bf0bc17cc69c5315073f0866bf5bfb5955f3ee 100644 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWWysIb(AO}wGrq8E+U=8z z?q1*Fx1{qTP?oVI$S;_|;n|HeAjjR)#W95AdUC=6_K27mo&!A7CkUi(Xjq-C5z(Ql zqGG~wq=1!a!<_Doo!#6W4|A3*NnuKo(B|UObe3#NXfvL$km(v<@&aatEGZuMxPP0s Q0F7kuboFyt=akR{0M0%(WB>pF literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@o&cW^S0K$RBfNU?3+wVhB9w@G61v$?EN8<}8jiO{|_9dz*}Wo6khc yxX8{~q*J9FazuJ|2g5u5-3 delta 44 zcmcc1c%5;A3gf(qs*@Cyzr3(xW`4Z<;Cw%Z#0-7asH2ykF#v(5tDnm{r-UW|ihdB( diff --git a/mods/farming/textures/farming_pea_3.png b/mods/farming/textures/farming_pea_3.png index 980d6eaaa3c89e0cd2fd926c836aa76d604920b2..5cfd90e31a3f2716bbfe4d031a395f0b48c99976 100644 GIT binary patch delta 415 zcmV;Q0bu^G1Gxi`B!7TOL_t(I%gvI_D}+%L#((#H$4oPt8B>PHO8E*YB~9^e6blx! zv9O!%9kTKl*x6dVvz;XV0VR^fD@{>KQZ&gzX@()+#(Z51FG?m88_(+8bIyIvbMAfM zUm|KT9krOPq*p7G?*nF{7VYl|84m@&YZNjb0=NW%)SRWr`hWLC0s>hu%OoKHm_f3N#;EvjpIZ9fIs_d%0%GOtc9B?K4=`fl0DKrJ%bX(LS2wb2)45ee4 z4fM-+X#JhQ0e>W8kwnkiaW^Sff+l+2rC!|4!u5QBUT7sRls(7`D4^>@!RKWgO3dSW z04=wyGEHMB2f}wX5Q`*yz^VOan;*aMjR#uPb;A*^dx2gQJO%Qx@VT>MAD9M73e|%+ za{^5%@}9|GxlwL7m0a_be(S_H=mqf;fun3C>$ii;KNu*e0Iwqadr5_aYD@qC002ov JPDHLkV1nI!!2tjO delta 405 zcmV;G0c!ra1Fr*+B!6~EL_t(I%gvI{D}!+y$6w#)*^f4Dvoazlq!rIaap16v zgWIm(k(0l`&DG)AbxHgKN+gFzT2V?;wB(@H#>mW%*=%12L&+j1@7w3|d4GPt;a?(Z zF&nj*{|#5G;U56zq84564jB&xz9R}54*^^O0qQT(6nqDw<$rh*xCM?(gMJwgE#pg# zlWQ4^MG|{oC&&YS?2lzU=_XuR!!&pREFdVC26|{bokD-sYOUY`biC;k3a&ElT%BC$ zJ2VYOfIAw_7N}?y?1lB}Dmz~b6oG5u%Y?~x&7djpWICf30pJq-X%tb>$aIH+U0_hg zL!0jfY(O#=Nq+?2%>ATX3z+C7r+Rj^3Fp%h`b!5Tp{k8MfC73yCiqOQLWxD3_n;M5 zRkn2kWkYzchhmY07dWrpZ2RL2-)Nv+-87%z%nS6g;L%@-g;S1S>%cTf@=`a9qbSgn zqU4_blN#lgL&*(y39~v5A}%x#f1XR{EWzb9|dlb`?|!h;|V&6$Akv7v-hA*)IkHt)7K0T zy#y*8bZveEK7X;+F;MSF*GE`C++cawCxQf$fI)U?k#;g5wU&0CoPF=wTos4vYYco0 z2xUlLdkVnutk+S24zMcvYb91r-9akI)P{8y%NVUOL@249E&*?V3yx>aY-IpcE8}zL zHp=;`^P=ElbmQtz@`Q-DK4A2Q=nADj$^Z&Dv*lp>v2{j?2gKJwcAl!0;x&|s$gYl7 z#^PHueHv~o?Xy&_>(zh79AfpY}rb;h;g;+-*m7<%v%|UQx yW6GIMg?sJE|Bj4M>?L6CI%#J%F9&t7KmG!`YN3j8x-&%p000037Dc79K^N?6+tL^T5l0L zi3D66yU9gY{{#BL8&)xIz9)ogc?j1gS?vI&^b)p-DVJ3n-9i zhlqX(84bHOKYsxqvvUmOTe8h@whp&g8}*5y0ck)dS6`u<4#{k0oyTY1xi(kCq2?w- zA3`E6BGH`%a6Ic(+#mop#9*V$`l;J!5(XNhs*5%B&LkqzXq+wsuYvQ9XU*?)0Mx2e zi)XjTrJD1+=%V+M@>lwVNOs<%_ebansXiJ2BrvvrcB3??xXIM6mu8?dA^ia?)^s41mlYP+Qf@@QwpS_G32sA0_Wp435 sI18q9<}%U0_KbaRx`V4Ef;tDD-^YuhS;ZMn$_tUP?ByGTg7 zi9)Yyw;Mrt;Z4^`7lN0YP~;#;=pv}ZFv?&TE~prGwJ>$!ac$Z>%;`>V7k-)r(jOk) z=fv-Y_jz6c;0^K~2>V?0Xz?I$6PWb5Xwh;G;1zJ%=b{o#ihp+Y0bXyACtCa#umGL> z(RDxtM)ne(fVvCtxflgr16Q@06Bv-Q7e9Lf>Kg!APzI$0nJOFd1k@={KwSY4do*v5 z4&X6x3Frqp<#Y=m(%9xyN*5wzO>5?4vo)W~>oPle0mOwTpaR4J2gkx`wrmkmw$utF zT*><9}0BM4OmvSUy#I!Wmy$#qKOmCKKyf1=s*=7`F0=ToJNR<8zS$f*8|P zAirQ;ZDhT26R9tri7a&W-5yh--xq3=D;q}@zzpapS&p!6&SP1#dY;!!_*}G;wq>y< zswgN0Oj{#B7tjshcZcGBcL)W@04t(2c8kQBdngi$V}G^YAPzPw^rY-{q{?-~&fWrs zfo4xYeRpt-lYV!|E~nL2r2amsGKns0k~`*Viq_{0Mm?m^ad!4+w? zSeT!Q0e{@^yF;S~mTP|#KW28aSgb`mZS{B7$XVMkW(0v{r*7uZuvv^h;SNEJlCo_bc1QyS6*??oS`SO&|$#m?(N)UK<~X++E!NX~Pcb8Foniqu>A6 V{17oLRuBLH002ovPDHLkV1n7+Lu>#5 delta 681 zcmV;a0#^OU1;GW7B!7rWL_t(I%axK_NYhaq$3N%4&E3*D-E6SvB8df=S$X-Fjz~y? z2t%K1uNy)5;7gB@^dR`S2}KTqgdTz}7)BWE!97$+ZwvE=I$cwnmpR?-^w57Mf)9P+ z@VoLkaL!i%_``exCITLMwR#A+4NL|+v}ipi@CG;?@KA*&MSqL^fZreHnO1)QEI=3k zbOTU)k>(H6 z0XzjR0RupnoNfU`8vDG8Z81vLxNc51Tl2ZRF0-2#KtlLJDnJ5oa%>{awmmA!ms)|O zTyrmzJZ{38n17;jwu$+MrNto|L1GRE3WC*-qd+ z(CiDTANPObWY8ON$Z53|seeGKT%yYw<*vCJ)5g4^L=Wi-pN}O@`pez z8Otk-TcBiyF>JZi_6vZJKo*$M-fXN05Sk&JB}PNM%3YC7mwjtooy|>P+!TPQWJ;z~yZKKgZP2I`t-ekuX1H(jz=u7`z*?iH` zejWsdg8;o22c#@Kip~Bi)&y@Q+-!JtGMsOPwyOXK{00000NkvXXu0mjfcom4t literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw|3?!p1cPs@`asfUeu0T4Too5P<&^A7?+lRzo zUvvEMpz!Y9yYJt>|Ns9#?=0r`KoyK7L4Lsu4$p3+fjCLt?k)@+tg;?J&T>x|#}JO| zspky&4lD4m1}qN}Db2p3n9b_UH=$9EVNs8y!CS^lXEbC#_^?})F-~21|MX^^XtooP z3)!NtzFJh~y0%A4dGV6UvtFuYx6Z66+iA<-@mMYJ(YGxZT-Sb=E#zcS7gs)|%En!= zFX&a%?>m=1DeftL->G-f#7*yyi`i^p;d$cx^KQI|G+m#!$K$BR|H~I8vt$##mp_?Ji@SL&9$u$42 z_Z#X|z3x}N{=fIv7!-nIQgk>7iDPo`QH2qL!trDK#g$DUU@(<^DTQFE=z8bPp$?@xk|B zdZ1|wJ~w^;ie9dTbN#zUvvpOyU;85Ba2@^U4LjNP;(c100009a7bBm000kR z000kR0jNKxX#fBN4M{{nR5;5eliN;QRT#&A`#gI%mFbj{8fcYT4JE}+XlrZDkcOrb z6QdVCL*Ky*-@r#O-g{SrEkr!T6wJUl!$9@IQ+k2`GliywS^F@1FTdHdu2$A}{2!L_ z^<7UVn14*4R5bR$w0+W!;`*3HJ4&cGUCcCM`ZR1E=1HS=cHeACUYcSiosfc`FjOKt zcWxa-?veNaN{DZRRsGKxCq8HBt#Xw&8WDT8ECvC-&b?=WF!Gsx61wE-Kg9uKXTDf5>U zm8zW;fAtOATOH=De3TVe*K;jmat1BO7tY-VSX+~$zvD_bNwCueKyR* z*dc~tQLD;(;xKR_;P0x>se*W6Po%7Tfq(8!4^x+wKf%jIyf<#K@id_%-tb?+{YH-2 ziyap0CL;xlH|(D2y2tLW-;hqjeFo)ni1h-N8zSq6P+K!H;y#%VSo+!Lv(E$WeH)=X zQDamS3kFlDWO&Ho@HpgYO`!bcGJDCTR?9OprzzwmNt#X$DOQ&?lP94(3$mguU92G|&*aIxo(#&Am^su{9RJJumx#t{pYliYPu7m;4CQ2cOldU4?5QhG^5L)e19gOW%1Mb=-{I?|*Ozw2$vv rnPKY99LJ$%Lk7MUHJS(DSO)(C>%3!cq4yZ!00000NkvXXu0mjfpBP@g delta 242 zcmV$#@Rfj|$_f1IMgU;Ku;V3THF`0050iL_t&t*A31w4#FT52H^h| zp2dSS9h{sPa5GApmTSo1Bc4JW`dB3|>}?42C?b%$3{o9K#9kgLW)Mx+gWVR0qw`UUfgW=DPCld0!6?-NcysT&^%Yv$ sYxcV_UYe)%i&OORDfx!Ip;&SE2Zrxb690RQ+yDRo07*qoM6N<$f>fhp3IG5A diff --git a/mods/farming/textures/farming_pumpkin_face_off.png b/mods/farming/textures/farming_pumpkin_face_off.png index df7017147ed7088768b756be54fef4da23b1b5e8..ed46e8339a649b4a5d645207cfd12308108ed501 100644 GIT binary patch delta 574 zcmV-E0>S-*0?P!D7=H)`0000V^Z#K000C}kLqkw$V`BgSD3NuMJxjw-6owzGqG+Xq z4n-6?RB@;v3gW1B=u$+gf?rFLrmc|1khDl~68vt$##mp_?Ji@SL&9$u$42 z_Z#X|z3x}N{=fIv7!-nIQgk>7iDPo`QH2qL!trDK#g$DUU@(<^DTQFE=z8bPp$?@xk|B zdZ1|wJ~w^;ie9dTbN#zUvvpOyU;85Ba2@^U4LjNP;(c100009a7bBm000kR z000kR0jNKxX#fBKgGod|R5;6HV4wx~c)j*NHZg4CST*Z1Frz4jiJ^;w028`q8_hP7 zT+4(@;_khNq#J-s6HI*J)@TNP&1OctCZ5|G_n%?F0D8z1idvk}haQ#aayT_3$2B%K zwzR;6EjRR$(*m}1fvg^EfRXniMo<*t1D6^8G7=0#kn`}-=0SOT>pYF8}}l M07*qoM6N<$f|a%nxc~qF delta 243 zcmV3C^`%>dz z9OD4;cp3=0@u#}+1SP`_EJklYz>XWiNU(V+{nE!oxlXFGC2Y15N_F`bS$?BJ-#N&D z=ZTMC-J>0Nd5D%_Od|$+x_STr002ovPDHLkV1hXvXZZjC diff --git a/mods/farming/textures/farming_pumpkin_face_on.png b/mods/farming/textures/farming_pumpkin_face_on.png index fa71c9d474c140e8b123c3da04fe468ad6d2846f..4708c9d6917c0a2de35a711723a43e5a74e7690c 100644 GIT binary patch delta 651 zcmV;60(AY20+$7l7=H)`0000V^Z#K000C}kLqkw$V`BgSD3NuMJxjw-6owzGqG+Xq z4n-6?RB@;v3gW1B=u$+gf?rFLrmc|1khDl~68vt$##mp_?Ji@SL&9$u$42 z_Z#X|z3x}N{=fIv7!-nIQgk>7iDPo`QH2qL!trDK#g$DUU@(<^DTQFE=z8bPp$?@xk|B zdZ1|wJ~w^;ie9dTbN#zUvvpOyU;85Ba2@^U4LjNP;(c100009a7bBm000kR z000kR0jNKxX#fBK&q+i z27{{z@xPC;voQ>SNpc9Sr!sy9G8I#5*ZjlQTp2pA_oF2bqIZ62224AfE2>`$ZWWL zHv>E{SukP%1fqeO-XDbUfox`=&<_|N6x|F5QKJ#$B#^0K0F6TQ=;SmZ5PjfqxN8p% lsQ)jUQE8|+ve@7O0D^sB*o3sty#N3J07*qoLC`|wW delta 253 zcmVQ0b?d3Vq<0y z025;~V`Fn@F#tA$msMoRI3oZyIm|_D%#$+!6`ai2UCnhe0CqEd&C^!iLpA_YOx`$Z zRyt(>Ry6K~SXirt09CM6ISB`AQvfxCbDW%fdNTl1WXH|U+{7~gHBHUl;N9Fq05;9- z9%$j*LjV#T9s_2hRv`cbV8vt$##mp_?Ji@SL&9$u$42 z_Z#X|z3x}N{=fIv7!-nIQgk>7iDPo`QH2qL!trDK#g$DUU@(<^DTQFE=z8bPp$?@xk|B zdZ1|wJ~w^;ie9dTbN#zUvvpOyU;85Ba2@^U4LjNP;(c100009a7bBm000kR z000kR0jNKxX#fBMRY^oaR5;5`Q`>HvKolHc0UO80*R)L(HHs9q>O+(->QD8*D)lW= z9-8J}#db^pgJEGi>tnZFX~nX0&YU@yb-sOtnRJ2U9&q&vbX_3T4ldpqmX&4 zXA0_oTUqiQfs>Qni=b&-q(ZQjOQ(Q%?}Y!p+<%Xl+U$}L6}uZvrciQpc247%h)rz` zJUlaZIyj8zv)BdgO(ocxf!u)7s+ykcLaEn?80BuhMu!D6Jlia0$COY4dV^hV+*I1w z;HAdj#SGvvvSQvIoi~pn(@d)^9z?rZ9RbCJ&rjMMWzXynkw4Xw#x%i}pjfCCBh?I0@m{xf zE7V#eS&(QB%-0I4<;3W;!iqzllRc|^Jl%U3bt@!!fakT3cu{X(X5RS3-G6OoAJt37 z@zoK|Ou|PpMqgF9=Cl2TiWxPG8sTc;W7acxs};U4J2>rY+@xx&>JRbJ?_3gj8x2wb O0000R21GVAU)nWd*!`N7~n`{ z010cW1AHG&Tvrpj3qO9}kTa+qkj7x)F=};Jl&44~OdHa6BCfbR% zh~XFyit`iQ@<{YogY>%z643EYje7pgUPT?_!qPgmSDd*vQ)n_EZ`!KJ@dZ7-CN<1( RV1obv002ovPDHLkV1mO?Sa|>d diff --git a/mods/farming/textures/farming_pumpkin_top.png b/mods/farming/textures/farming_pumpkin_top.png index 79283454ef1f0d5ab418e9c6366b49a5783c1579..6b8e91bb372fd9f58d72c5520cceccf6106a86b1 100644 GIT binary patch delta 592 zcmV-W08vt$##mp_?Ji@SL&9$u$42 z_Z#X|z3x}N{=fIv7!-nIQgk>7iDPo`QH2qL!trDK#g$DUU@(<^DTQFE=z8bPp$?@xk|B zdZ1|wJ~w^;ie9dTbN#zUvvpOyU;85Ba2@^U4LjNP;(c100009a7bBm000kR z000kR0jNKxX#fBKl}SWFR5;6HU>F6|2fXh5|M^td{}Zd81zod(%nt?z83u-j4DA0C zlzuYYeJsdu`1d!k{HHrV8PN@3Lf5RW`jg?|K?Vj}RxT8U^7arlSPekdeDgLtToPnE zG61PTH%WvMn+rgOfLsA`GAKMiwu8WfCmal)cYb8V8U`SV2T;=?-e8CO8x$V@l`%C_ eB^E{j0|NlbdPHHZpucDU0000$#@Rfj|$_f1IMgU;Ku;V3THF`005gwL_t&t*8z|KZ~p*QYkar1 z$7@vpSG&i&d&$Sw0Lz@&+??5c+W@@ToZG$G{k#BqoyoQldwINf0K6audg>dOya2*N zKyfiAy~_Y3NI(-20xi}6!X$(N5lBLJ0Bdq0AQJ*D%K%r)ws$vY+_nI`-Iuj?eVy9? zYsuW7yPes00C%0q+?|})#sFKroxPjM%XI)%YkX(CXS`L{NkypzQ5=o{0000G*`f(dW)@(X5gcy=QV$dU1MaSY+Oo}8c{ q+|k9v$U5|(Cy6V#K0gT$rvrHrN{_W$KdJe=d#Wzp$P!m{uiqN diff --git a/mods/farming/textures/farming_rhubarb_2.png b/mods/farming/textures/farming_rhubarb_2.png index 71845c750563c2898831177777aef51105c85b4a..01585b1bee3fcf44ad3e39e1cd562728576e0616 100644 GIT binary patch delta 101 zcmbQiSUy1_o{5=(fgx$G_$MI68Q>G*`f(dW)q B8QlN? delta 135 zcmXS)!8k#po`so#f#L1lM?pY}Kfou%m6M5KldEgcBKvdA%~=OM&%0_z0;L#Bg8YIR z9G=}s19HqgT^vI=t|uob@NclNG%&Dako42h;?vVoP;_Gxa}^V4mh5rhVb*9q*lJ5PR=G**PuoA=bD?d4tkz<)sAFfU|=i>@(X5gcy=QV$T9bHaSY+Oo}8e- zzrn)Nz`&A0(oaW=Pftrh(Tz>aRZO5+vd4jkS)=)2!$FB-1`S3t9`dlMurXYgWj?!y SS9}rB2nJ7AKbLh*2~7Ye$0BC{ delta 130 zcmV-|0Db?M0jB|wEPGufB(gY kHXCwag*}=LE64#KJm_czS@%>8M*si-07*qoM6N<$f&s!ap8x;= diff --git a/mods/farming/textures/farming_rhubarb_4.png b/mods/farming/textures/farming_rhubarb_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b412f7e0105cdf29452d5c44e378ae73745dd3c0 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bKe4jKI@=o z!oo>#3(3IS&|cxLoW%%h0DVbHM{9#=G^)+7>Mg zc=+Jp+zIjmLhQNf#xw+RozDKEWt&^CE*a@_PucJJ3W1 MPgg&ebxsLQ0P7VvcmMzZ literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_rhubarb_pie.png b/mods/farming/textures/farming_rhubarb_pie.png index 1f77b535cc6a30729099d3ba2f1cbe7f2c8bdf08..d5593260dac698d10448cf403c42aae518e94cd8 100644 GIT binary patch delta 247 zcmX@c*v>RTqMn19fq_9omp>Rtg$MYAxB_V)NK{PEP)W?zimK6UsnKt2G^p&=1IBD;Wved0LUOQ^-&d-QB zJ0tbXtgvSXn`6H-X8_G*ED7=pW^j0RBMr!j^K>b243W4zxBnv70R;}%#cN%+Dt_4z zb^ZVUb4z)z6}t<*6O=be>pi7W%(mDl`JQldJ?lwU*8s=L&9cwulxi87XgW`sm)v7? v%+vbYYoB||{aF~ciqG54>*%QPa_RoKS{t_NuGjpZK_2pS^>bP0l+XkKmZ)KS delta 182 zcmZo?I>tCbqMn7Bfq~)e-A6${N;<$N#I+=~c(JurmcQ|4XP1qh-n#>X>Qj8W^24W9 zCoc~+Ed(lKED7=pW^j0RBMr!j^mK6y;kcfhaDe^B>C@Z?N;YoXXwkvCq)}%9Lx-7} zPQn8LGc#UZ)4YTS875_-B0Q`{R!qIjtgO-!GmNaP^qWLjg(W1eSXoKUxYTfK<`pX` h1vO($&4jIj4BJx$XS(QYx(c*~!PC{xWt~$(69D0SJLLcX diff --git a/mods/farming/textures/farming_rice.png b/mods/farming/textures/farming_rice.png index 3d64c7e25533bf3c6770a941d11118929696800d..9b42a346df15bb4038930eaa557ebbc6358a7c73 100644 GIT binary patch delta 174 zcmX@gw2yIuL_G^L0|Ud`yN`l^lth3}h-+d2gSEAFy02DChV#6JsHeA1ynlT1=hv49 zPNu&Fs$nb%@(X5gcy=QV$O-XuaSY+Oo}8e-wPS~AiT3TCE+Q2|dOH*^Fg|>mgs*W8y78tOE$f!5+B(t)ysV+#`pvSf#NtLz5 amEpid{_rEgkJbY%VDNPHb6Mw<&;$UW%{+Ag delta 310 zcmdnTc$8^^L_G&H0|SGGE`KnPstE82aRt&#mMmGbX3dr@TefZ6wr9_tef#zuI&|pB zks~Kho;-8r%+;$`Z{ECl_wL;X4<0;z{P@kAH*ep*efRF&moHzwef#$P`}czf51u%2 z;@r7&=g*(Nc=6)3Yu9evxN-aT?K^kw0Chco{v4>~!-o%_K7IQ9x&HIluU~)s`0@Y$ z|J10hZ-ADIl?3^L9D@ZYp5VC#6i)MWaSV}=WIf2rbjW~#Wy6DO55p1+zWn>|ECkYY zAd!zj!#l#1!C=Xossn7wGk6b3O<`h?c(2RgFi*Ue;r68aUs)QWFI|mdTvDrlSAM<> u^N($@yKIW;{x>{TF+FK{ma9P%Xik0ba<;xHjio*yLp@#nT-G@yGywqmG@PdZ diff --git a/mods/farming/textures/farming_rice_seed.png b/mods/farming/textures/farming_rice_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..8a84f58d063488a2a4b276e7cfd55a0bd19e7ce9 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ1=7!NZhLWO_p5vR-#;OXk; Jvd$@?2>?=mHJJba literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_spinach.png b/mods/farming/textures/farming_spinach.png new file mode 100644 index 0000000000000000000000000000000000000000..2e7d519abfef1b0d7b6a0f5bb728f9d02ebd94d9 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWWysIbvJ*D)61R<#_Q+NU zs#Nve>BZ#0 zro9IWF_r}R1v5B2yO9Ru7<#%mhHzX@PFTQN&~QmdP2g6GYwJ;lBL!t)Mr_`zBsf=U oG)VY(HF+i6x_RWr%}z#!teq?oH-Ect1ZrmRboFyt=akR{060}EGynhq literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_spinach_4.png b/mods/farming/textures/farming_spinach_4.png new file mode 100644 index 0000000000000000000000000000000000000000..9435bc66d4d0d9ad7a3ae6435381aece9d87539d GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b1=3n}!iMf*W&skmQPMqq zX?;K;#*!evU^W^E!_YB literal 0 HcmV?d00001 diff --git a/mods/farming/textures/farming_sugar_cube.png b/mods/farming/textures/farming_sugar_cube.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9b83527d68c34355bf46c180497d8925efdb49 GIT binary patch literal 315 zcmV-B0mS}^P)(| z*4EqG+uYpT-QC^Z-rnEe-{9cj;o;%qgww2>+9|9 z?e6aG@9*#M@bK~R@$&NW_4W1l_xI3dO#1);0H{esK~xyiMUKmI!!Qg3QMZVr2O(0j z;`sl6w5of^V1~HtZ~+Dj2Qw4JHw)?zKM8>Hdi9j7Tax1eu_-L8uR3h|BWi$Q$=9uD zix{1kjkocNd=qWPUZkg$ChYiPYf5apSuXu1EZlSDmR~cL<;j;qmgY}Ui