From e93a59883933ee1c52ef23f367f61877a99cb4e5 Mon Sep 17 00:00:00 2001 From: FreeGamers Date: Sat, 6 Jun 2020 03:12:55 -0500 Subject: [PATCH] restructure bee mod. fix honeycomb recipe bug reported by noodles. add logo for game. --- menu/icon.png | Bin 0 -> 259 bytes mods/bees/crafting.lua | 61 ++ mods/bees/craftitems.lua | 38 + mods/bees/init.lua | 552 +------------- mods/bees/nodes.lua | 405 ++++++++++ mods/bees/tools.lua | 42 + mods/scifi_nodes/README.md | 4 +- mods_disabled/farming/.gitignore | 1 + mods_disabled/farming/README.md | 66 ++ mods_disabled/farming/README.txt | 40 + mods_disabled/farming/api.lua | 401 ++++++++++ mods_disabled/farming/api.txt | 64 ++ mods_disabled/farming/compatibility.lua | 172 +++++ mods_disabled/farming/crops/blueberry.lua | 96 +++ mods_disabled/farming/crops/chili.lua | 101 +++ mods_disabled/farming/crops/corn.lua | 124 +++ mods_disabled/farming/crops/cotton.lua | 157 ++++ mods_disabled/farming/crops/cucumber.lua | 65 ++ mods_disabled/farming/crops/garlic.lua | 135 ++++ mods_disabled/farming/crops/melon.lua | 94 +++ .../farming/crops/move-to-crops/carrot.lua | 104 +++ .../farming/crops/move-to-crops/cocoa.lua | 244 ++++++ .../farming/crops/move-to-crops/coffee.lua | 97 +++ .../farming/crops/move-to-crops/grapes.lua | 265 +++++++ .../farming/crops/move-to-crops/hemp.lua | 260 +++++++ .../move-to-crops/texture/farming_carrot.png | Bin 0 -> 220 bytes .../texture/farming_carrot_1.png | Bin 0 -> 108 bytes .../texture/farming_carrot_2.png | Bin 0 -> 111 bytes .../texture/farming_carrot_3.png | Bin 0 -> 113 bytes .../texture/farming_carrot_4.png | Bin 0 -> 119 bytes .../texture/farming_carrot_5.png | Bin 0 -> 123 bytes .../texture/farming_carrot_6.png | Bin 0 -> 129 bytes .../texture/farming_carrot_7.png | Bin 0 -> 144 bytes .../texture/farming_carrot_8.png | Bin 0 -> 160 bytes .../texture/farming_chocolate_dark.png | Bin 0 -> 194 bytes .../move-to-crops/texture/farming_cocoa_1.png | Bin 0 -> 230 bytes .../move-to-crops/texture/farming_cocoa_2.png | Bin 0 -> 238 bytes .../move-to-crops/texture/farming_cocoa_3.png | Bin 0 -> 446 bytes .../move-to-crops/texture/farming_cocoa_4.png | Bin 0 -> 253 bytes .../texture/farming_cocoa_beans.png | Bin 0 -> 187 bytes .../texture/farming_coffee_1.png | Bin 0 -> 135 bytes .../texture/farming_coffee_2.png | Bin 0 -> 145 bytes .../texture/farming_coffee_3.png | Bin 0 -> 171 bytes .../texture/farming_coffee_4.png | Bin 0 -> 192 bytes .../texture/farming_coffee_5.png | Bin 0 -> 192 bytes .../texture/farming_coffee_beans.png | Bin 0 -> 204 bytes .../texture/farming_coffee_cup.png | Bin 0 -> 164 bytes .../texture/farming_grapebush.png | Bin 0 -> 144 bytes .../move-to-crops/texture/farming_grapes.png | Bin 0 -> 175 bytes .../texture/farming_grapes_1.png | Bin 0 -> 255 bytes .../texture/farming_grapes_2.png | Bin 0 -> 290 bytes .../texture/farming_grapes_3.png | Bin 0 -> 307 bytes .../texture/farming_grapes_4.png | Bin 0 -> 330 bytes .../texture/farming_grapes_5.png | Bin 0 -> 338 bytes .../texture/farming_grapes_6.png | Bin 0 -> 347 bytes .../texture/farming_grapes_7.png | Bin 0 -> 358 bytes .../texture/farming_grapes_8.png | Bin 0 -> 350 bytes .../move-to-crops/texture/farming_hemp_1.png | Bin 0 -> 115 bytes .../move-to-crops/texture/farming_hemp_2.png | Bin 0 -> 122 bytes .../move-to-crops/texture/farming_hemp_3.png | Bin 0 -> 129 bytes .../move-to-crops/texture/farming_hemp_4.png | Bin 0 -> 132 bytes .../move-to-crops/texture/farming_hemp_5.png | Bin 0 -> 142 bytes .../move-to-crops/texture/farming_hemp_6.png | Bin 0 -> 148 bytes .../move-to-crops/texture/farming_hemp_7.png | Bin 0 -> 169 bytes .../move-to-crops/texture/farming_hemp_8.png | Bin 0 -> 174 bytes .../texture/farming_hemp_block.png | Bin 0 -> 149 bytes .../texture/farming_hemp_fibre.png | Bin 0 -> 144 bytes .../texture/farming_hemp_leaf.png | Bin 0 -> 172 bytes .../texture/farming_hemp_oil.png | Bin 0 -> 164 bytes .../texture/farming_hemp_rope.png | Bin 0 -> 122 bytes .../texture/farming_hemp_seed.png | Bin 0 -> 147 bytes mods_disabled/farming/crops/onion.lua | 76 ++ mods_disabled/farming/crops/peas.lua | 97 +++ mods_disabled/farming/crops/pepper.lua | 115 +++ mods_disabled/farming/crops/pineapple.lua | 108 +++ mods_disabled/farming/crops/potato.lua | 111 +++ mods_disabled/farming/crops/pumpkin.lua | 194 +++++ mods_disabled/farming/crops/raspberry.lua | 62 ++ mods_disabled/farming/crops/rhubarb.lua | 75 ++ mods_disabled/farming/crops/ryeoatrice.lua | 162 ++++ mods_disabled/farming/crops/tomato.lua | 88 +++ mods_disabled/farming/crops/wheat.lua | 241 ++++++ mods_disabled/farming/depends.txt | 5 + mods_disabled/farming/description.txt | 1 + mods_disabled/farming/farming.conf_example | 35 + mods_disabled/farming/food.lua | 220 ++++++ mods_disabled/farming/grass.lua | 46 ++ mods_disabled/farming/hoes.lua | 362 +++++++++ mods_disabled/farming/init.lua | 693 +++++++++++++++++ mods_disabled/farming/intllib.lua | 45 ++ mods_disabled/farming/license.txt | 144 ++++ mods_disabled/farming/locale/de.po | 262 +++++++ mods_disabled/farming/locale/farming.de.tr | 25 + mods_disabled/farming/locale/farming.es.tr | 25 + mods_disabled/farming/locale/farming.fr.tr | 25 + mods_disabled/farming/locale/farming.it.tr | 25 + mods_disabled/farming/locale/farming.ms.tr | 25 + mods_disabled/farming/locale/farming.ru.tr | 25 + mods_disabled/farming/locale/farming.se.tr | 25 + mods_disabled/farming/locale/farming.zh_CN.tr | 25 + mods_disabled/farming/locale/farming.zh_TW.tr | 25 + mods_disabled/farming/locale/fr.po | 259 +++++++ mods_disabled/farming/locale/pt.po | 258 +++++++ mods_disabled/farming/locale/ru.po | 262 +++++++ mods_disabled/farming/locale/template.pot | 258 +++++++ mods_disabled/farming/locale/template.txt | 25 + mods_disabled/farming/lucky_block.lua | 77 ++ mods_disabled/farming/mapgen.lua | 146 ++++ mods_disabled/farming/mod.conf | 1 + mods_disabled/farming/soil.lua | 74 ++ mods_disabled/farming/statistics.lua | 174 +++++ .../farming/textures/banana_leaf.png | Bin 0 -> 421 bytes .../farming/textures/banana_single.png | Bin 0 -> 200 bytes .../farming/textures/crops_garlic.png | Bin 0 -> 725 bytes .../farming/textures/crops_garlic_braid.png | Bin 0 -> 1346 bytes .../textures/crops_garlic_braid_side.png | Bin 0 -> 1309 bytes .../farming/textures/crops_garlic_clove.png | Bin 0 -> 605 bytes .../farming/textures/crops_garlic_plant_1.png | Bin 0 -> 165 bytes .../farming/textures/crops_garlic_plant_2.png | Bin 0 -> 184 bytes .../farming/textures/crops_garlic_plant_3.png | Bin 0 -> 278 bytes .../farming/textures/crops_garlic_plant_4.png | Bin 0 -> 403 bytes .../farming/textures/crops_garlic_plant_5.png | Bin 0 -> 462 bytes .../farming/textures/crops_onion.png | Bin 0 -> 841 bytes .../farming/textures/crops_onion_plant_1.png | Bin 0 -> 182 bytes .../farming/textures/crops_onion_plant_2.png | Bin 0 -> 192 bytes .../farming/textures/crops_onion_plant_3.png | Bin 0 -> 205 bytes .../farming/textures/crops_onion_plant_4.png | Bin 0 -> 314 bytes .../farming/textures/crops_onion_plant_5.png | Bin 0 -> 652 bytes .../farming/textures/crops_pepper.png | Bin 0 -> 441 bytes .../farming/textures/crops_pepper_ground.png | Bin 0 -> 373 bytes .../farming/textures/crops_pepper_plant_1.png | Bin 0 -> 182 bytes .../farming/textures/crops_pepper_plant_2.png | Bin 0 -> 236 bytes .../farming/textures/crops_pepper_plant_3.png | Bin 0 -> 299 bytes .../farming/textures/crops_pepper_plant_4.png | Bin 0 -> 457 bytes .../farming/textures/crops_pepper_plant_5.png | Bin 0 -> 492 bytes .../farming/textures/crops_peppercorn.png | Bin 0 -> 220 bytes .../farming/textures/default_junglegrass.png | Bin 0 -> 262 bytes .../farming/textures/farming_baked_potato.png | Bin 0 -> 321 bytes .../farming/textures/farming_baking_tray.png | Bin 0 -> 149 bytes .../farming/textures/farming_barley.png | Bin 0 -> 230 bytes .../farming/textures/farming_barley_1.png | Bin 0 -> 140 bytes .../farming/textures/farming_barley_2.png | Bin 0 -> 151 bytes .../farming/textures/farming_barley_3.png | Bin 0 -> 209 bytes .../farming/textures/farming_barley_4.png | Bin 0 -> 229 bytes .../farming/textures/farming_barley_5.png | Bin 0 -> 246 bytes .../farming/textures/farming_barley_6.png | Bin 0 -> 271 bytes .../farming/textures/farming_barley_7.png | Bin 0 -> 277 bytes .../farming/textures/farming_barley_seed.png | Bin 0 -> 145 bytes .../farming/textures/farming_beanbush.png | Bin 0 -> 227 bytes .../farming/textures/farming_beanpole.png | Bin 0 -> 323 bytes .../farming/textures/farming_beanpole_1.png | Bin 0 -> 242 bytes .../farming/textures/farming_beanpole_2.png | Bin 0 -> 264 bytes .../farming/textures/farming_beanpole_3.png | Bin 0 -> 297 bytes .../farming/textures/farming_beanpole_4.png | Bin 0 -> 355 bytes .../farming/textures/farming_beanpole_5.png | Bin 0 -> 353 bytes .../farming/textures/farming_beans.png | Bin 0 -> 193 bytes .../farming/textures/farming_beetroot.png | Bin 0 -> 152 bytes .../farming/textures/farming_beetroot_1.png | Bin 0 -> 105 bytes .../farming/textures/farming_beetroot_2.png | Bin 0 -> 112 bytes .../farming/textures/farming_beetroot_3.png | Bin 0 -> 125 bytes .../farming/textures/farming_beetroot_4.png | Bin 0 -> 125 bytes .../farming/textures/farming_beetroot_5.png | Bin 0 -> 137 bytes .../textures/farming_beetroot_soup.png | Bin 0 -> 161 bytes .../farming/textures/farming_blueberries.png | Bin 0 -> 164 bytes .../farming/textures/farming_blueberry_1.png | Bin 0 -> 114 bytes .../farming/textures/farming_blueberry_2.png | Bin 0 -> 223 bytes .../farming/textures/farming_blueberry_3.png | Bin 0 -> 231 bytes .../farming/textures/farming_blueberry_4.png | Bin 0 -> 317 bytes .../textures/farming_blueberry_muffin.png | Bin 0 -> 236 bytes .../textures/farming_blueberry_pie.png | Bin 0 -> 195 bytes .../textures/farming_bottle_ethanol.png | Bin 0 -> 221 bytes .../farming/textures/farming_bowl.png | Bin 0 -> 145 bytes .../farming/textures/farming_bread.png | Bin 0 -> 552 bytes .../textures/farming_bread_multigrain.png | Bin 0 -> 583 bytes .../farming/textures/farming_bread_slice.png | Bin 0 -> 159 bytes .../farming/textures/farming_carrot_gold.png | Bin 0 -> 207 bytes .../farming/textures/farming_carrot_juice.png | Bin 0 -> 167 bytes .../farming/textures/farming_chili_1.png | Bin 0 -> 113 bytes .../farming/textures/farming_chili_2.png | Bin 0 -> 107 bytes .../farming/textures/farming_chili_3.png | Bin 0 -> 137 bytes .../farming/textures/farming_chili_4.png | Bin 0 -> 144 bytes .../farming/textures/farming_chili_5.png | Bin 0 -> 154 bytes .../farming/textures/farming_chili_6.png | Bin 0 -> 157 bytes .../farming/textures/farming_chili_7.png | Bin 0 -> 169 bytes .../farming/textures/farming_chili_8.png | Bin 0 -> 169 bytes .../farming/textures/farming_chili_bowl.png | Bin 0 -> 183 bytes .../farming/textures/farming_chili_pepper.png | Bin 0 -> 194 bytes .../textures/farming_chocolate_block.png | Bin 0 -> 144 bytes .../farming/textures/farming_cookie.png | Bin 0 -> 566 bytes .../farming/textures/farming_corn.png | Bin 0 -> 197 bytes .../farming/textures/farming_corn_1.png | Bin 0 -> 107 bytes .../farming/textures/farming_corn_2.png | Bin 0 -> 121 bytes .../farming/textures/farming_corn_3.png | Bin 0 -> 142 bytes .../farming/textures/farming_corn_4.png | Bin 0 -> 154 bytes .../farming/textures/farming_corn_5.png | Bin 0 -> 161 bytes .../farming/textures/farming_corn_6.png | Bin 0 -> 268 bytes .../farming/textures/farming_corn_7.png | Bin 0 -> 275 bytes .../farming/textures/farming_corn_8.png | Bin 0 -> 311 bytes .../farming/textures/farming_corn_cob.png | Bin 0 -> 182 bytes .../farming/textures/farming_cornstarch.png | Bin 0 -> 176 bytes .../farming/textures/farming_cotton.png | Bin 0 -> 316 bytes .../farming/textures/farming_cotton_1.png | Bin 0 -> 110 bytes .../farming/textures/farming_cotton_2.png | Bin 0 -> 120 bytes .../farming/textures/farming_cotton_3.png | Bin 0 -> 144 bytes .../farming/textures/farming_cotton_4.png | Bin 0 -> 150 bytes .../farming/textures/farming_cotton_5.png | Bin 0 -> 159 bytes .../farming/textures/farming_cotton_6.png | Bin 0 -> 164 bytes .../farming/textures/farming_cotton_7.png | Bin 0 -> 170 bytes .../farming/textures/farming_cotton_8.png | Bin 0 -> 196 bytes .../farming/textures/farming_cotton_seed.png | Bin 0 -> 150 bytes .../farming/textures/farming_cucumber.png | Bin 0 -> 185 bytes .../farming/textures/farming_cucumber_1.png | Bin 0 -> 119 bytes .../farming/textures/farming_cucumber_2.png | Bin 0 -> 145 bytes .../farming/textures/farming_cucumber_3.png | Bin 0 -> 217 bytes .../farming/textures/farming_cucumber_4.png | Bin 0 -> 275 bytes .../textures/farming_cutting_board.png | Bin 0 -> 189 bytes .../textures/farming_desert_sand_soil.png | Bin 0 -> 637 bytes .../textures/farming_desert_sand_soil_wet.png | Bin 0 -> 590 bytes .../farming_desert_sand_soil_wet_side.png | Bin 0 -> 601 bytes .../farming/textures/farming_donut.png | Bin 0 -> 258 bytes .../farming/textures/farming_donut_apple.png | Bin 0 -> 252 bytes .../textures/farming_donut_chocolate.png | Bin 0 -> 256 bytes .../farming/textures/farming_flour.png | Bin 0 -> 159 bytes .../textures/farming_flour_multigrain.png | Bin 0 -> 161 bytes .../farming/textures/farming_garlic_bread.png | Bin 0 -> 188 bytes .../farming/textures/farming_hoe_bomb.png | Bin 0 -> 190 bytes .../farming/textures/farming_jaffa_cake.png | Bin 0 -> 185 bytes .../farming/textures/farming_juicer.png | Bin 0 -> 155 bytes .../farming/textures/farming_melon_1.png | Bin 0 -> 138 bytes .../farming/textures/farming_melon_2.png | Bin 0 -> 161 bytes .../farming/textures/farming_melon_3.png | Bin 0 -> 177 bytes .../farming/textures/farming_melon_4.png | Bin 0 -> 181 bytes .../farming/textures/farming_melon_5.png | Bin 0 -> 196 bytes .../farming/textures/farming_melon_6.png | Bin 0 -> 219 bytes .../farming/textures/farming_melon_7.png | Bin 0 -> 247 bytes .../farming/textures/farming_melon_side.png | Bin 0 -> 270 bytes .../farming/textures/farming_melon_slice.png | Bin 0 -> 227 bytes .../farming/textures/farming_melon_top.png | Bin 0 -> 272 bytes .../farming/textures/farming_mixing_bowl.png | Bin 0 -> 133 bytes .../textures/farming_mortar_pestle.png | Bin 0 -> 173 bytes .../farming/textures/farming_oat.png | Bin 0 -> 274 bytes .../farming/textures/farming_oat_1.png | Bin 0 -> 114 bytes .../farming/textures/farming_oat_2.png | Bin 0 -> 143 bytes .../farming/textures/farming_oat_3.png | Bin 0 -> 173 bytes .../farming/textures/farming_oat_4.png | Bin 0 -> 190 bytes .../farming/textures/farming_oat_5.png | Bin 0 -> 219 bytes .../farming/textures/farming_oat_6.png | Bin 0 -> 236 bytes .../farming/textures/farming_oat_7.png | Bin 0 -> 255 bytes .../farming/textures/farming_oat_8.png | Bin 0 -> 310 bytes .../farming/textures/farming_oat_seed.png | Bin 0 -> 142 bytes .../farming/textures/farming_orange.png | Bin 0 -> 236 bytes .../farming/textures/farming_pea_1.png | Bin 0 -> 203 bytes .../farming/textures/farming_pea_2.png | Bin 0 -> 215 bytes .../farming/textures/farming_pea_3.png | Bin 0 -> 431 bytes .../farming/textures/farming_pea_4.png | Bin 0 -> 528 bytes .../farming/textures/farming_pea_5.png | Bin 0 -> 705 bytes .../farming/textures/farming_pea_peas.png | Bin 0 -> 659 bytes .../farming/textures/farming_pea_pod.png | Bin 0 -> 597 bytes .../farming/textures/farming_pea_soup.png | Bin 0 -> 161 bytes .../farming/textures/farming_pineapple.png | Bin 0 -> 140 bytes .../farming/textures/farming_pineapple_1.png | Bin 0 -> 109 bytes .../farming/textures/farming_pineapple_2.png | Bin 0 -> 120 bytes .../farming/textures/farming_pineapple_3.png | Bin 0 -> 126 bytes .../farming/textures/farming_pineapple_4.png | Bin 0 -> 136 bytes .../farming/textures/farming_pineapple_5.png | Bin 0 -> 164 bytes .../farming/textures/farming_pineapple_6.png | Bin 0 -> 201 bytes .../farming/textures/farming_pineapple_7.png | Bin 0 -> 209 bytes .../farming/textures/farming_pineapple_8.png | Bin 0 -> 194 bytes .../textures/farming_pineapple_juice.png | Bin 0 -> 167 bytes .../textures/farming_pineapple_ring.png | Bin 0 -> 164 bytes .../textures/farming_pineapple_top.png | Bin 0 -> 143 bytes .../farming/textures/farming_porridge.png | Bin 0 -> 193 bytes .../farming/textures/farming_pot.png | Bin 0 -> 162 bytes .../farming/textures/farming_potato.png | Bin 0 -> 252 bytes .../farming/textures/farming_potato_1.png | Bin 0 -> 132 bytes .../farming/textures/farming_potato_2.png | Bin 0 -> 187 bytes .../farming/textures/farming_potato_3.png | Bin 0 -> 237 bytes .../farming/textures/farming_potato_4.png | Bin 0 -> 283 bytes .../farming/textures/farming_potato_salad.png | Bin 0 -> 325 bytes .../farming/textures/farming_pumpkin_1.png | Bin 0 -> 159 bytes .../farming/textures/farming_pumpkin_2.png | Bin 0 -> 182 bytes .../farming/textures/farming_pumpkin_3.png | Bin 0 -> 199 bytes .../farming/textures/farming_pumpkin_4.png | Bin 0 -> 230 bytes .../farming/textures/farming_pumpkin_5.png | Bin 0 -> 259 bytes .../farming/textures/farming_pumpkin_6.png | Bin 0 -> 263 bytes .../farming/textures/farming_pumpkin_7.png | Bin 0 -> 271 bytes .../farming/textures/farming_pumpkin_8.png | Bin 0 -> 275 bytes .../textures/farming_pumpkin_bread.png | Bin 0 -> 200 bytes .../textures/farming_pumpkin_dough.png | Bin 0 -> 193 bytes .../textures/farming_pumpkin_face_off.png | Bin 0 -> 259 bytes .../textures/farming_pumpkin_face_on.png | Bin 0 -> 269 bytes .../farming/textures/farming_pumpkin_side.png | Bin 0 -> 231 bytes .../textures/farming_pumpkin_slice.png | Bin 0 -> 204 bytes .../farming/textures/farming_pumpkin_top.png | Bin 0 -> 272 bytes .../farming/textures/farming_raspberries.png | Bin 0 -> 230 bytes .../farming/textures/farming_raspberry_1.png | Bin 0 -> 100 bytes .../farming/textures/farming_raspberry_2.png | Bin 0 -> 223 bytes .../farming/textures/farming_raspberry_3.png | Bin 0 -> 231 bytes .../farming/textures/farming_raspberry_4.png | Bin 0 -> 239 bytes .../textures/farming_raspberry_smoothie.png | Bin 0 -> 231 bytes .../farming/textures/farming_rhubarb.png | Bin 0 -> 165 bytes .../farming/textures/farming_rhubarb_1.png | Bin 0 -> 119 bytes .../farming/textures/farming_rhubarb_2.png | Bin 0 -> 152 bytes .../farming/textures/farming_rhubarb_3.png | Bin 0 -> 167 bytes .../farming/textures/farming_rhubarb_pie.png | Bin 0 -> 198 bytes .../farming/textures/farming_rice.png | Bin 0 -> 325 bytes .../farming/textures/farming_rice_1.png | Bin 0 -> 114 bytes .../farming/textures/farming_rice_2.png | Bin 0 -> 143 bytes .../farming/textures/farming_rice_3.png | Bin 0 -> 173 bytes .../farming/textures/farming_rice_4.png | Bin 0 -> 189 bytes .../farming/textures/farming_rice_5.png | Bin 0 -> 217 bytes .../farming/textures/farming_rice_6.png | Bin 0 -> 245 bytes .../farming/textures/farming_rice_7.png | Bin 0 -> 261 bytes .../farming/textures/farming_rice_8.png | Bin 0 -> 336 bytes .../farming/textures/farming_rice_bread.png | Bin 0 -> 392 bytes .../farming/textures/farming_rice_flour.png | Bin 0 -> 272 bytes .../farming/textures/farming_rice_seed.png | Bin 0 -> 201 bytes .../farming/textures/farming_rose_water.png | Bin 0 -> 178 bytes .../farming/textures/farming_rye.png | Bin 0 -> 242 bytes .../farming/textures/farming_rye_1.png | Bin 0 -> 114 bytes .../farming/textures/farming_rye_2.png | Bin 0 -> 143 bytes .../farming/textures/farming_rye_3.png | Bin 0 -> 173 bytes .../farming/textures/farming_rye_4.png | Bin 0 -> 189 bytes .../farming/textures/farming_rye_5.png | Bin 0 -> 217 bytes .../farming/textures/farming_rye_6.png | Bin 0 -> 237 bytes .../farming/textures/farming_rye_7.png | Bin 0 -> 254 bytes .../farming/textures/farming_rye_8.png | Bin 0 -> 310 bytes .../farming/textures/farming_rye_seed.png | Bin 0 -> 142 bytes .../farming/textures/farming_salt.png | Bin 0 -> 248 bytes .../farming/textures/farming_saucepan.png | Bin 0 -> 170 bytes .../textures/farming_scythe_mithril.png | Bin 0 -> 172 bytes .../farming/textures/farming_skillet.png | Bin 0 -> 172 bytes .../farming/textures/farming_soil.png | Bin 0 -> 706 bytes .../farming/textures/farming_soil_wet.png | Bin 0 -> 677 bytes .../textures/farming_soil_wet_side.png | Bin 0 -> 96 bytes .../farming/textures/farming_straw.png | Bin 0 -> 892 bytes .../farming/textures/farming_string.png | Bin 0 -> 166 bytes .../farming/textures/farming_sugar.png | Bin 0 -> 184 bytes .../farming/textures/farming_toast.png | Bin 0 -> 159 bytes .../textures/farming_toast_sandwich.png | Bin 0 -> 175 bytes .../farming/textures/farming_tomato.png | Bin 0 -> 488 bytes .../farming/textures/farming_tomato_1.png | Bin 0 -> 207 bytes .../farming/textures/farming_tomato_2.png | Bin 0 -> 223 bytes .../farming/textures/farming_tomato_3.png | Bin 0 -> 250 bytes .../farming/textures/farming_tomato_4.png | Bin 0 -> 269 bytes .../farming/textures/farming_tomato_5.png | Bin 0 -> 320 bytes .../farming/textures/farming_tomato_6.png | Bin 0 -> 490 bytes .../farming/textures/farming_tomato_7.png | Bin 0 -> 570 bytes .../farming/textures/farming_tomato_8.png | Bin 0 -> 510 bytes .../textures/farming_tool_bronzehoe.png | Bin 0 -> 258 bytes .../textures/farming_tool_diamondhoe.png | Bin 0 -> 244 bytes .../farming/textures/farming_tool_mesehoe.png | Bin 0 -> 230 bytes .../textures/farming_tool_steelhoe.png | Bin 0 -> 230 bytes .../textures/farming_tool_stonehoe.png | Bin 0 -> 263 bytes .../farming/textures/farming_tool_woodhoe.png | Bin 0 -> 222 bytes .../farming/textures/farming_trellis.png | Bin 0 -> 227 bytes .../textures/farming_turkish_delight.png | Bin 0 -> 156 bytes .../farming/textures/farming_wheat.png | Bin 0 -> 241 bytes .../farming/textures/farming_wheat_1.png | Bin 0 -> 120 bytes .../farming/textures/farming_wheat_2.png | Bin 0 -> 142 bytes .../farming/textures/farming_wheat_3.png | Bin 0 -> 172 bytes .../farming/textures/farming_wheat_4.png | Bin 0 -> 191 bytes .../farming/textures/farming_wheat_5.png | Bin 0 -> 218 bytes .../farming/textures/farming_wheat_6.png | Bin 0 -> 234 bytes .../farming/textures/farming_wheat_7.png | Bin 0 -> 253 bytes .../farming/textures/farming_wheat_8.png | Bin 0 -> 310 bytes .../farming/textures/farming_wheat_seed.png | Bin 0 -> 141 bytes mods_disabled/farming/textures/strawberry.png | Bin 0 -> 382 bytes .../farming/textures/vessels_drinking_cup.png | Bin 0 -> 200 bytes mods_disabled/farming/utensils.lua | 125 +++ mods_disabled/fruit_tools/LICENSE | 21 + mods_disabled/fruit_tools/README.md | 224 ++++++ mods_disabled/fruit_tools/depends.txt | 6 + mods_disabled/fruit_tools/description.txt | 10 + mods_disabled/fruit_tools/init.lua | 718 ++++++++++++++++++ .../fruit_tools/textures/axe_melon.png | Bin 0 -> 505 bytes .../fruit_tools/textures/axe_raspberry.png | Bin 0 -> 649 bytes .../fruit_tools/textures/blueberries.png | Bin 0 -> 164 bytes .../textures/blueberries_splat.png | Bin 0 -> 243 bytes .../fruit_tools/textures/donut_apple.png | Bin 0 -> 252 bytes .../textures/donut_apple_splat.png | Bin 0 -> 500 bytes .../fruit_tools_inv_shield_orange.png | Bin 0 -> 236 bytes .../fruit_tools_inv_shield_tomato.png | Bin 0 -> 488 bytes .../textures/fruit_tools_shield_orange.png | Bin 0 -> 3178 bytes .../fruit_tools_shield_orange_preview.png | Bin 0 -> 493 bytes .../textures/fruit_tools_shield_tomato.png | Bin 0 -> 3192 bytes .../fruit_tools_shield_tomato_preview.png | Bin 0 -> 504 bytes mods_disabled/fruit_tools/textures/grapes.png | Bin 0 -> 175 bytes .../fruit_tools/textures/grapes_splat.png | Bin 0 -> 377 bytes .../fruit_tools/textures/hoe_bean.png | Bin 0 -> 304 bytes .../fruit_tools/textures/melon_slice.png | Bin 0 -> 227 bytes .../textures/melon_slice_splat.png | Bin 0 -> 291 bytes mods_disabled/fruit_tools/textures/orange.png | Bin 0 -> 236 bytes .../fruit_tools/textures/orange_splat.png | Bin 0 -> 508 bytes .../fruit_tools/textures/pick_corn.png | Bin 0 -> 479 bytes .../fruit_tools/textures/pick_pickle.png | Bin 0 -> 628 bytes .../fruit_tools/textures/pick_weed.png | Bin 0 -> 342 bytes .../fruit_tools/textures/raspberries.png | Bin 0 -> 230 bytes .../textures/raspberries_splat.png | Bin 0 -> 305 bytes .../fruit_tools/textures/resin_bottle.png | Bin 0 -> 425 bytes .../fruit_tools/textures/shovel_apple.png | Bin 0 -> 487 bytes .../fruit_tools/textures/shovel_grape.png | Bin 0 -> 792 bytes .../fruit_tools/textures/strawberry.png | Bin 0 -> 382 bytes .../fruit_tools/textures/strawberry_splat.png | Bin 0 -> 491 bytes .../fruit_tools/textures/sword_carrot.png | Bin 0 -> 254 bytes .../textures/sword_carrot_gold.png | Bin 0 -> 252 bytes .../fruit_tools/textures/sword_chili.png | Bin 0 -> 199 bytes mods_disabled/fruit_tools/textures/tomato.png | Bin 0 -> 488 bytes .../fruit_tools/textures/tomato_splat.png | Bin 0 -> 523 bytes todo-list.txt | 7 +- 410 files changed, 9051 insertions(+), 549 deletions(-) create mode 100644 menu/icon.png create mode 100644 mods/bees/crafting.lua create mode 100644 mods/bees/craftitems.lua create mode 100644 mods/bees/nodes.lua create mode 100644 mods/bees/tools.lua create mode 100644 mods_disabled/farming/.gitignore create mode 100644 mods_disabled/farming/README.md create mode 100644 mods_disabled/farming/README.txt create mode 100644 mods_disabled/farming/api.lua create mode 100644 mods_disabled/farming/api.txt create mode 100644 mods_disabled/farming/compatibility.lua create mode 100644 mods_disabled/farming/crops/blueberry.lua create mode 100644 mods_disabled/farming/crops/chili.lua create mode 100644 mods_disabled/farming/crops/corn.lua create mode 100644 mods_disabled/farming/crops/cotton.lua create mode 100644 mods_disabled/farming/crops/cucumber.lua create mode 100644 mods_disabled/farming/crops/garlic.lua create mode 100644 mods_disabled/farming/crops/melon.lua create mode 100644 mods_disabled/farming/crops/move-to-crops/carrot.lua create mode 100644 mods_disabled/farming/crops/move-to-crops/cocoa.lua create mode 100644 mods_disabled/farming/crops/move-to-crops/coffee.lua create mode 100644 mods_disabled/farming/crops/move-to-crops/grapes.lua create mode 100644 mods_disabled/farming/crops/move-to-crops/hemp.lua create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_carrot.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_1.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_2.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_3.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_4.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_5.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_6.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_7.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_8.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_chocolate_dark.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_1.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_2.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_3.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_4.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_beans.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_1.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_2.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_3.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_4.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_5.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_beans.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_cup.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapebush.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapes.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_1.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_2.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_3.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_4.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_5.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_6.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_7.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_8.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_1.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_2.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_3.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_4.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_5.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_6.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_7.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_8.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_block.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_fibre.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_leaf.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_oil.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_rope.png create mode 100644 mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_seed.png create mode 100644 mods_disabled/farming/crops/onion.lua create mode 100644 mods_disabled/farming/crops/peas.lua create mode 100644 mods_disabled/farming/crops/pepper.lua create mode 100644 mods_disabled/farming/crops/pineapple.lua create mode 100644 mods_disabled/farming/crops/potato.lua create mode 100644 mods_disabled/farming/crops/pumpkin.lua create mode 100644 mods_disabled/farming/crops/raspberry.lua create mode 100644 mods_disabled/farming/crops/rhubarb.lua create mode 100644 mods_disabled/farming/crops/ryeoatrice.lua create mode 100644 mods_disabled/farming/crops/tomato.lua create mode 100644 mods_disabled/farming/crops/wheat.lua create mode 100644 mods_disabled/farming/depends.txt create mode 100644 mods_disabled/farming/description.txt create mode 100644 mods_disabled/farming/farming.conf_example create mode 100644 mods_disabled/farming/food.lua create mode 100644 mods_disabled/farming/grass.lua create mode 100644 mods_disabled/farming/hoes.lua create mode 100644 mods_disabled/farming/init.lua create mode 100644 mods_disabled/farming/intllib.lua create mode 100644 mods_disabled/farming/license.txt create mode 100644 mods_disabled/farming/locale/de.po create mode 100644 mods_disabled/farming/locale/farming.de.tr create mode 100644 mods_disabled/farming/locale/farming.es.tr create mode 100644 mods_disabled/farming/locale/farming.fr.tr create mode 100644 mods_disabled/farming/locale/farming.it.tr create mode 100644 mods_disabled/farming/locale/farming.ms.tr create mode 100644 mods_disabled/farming/locale/farming.ru.tr create mode 100644 mods_disabled/farming/locale/farming.se.tr create mode 100644 mods_disabled/farming/locale/farming.zh_CN.tr create mode 100644 mods_disabled/farming/locale/farming.zh_TW.tr create mode 100644 mods_disabled/farming/locale/fr.po create mode 100644 mods_disabled/farming/locale/pt.po create mode 100644 mods_disabled/farming/locale/ru.po create mode 100644 mods_disabled/farming/locale/template.pot create mode 100644 mods_disabled/farming/locale/template.txt create mode 100644 mods_disabled/farming/lucky_block.lua create mode 100644 mods_disabled/farming/mapgen.lua create mode 100644 mods_disabled/farming/mod.conf create mode 100644 mods_disabled/farming/soil.lua create mode 100644 mods_disabled/farming/statistics.lua create mode 100644 mods_disabled/farming/textures/banana_leaf.png create mode 100644 mods_disabled/farming/textures/banana_single.png create mode 100644 mods_disabled/farming/textures/crops_garlic.png create mode 100644 mods_disabled/farming/textures/crops_garlic_braid.png create mode 100644 mods_disabled/farming/textures/crops_garlic_braid_side.png create mode 100644 mods_disabled/farming/textures/crops_garlic_clove.png create mode 100644 mods_disabled/farming/textures/crops_garlic_plant_1.png create mode 100644 mods_disabled/farming/textures/crops_garlic_plant_2.png create mode 100644 mods_disabled/farming/textures/crops_garlic_plant_3.png create mode 100644 mods_disabled/farming/textures/crops_garlic_plant_4.png create mode 100644 mods_disabled/farming/textures/crops_garlic_plant_5.png create mode 100644 mods_disabled/farming/textures/crops_onion.png create mode 100644 mods_disabled/farming/textures/crops_onion_plant_1.png create mode 100644 mods_disabled/farming/textures/crops_onion_plant_2.png create mode 100644 mods_disabled/farming/textures/crops_onion_plant_3.png create mode 100644 mods_disabled/farming/textures/crops_onion_plant_4.png create mode 100644 mods_disabled/farming/textures/crops_onion_plant_5.png create mode 100644 mods_disabled/farming/textures/crops_pepper.png create mode 100644 mods_disabled/farming/textures/crops_pepper_ground.png create mode 100644 mods_disabled/farming/textures/crops_pepper_plant_1.png create mode 100644 mods_disabled/farming/textures/crops_pepper_plant_2.png create mode 100644 mods_disabled/farming/textures/crops_pepper_plant_3.png create mode 100644 mods_disabled/farming/textures/crops_pepper_plant_4.png create mode 100644 mods_disabled/farming/textures/crops_pepper_plant_5.png create mode 100644 mods_disabled/farming/textures/crops_peppercorn.png create mode 100644 mods_disabled/farming/textures/default_junglegrass.png create mode 100644 mods_disabled/farming/textures/farming_baked_potato.png create mode 100644 mods_disabled/farming/textures/farming_baking_tray.png create mode 100644 mods_disabled/farming/textures/farming_barley.png create mode 100644 mods_disabled/farming/textures/farming_barley_1.png create mode 100644 mods_disabled/farming/textures/farming_barley_2.png create mode 100644 mods_disabled/farming/textures/farming_barley_3.png create mode 100644 mods_disabled/farming/textures/farming_barley_4.png create mode 100644 mods_disabled/farming/textures/farming_barley_5.png create mode 100644 mods_disabled/farming/textures/farming_barley_6.png create mode 100644 mods_disabled/farming/textures/farming_barley_7.png create mode 100644 mods_disabled/farming/textures/farming_barley_seed.png create mode 100644 mods_disabled/farming/textures/farming_beanbush.png create mode 100644 mods_disabled/farming/textures/farming_beanpole.png create mode 100644 mods_disabled/farming/textures/farming_beanpole_1.png create mode 100644 mods_disabled/farming/textures/farming_beanpole_2.png create mode 100644 mods_disabled/farming/textures/farming_beanpole_3.png create mode 100644 mods_disabled/farming/textures/farming_beanpole_4.png create mode 100644 mods_disabled/farming/textures/farming_beanpole_5.png create mode 100644 mods_disabled/farming/textures/farming_beans.png create mode 100644 mods_disabled/farming/textures/farming_beetroot.png create mode 100644 mods_disabled/farming/textures/farming_beetroot_1.png create mode 100644 mods_disabled/farming/textures/farming_beetroot_2.png create mode 100644 mods_disabled/farming/textures/farming_beetroot_3.png create mode 100644 mods_disabled/farming/textures/farming_beetroot_4.png create mode 100644 mods_disabled/farming/textures/farming_beetroot_5.png create mode 100644 mods_disabled/farming/textures/farming_beetroot_soup.png create mode 100644 mods_disabled/farming/textures/farming_blueberries.png create mode 100644 mods_disabled/farming/textures/farming_blueberry_1.png create mode 100644 mods_disabled/farming/textures/farming_blueberry_2.png create mode 100644 mods_disabled/farming/textures/farming_blueberry_3.png create mode 100644 mods_disabled/farming/textures/farming_blueberry_4.png create mode 100644 mods_disabled/farming/textures/farming_blueberry_muffin.png create mode 100644 mods_disabled/farming/textures/farming_blueberry_pie.png create mode 100644 mods_disabled/farming/textures/farming_bottle_ethanol.png create mode 100644 mods_disabled/farming/textures/farming_bowl.png create mode 100644 mods_disabled/farming/textures/farming_bread.png create mode 100644 mods_disabled/farming/textures/farming_bread_multigrain.png create mode 100644 mods_disabled/farming/textures/farming_bread_slice.png create mode 100644 mods_disabled/farming/textures/farming_carrot_gold.png create mode 100644 mods_disabled/farming/textures/farming_carrot_juice.png create mode 100644 mods_disabled/farming/textures/farming_chili_1.png create mode 100644 mods_disabled/farming/textures/farming_chili_2.png create mode 100644 mods_disabled/farming/textures/farming_chili_3.png create mode 100644 mods_disabled/farming/textures/farming_chili_4.png create mode 100644 mods_disabled/farming/textures/farming_chili_5.png create mode 100644 mods_disabled/farming/textures/farming_chili_6.png create mode 100644 mods_disabled/farming/textures/farming_chili_7.png create mode 100644 mods_disabled/farming/textures/farming_chili_8.png create mode 100644 mods_disabled/farming/textures/farming_chili_bowl.png create mode 100644 mods_disabled/farming/textures/farming_chili_pepper.png create mode 100644 mods_disabled/farming/textures/farming_chocolate_block.png create mode 100644 mods_disabled/farming/textures/farming_cookie.png create mode 100644 mods_disabled/farming/textures/farming_corn.png create mode 100644 mods_disabled/farming/textures/farming_corn_1.png create mode 100644 mods_disabled/farming/textures/farming_corn_2.png create mode 100644 mods_disabled/farming/textures/farming_corn_3.png create mode 100644 mods_disabled/farming/textures/farming_corn_4.png create mode 100644 mods_disabled/farming/textures/farming_corn_5.png create mode 100644 mods_disabled/farming/textures/farming_corn_6.png create mode 100644 mods_disabled/farming/textures/farming_corn_7.png create mode 100644 mods_disabled/farming/textures/farming_corn_8.png create mode 100644 mods_disabled/farming/textures/farming_corn_cob.png create mode 100644 mods_disabled/farming/textures/farming_cornstarch.png create mode 100644 mods_disabled/farming/textures/farming_cotton.png create mode 100644 mods_disabled/farming/textures/farming_cotton_1.png create mode 100644 mods_disabled/farming/textures/farming_cotton_2.png create mode 100644 mods_disabled/farming/textures/farming_cotton_3.png create mode 100644 mods_disabled/farming/textures/farming_cotton_4.png create mode 100644 mods_disabled/farming/textures/farming_cotton_5.png create mode 100644 mods_disabled/farming/textures/farming_cotton_6.png create mode 100644 mods_disabled/farming/textures/farming_cotton_7.png create mode 100644 mods_disabled/farming/textures/farming_cotton_8.png create mode 100644 mods_disabled/farming/textures/farming_cotton_seed.png create mode 100644 mods_disabled/farming/textures/farming_cucumber.png create mode 100644 mods_disabled/farming/textures/farming_cucumber_1.png create mode 100644 mods_disabled/farming/textures/farming_cucumber_2.png create mode 100644 mods_disabled/farming/textures/farming_cucumber_3.png create mode 100644 mods_disabled/farming/textures/farming_cucumber_4.png create mode 100644 mods_disabled/farming/textures/farming_cutting_board.png create mode 100644 mods_disabled/farming/textures/farming_desert_sand_soil.png create mode 100644 mods_disabled/farming/textures/farming_desert_sand_soil_wet.png create mode 100644 mods_disabled/farming/textures/farming_desert_sand_soil_wet_side.png create mode 100644 mods_disabled/farming/textures/farming_donut.png create mode 100644 mods_disabled/farming/textures/farming_donut_apple.png create mode 100644 mods_disabled/farming/textures/farming_donut_chocolate.png create mode 100644 mods_disabled/farming/textures/farming_flour.png create mode 100644 mods_disabled/farming/textures/farming_flour_multigrain.png create mode 100644 mods_disabled/farming/textures/farming_garlic_bread.png create mode 100644 mods_disabled/farming/textures/farming_hoe_bomb.png create mode 100644 mods_disabled/farming/textures/farming_jaffa_cake.png create mode 100644 mods_disabled/farming/textures/farming_juicer.png create mode 100644 mods_disabled/farming/textures/farming_melon_1.png create mode 100644 mods_disabled/farming/textures/farming_melon_2.png create mode 100644 mods_disabled/farming/textures/farming_melon_3.png create mode 100644 mods_disabled/farming/textures/farming_melon_4.png create mode 100644 mods_disabled/farming/textures/farming_melon_5.png create mode 100644 mods_disabled/farming/textures/farming_melon_6.png create mode 100644 mods_disabled/farming/textures/farming_melon_7.png create mode 100644 mods_disabled/farming/textures/farming_melon_side.png create mode 100644 mods_disabled/farming/textures/farming_melon_slice.png create mode 100644 mods_disabled/farming/textures/farming_melon_top.png create mode 100644 mods_disabled/farming/textures/farming_mixing_bowl.png create mode 100644 mods_disabled/farming/textures/farming_mortar_pestle.png create mode 100644 mods_disabled/farming/textures/farming_oat.png create mode 100644 mods_disabled/farming/textures/farming_oat_1.png create mode 100644 mods_disabled/farming/textures/farming_oat_2.png create mode 100644 mods_disabled/farming/textures/farming_oat_3.png create mode 100644 mods_disabled/farming/textures/farming_oat_4.png create mode 100644 mods_disabled/farming/textures/farming_oat_5.png create mode 100644 mods_disabled/farming/textures/farming_oat_6.png create mode 100644 mods_disabled/farming/textures/farming_oat_7.png create mode 100644 mods_disabled/farming/textures/farming_oat_8.png create mode 100644 mods_disabled/farming/textures/farming_oat_seed.png create mode 100644 mods_disabled/farming/textures/farming_orange.png create mode 100644 mods_disabled/farming/textures/farming_pea_1.png create mode 100644 mods_disabled/farming/textures/farming_pea_2.png create mode 100644 mods_disabled/farming/textures/farming_pea_3.png create mode 100644 mods_disabled/farming/textures/farming_pea_4.png create mode 100644 mods_disabled/farming/textures/farming_pea_5.png create mode 100644 mods_disabled/farming/textures/farming_pea_peas.png create mode 100644 mods_disabled/farming/textures/farming_pea_pod.png create mode 100644 mods_disabled/farming/textures/farming_pea_soup.png create mode 100644 mods_disabled/farming/textures/farming_pineapple.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_1.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_2.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_3.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_4.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_5.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_6.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_7.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_8.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_juice.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_ring.png create mode 100644 mods_disabled/farming/textures/farming_pineapple_top.png create mode 100644 mods_disabled/farming/textures/farming_porridge.png create mode 100644 mods_disabled/farming/textures/farming_pot.png create mode 100644 mods_disabled/farming/textures/farming_potato.png create mode 100644 mods_disabled/farming/textures/farming_potato_1.png create mode 100644 mods_disabled/farming/textures/farming_potato_2.png create mode 100644 mods_disabled/farming/textures/farming_potato_3.png create mode 100644 mods_disabled/farming/textures/farming_potato_4.png create mode 100644 mods_disabled/farming/textures/farming_potato_salad.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_1.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_2.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_3.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_4.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_5.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_6.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_7.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_8.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_bread.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_dough.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_face_off.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_face_on.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_side.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_slice.png create mode 100644 mods_disabled/farming/textures/farming_pumpkin_top.png create mode 100644 mods_disabled/farming/textures/farming_raspberries.png create mode 100644 mods_disabled/farming/textures/farming_raspberry_1.png create mode 100644 mods_disabled/farming/textures/farming_raspberry_2.png create mode 100644 mods_disabled/farming/textures/farming_raspberry_3.png create mode 100644 mods_disabled/farming/textures/farming_raspberry_4.png create mode 100644 mods_disabled/farming/textures/farming_raspberry_smoothie.png create mode 100644 mods_disabled/farming/textures/farming_rhubarb.png create mode 100644 mods_disabled/farming/textures/farming_rhubarb_1.png create mode 100644 mods_disabled/farming/textures/farming_rhubarb_2.png create mode 100644 mods_disabled/farming/textures/farming_rhubarb_3.png create mode 100644 mods_disabled/farming/textures/farming_rhubarb_pie.png create mode 100644 mods_disabled/farming/textures/farming_rice.png create mode 100644 mods_disabled/farming/textures/farming_rice_1.png create mode 100644 mods_disabled/farming/textures/farming_rice_2.png create mode 100644 mods_disabled/farming/textures/farming_rice_3.png create mode 100644 mods_disabled/farming/textures/farming_rice_4.png create mode 100644 mods_disabled/farming/textures/farming_rice_5.png create mode 100644 mods_disabled/farming/textures/farming_rice_6.png create mode 100644 mods_disabled/farming/textures/farming_rice_7.png create mode 100644 mods_disabled/farming/textures/farming_rice_8.png create mode 100644 mods_disabled/farming/textures/farming_rice_bread.png create mode 100644 mods_disabled/farming/textures/farming_rice_flour.png create mode 100644 mods_disabled/farming/textures/farming_rice_seed.png create mode 100644 mods_disabled/farming/textures/farming_rose_water.png create mode 100644 mods_disabled/farming/textures/farming_rye.png create mode 100644 mods_disabled/farming/textures/farming_rye_1.png create mode 100644 mods_disabled/farming/textures/farming_rye_2.png create mode 100644 mods_disabled/farming/textures/farming_rye_3.png create mode 100644 mods_disabled/farming/textures/farming_rye_4.png create mode 100644 mods_disabled/farming/textures/farming_rye_5.png create mode 100644 mods_disabled/farming/textures/farming_rye_6.png create mode 100644 mods_disabled/farming/textures/farming_rye_7.png create mode 100644 mods_disabled/farming/textures/farming_rye_8.png create mode 100644 mods_disabled/farming/textures/farming_rye_seed.png create mode 100644 mods_disabled/farming/textures/farming_salt.png create mode 100644 mods_disabled/farming/textures/farming_saucepan.png create mode 100644 mods_disabled/farming/textures/farming_scythe_mithril.png create mode 100644 mods_disabled/farming/textures/farming_skillet.png create mode 100644 mods_disabled/farming/textures/farming_soil.png create mode 100644 mods_disabled/farming/textures/farming_soil_wet.png create mode 100644 mods_disabled/farming/textures/farming_soil_wet_side.png create mode 100644 mods_disabled/farming/textures/farming_straw.png create mode 100644 mods_disabled/farming/textures/farming_string.png create mode 100644 mods_disabled/farming/textures/farming_sugar.png create mode 100644 mods_disabled/farming/textures/farming_toast.png create mode 100644 mods_disabled/farming/textures/farming_toast_sandwich.png create mode 100644 mods_disabled/farming/textures/farming_tomato.png create mode 100644 mods_disabled/farming/textures/farming_tomato_1.png create mode 100644 mods_disabled/farming/textures/farming_tomato_2.png create mode 100644 mods_disabled/farming/textures/farming_tomato_3.png create mode 100644 mods_disabled/farming/textures/farming_tomato_4.png create mode 100644 mods_disabled/farming/textures/farming_tomato_5.png create mode 100644 mods_disabled/farming/textures/farming_tomato_6.png create mode 100644 mods_disabled/farming/textures/farming_tomato_7.png create mode 100644 mods_disabled/farming/textures/farming_tomato_8.png create mode 100644 mods_disabled/farming/textures/farming_tool_bronzehoe.png create mode 100644 mods_disabled/farming/textures/farming_tool_diamondhoe.png create mode 100644 mods_disabled/farming/textures/farming_tool_mesehoe.png create mode 100644 mods_disabled/farming/textures/farming_tool_steelhoe.png create mode 100644 mods_disabled/farming/textures/farming_tool_stonehoe.png create mode 100644 mods_disabled/farming/textures/farming_tool_woodhoe.png create mode 100644 mods_disabled/farming/textures/farming_trellis.png create mode 100644 mods_disabled/farming/textures/farming_turkish_delight.png create mode 100644 mods_disabled/farming/textures/farming_wheat.png create mode 100644 mods_disabled/farming/textures/farming_wheat_1.png create mode 100644 mods_disabled/farming/textures/farming_wheat_2.png create mode 100644 mods_disabled/farming/textures/farming_wheat_3.png create mode 100644 mods_disabled/farming/textures/farming_wheat_4.png create mode 100644 mods_disabled/farming/textures/farming_wheat_5.png create mode 100644 mods_disabled/farming/textures/farming_wheat_6.png create mode 100644 mods_disabled/farming/textures/farming_wheat_7.png create mode 100644 mods_disabled/farming/textures/farming_wheat_8.png create mode 100644 mods_disabled/farming/textures/farming_wheat_seed.png create mode 100644 mods_disabled/farming/textures/strawberry.png create mode 100644 mods_disabled/farming/textures/vessels_drinking_cup.png create mode 100644 mods_disabled/farming/utensils.lua create mode 100644 mods_disabled/fruit_tools/LICENSE create mode 100644 mods_disabled/fruit_tools/README.md create mode 100644 mods_disabled/fruit_tools/depends.txt create mode 100644 mods_disabled/fruit_tools/description.txt create mode 100644 mods_disabled/fruit_tools/init.lua create mode 100644 mods_disabled/fruit_tools/textures/axe_melon.png create mode 100644 mods_disabled/fruit_tools/textures/axe_raspberry.png create mode 100644 mods_disabled/fruit_tools/textures/blueberries.png create mode 100644 mods_disabled/fruit_tools/textures/blueberries_splat.png create mode 100644 mods_disabled/fruit_tools/textures/donut_apple.png create mode 100644 mods_disabled/fruit_tools/textures/donut_apple_splat.png create mode 100644 mods_disabled/fruit_tools/textures/fruit_tools_inv_shield_orange.png create mode 100644 mods_disabled/fruit_tools/textures/fruit_tools_inv_shield_tomato.png create mode 100644 mods_disabled/fruit_tools/textures/fruit_tools_shield_orange.png create mode 100644 mods_disabled/fruit_tools/textures/fruit_tools_shield_orange_preview.png create mode 100644 mods_disabled/fruit_tools/textures/fruit_tools_shield_tomato.png create mode 100644 mods_disabled/fruit_tools/textures/fruit_tools_shield_tomato_preview.png create mode 100644 mods_disabled/fruit_tools/textures/grapes.png create mode 100644 mods_disabled/fruit_tools/textures/grapes_splat.png create mode 100644 mods_disabled/fruit_tools/textures/hoe_bean.png create mode 100644 mods_disabled/fruit_tools/textures/melon_slice.png create mode 100644 mods_disabled/fruit_tools/textures/melon_slice_splat.png create mode 100644 mods_disabled/fruit_tools/textures/orange.png create mode 100644 mods_disabled/fruit_tools/textures/orange_splat.png create mode 100644 mods_disabled/fruit_tools/textures/pick_corn.png create mode 100644 mods_disabled/fruit_tools/textures/pick_pickle.png create mode 100644 mods_disabled/fruit_tools/textures/pick_weed.png create mode 100644 mods_disabled/fruit_tools/textures/raspberries.png create mode 100644 mods_disabled/fruit_tools/textures/raspberries_splat.png create mode 100644 mods_disabled/fruit_tools/textures/resin_bottle.png create mode 100644 mods_disabled/fruit_tools/textures/shovel_apple.png create mode 100644 mods_disabled/fruit_tools/textures/shovel_grape.png create mode 100644 mods_disabled/fruit_tools/textures/strawberry.png create mode 100644 mods_disabled/fruit_tools/textures/strawberry_splat.png create mode 100644 mods_disabled/fruit_tools/textures/sword_carrot.png create mode 100644 mods_disabled/fruit_tools/textures/sword_carrot_gold.png create mode 100644 mods_disabled/fruit_tools/textures/sword_chili.png create mode 100644 mods_disabled/fruit_tools/textures/tomato.png create mode 100644 mods_disabled/fruit_tools/textures/tomato_splat.png diff --git a/menu/icon.png b/menu/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5157bf42abc4f686c9e6debe4643ee5961c492d0 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#2^*`Rp6;r}Sv!D2i#%N%Lo80OoqU$}kO5EY{_s+EHjT{zd67$m3m!BaVUu05 z_n=M*<1&MG249zzi0@d{7w zG|pg7X5C7Gl5hPg4km{g_oRI}d){i5Ovtt`3+7ed*1B}x^2S&30~KZI4D0^NdJ8^b z64niTe@W)gpF=CNCvS1zy+G%yAoIh$9vs_0n(bro)X~`4AS)sWbS;CYtDnm{r-UW| Dsvlj& literal 0 HcmV?d00001 diff --git a/mods/bees/crafting.lua b/mods/bees/crafting.lua new file mode 100644 index 0000000..78d86a5 --- /dev/null +++ b/mods/bees/crafting.lua @@ -0,0 +1,61 @@ +-- Register the recipe for the honey extractor. + minetest.register_craft({ + output = 'bees:extractor', + recipe = { + {'','default:steel_ingot',''}, + {'default:steel_ingot','default:stick','default:steel_ingot'}, + {'default:mese_crystal','default:steel_ingot','default:mese_crystal'}, + } + }) +-- Register the recipe for the hive smoker. + minetest.register_craft({ + output = 'bees:smoker', + recipe = { + {'default:steel_ingot', 'wool:red', ''}, + {'', 'default:torch', ''}, + {'', 'default:steel_ingot',''}, + } + }) +-- Register the recipe for artificial bee hive. + minetest.register_craft({ + output = 'bees:hive_artificial', + recipe = { + {'group:wood','group:wood','group:wood'}, + {'group:wood','default:stick','group:wood'}, + {'group:wood','default:stick','group:wood'}, + } + }) +-- Register the recipe for bee hive grafting tool. + minetest.register_craft({ + output = 'bees:grafting_tool', + recipe = { + {'', '', 'default:steel_ingot'}, + {'', 'default:stick', ''}, + {'', '', ''}, + } + }) +-- Register the recipe for empty hive frames. + minetest.register_craft({ + output = 'bees:frame_empty', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'default:stick', 'default:stick', 'default:stick'}, + {'default:stick', 'default:stick', 'default:stick'}, + } + }) +-- Register the recipe for the honeycomb block. +minetest.register_craft({ + output = "bees:honeycomb 8", + recipe = { + {"bees:honeycomb_block"}, + } +}) +-- Register the recipe for honeycombs --> honeycomb_block. +minetest.register_craft({ + output = "bees:honeycomb_block", + recipe = { + {"bees:honeycomb", "bees:honeycomb", "bees:honeycomb"}, + {"bees:honeycomb", "", "bees:honeycomb"}, + {"bees:honeycomb", "bees:honeycomb", "bees:honeycomb"}, + } +}) diff --git a/mods/bees/craftitems.lua b/mods/bees/craftitems.lua new file mode 100644 index 0000000..a313227 --- /dev/null +++ b/mods/bees/craftitems.lua @@ -0,0 +1,38 @@ +-- Register the empty hive frame. + minetest.register_craftitem('bees:frame_empty', { + description = 'Empty Hive Frame', + inventory_image = 'bees_frame_empty.png', + stack_max = 24, + }) +-- Register the full hive frame. + minetest.register_craftitem('bees:frame_full', { + description = 'Filled Hive Frame', + inventory_image = 'bees_frame_full.png', + stack_max = 12, + }) +-- Register the bottle of honey. + minetest.register_craftitem('bees:bottle_honey', { + description = 'Bottle of Honey', + inventory_image = 'bees_bottle_honey.png', + stack_max = 12, + on_use = minetest.item_eat(3, "vessels:glass_bottle"), + }) +-- Register Bees Wax. + minetest.register_craftitem('bees:wax', { + description = 'Bees Wax', + inventory_image = 'bees_wax.png', + stack_max = 48, + }) +-- Register honeycomb. + minetest.register_craftitem('bees:honeycomb', { + description = 'Honeycomb', + inventory_image = 'bees_honeycomb.png', + on_use = minetest.item_eat(2), + stack_max = 8, + }) +-- Register Queen Bee. + minetest.register_craftitem('bees:queen', { + description = 'Queen Bee', + inventory_image = 'bees_particle_bee.png', + stack_max = 1, + }) diff --git a/mods/bees/init.lua b/mods/bees/init.lua index daf3620..8073921 100644 --- a/mods/bees/init.lua +++ b/mods/bees/init.lua @@ -51,403 +51,6 @@ end end ---NODES - minetest.register_node('bees:extractor', { - description = 'Honey Extractor Machine', - tiles = {"bees_extractor_top.png", "bees_extractor_bottom.png", "bees_extractor_side.png", "bees_extractor_side.png", "bees_extractor_side.png", "bees_extractor_front.png"}, - paramtype = "light", - paramtype2 = "facedir", - drawtype = "nodebox", - place_param2 = 0, - groups = {choppy=2,oddly_breakable_by_hand=2}, - sounds = default.node_sound_wood_defaults(), - node_box = { - type = "fixed", - fixed = { - {-0.4375, -0.5, -0.4375, 0.4375, 0, 0.4375}, - {-0.375, -0.0625, -0.375, 0.375, 0.5, 0.375}, - {-0.4375, 0.375, -0.4375, 0.4375, 0.4375, 0.4375}, - {0.375, 0, -0.4375, 0.4375, 0.4375, -0.375}, - {-0.4375, 0, -0.4375, -0.375, 0.4375, -0.375}, - {-0.4375, 0, 0.375, -0.375, 0.4375, 0.4375}, - {0.375, 0, 0.375, 0.4375, 0.4375, 0.4375}, - }, - }, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, - }, - on_construct = function(pos, node) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - local pos = pos.x..','..pos.y..','..pos.z - inv:set_size('frames_filled' ,1) - inv:set_size('frames_emptied' ,1) - inv:set_size('bottles_empty' ,1) - inv:set_size('bottles_full' ,1) - inv:set_size('wax',1) - meta:set_string('formspec', - 'size[8,9]'.. - --input - 'list[nodemeta:'..pos..';frames_filled;2,1;1,1;]'.. - 'list[nodemeta:'..pos..';bottles_empty;2,3;1,1;]'.. - --output - 'list[nodemeta:'..pos..';frames_emptied;5,0.5;1,1;]'.. - 'list[nodemeta:'..pos..';wax;5,2;1,1;]'.. - 'list[nodemeta:'..pos..';bottles_full;5,3.5;1,1;]'.. - --player inventory - 'list[current_player;main;0,5;8,4;]' - ) - end, - on_timer = function(pos, node) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - if not inv:contains_item('frames_filled','bees:frame_full') or not inv:contains_item('bottles_empty','vessels:glass_bottle') then - return - end - if inv:room_for_item('frames_emptied', 'bees:frame_empty') - and inv:room_for_item('wax','bees:wax') - and inv:room_for_item('bottles_full', 'bees:bottle_honey') then - --add to output - inv:add_item('frames_emptied', 'bees:frame_empty') - inv:add_item('wax', 'bees:wax') - inv:add_item('bottles_full', 'bees:bottle_honey') - --remove from input - inv:remove_item('bottles_empty','vessels:glass_bottle') - inv:remove_item('frames_filled','bees:frame_full') - local p = {x=pos.x+math.random()-0.5, y=pos.y+math.random()-0.5, z=pos.z+math.random()-0.5} - --wax flying all over the place - minetest.add_particle({ - pos = {x=pos.x, y=pos.y, z=pos.z}, - vel = {x=math.random(-4,4),y=math.random(8),z=math.random(-4,4)}, - acc = {x=0,y=-6,z=0}, - expirationtime = 2, - size = math.random(1,3), - collisiondetection = false, - texture = 'bees_wax_particle.png', - }) - local timer = minetest.get_node_timer(pos) - timer:start(5) - else - local timer = minetest.get_node_timer(pos) - timer:start(1) -- Try again in 1 second - end - end, - tube = { - insert_object = function(pos, node, stack, direction) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - local timer = minetest.get_node_timer(pos) - if stack:get_name() == "bees:frame_full" then - if inv:is_empty("frames_filled") then - timer:start(5) - end - return inv:add_item("frames_filled",stack) - elseif stack:get_name() == "vessels:glass_bottle" then - if inv:is_empty("bottles_empty") then - timer:start(5) - end - return inv:add_item("bottles_empty",stack) - end - return stack - end, - can_insert = function(pos,node,stack,direction) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - if stack:get_name() == "bees:frame_full" then - return inv:room_for_item("frames_filled",stack) - elseif stack:get_name() == "vessels:glass_bottle" then - return inv:room_for_item("bottles_empty",stack) - end - return false - end, - input_inventory = {"frames_emptied", "bottles_full", "wax"}, - connect_sides = {left=1, right=1, back=1, front=1, bottom=1, top=1} - }, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - local timer = minetest.get_node_timer(pos) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - if inv:get_stack(listname, 1):get_count() == stack:get_count() then -- inv was empty -> start the timer - timer:start(5) --create a honey bottle and empty frame and wax every 5 seconds - end - end, - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - if (listname == 'bottles_empty' and stack:get_name() == 'vessels:glass_bottle') or (listname == 'frames_filled' and stack:get_name() == 'bees:frame_full') then - return stack:get_count() - else - return 0 - end - end, - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - return 0 - end, - }) - - minetest.register_node('bees:bees', { - description = 'Flying Bees', - drawtype = 'plantlike', - paramtype = 'light', - groups = { not_in_creative_inventory=1 }, - tiles = { - { - name='bees_strip.png', - animation={type='vertical_frames', aspect_w=16,aspect_h=16, length=2.0} - } - }, - damage_per_second = 1, - walkable = false, - buildable_to = true, - pointable = false, - on_punch = function(pos, node, puncher) - local health = puncher:get_hp() - puncher:set_hp(health-2) - end, - }) - - minetest.register_node('bees:hive_wild', { - description = 'Wild Bee Hive', - tiles = {"bees_hive_wild.png"}, --texture from church_candles. - drawtype = "plantlike", - paramtype = 'light', - walkable = true, - drop = { - max_items = 6, - items = { - { items = {'bees:honeycomb'}, rarity = 5} - } - }, - groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,attached_node=1}, - on_timer = function(pos) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - local timer= minetest.get_node_timer(pos) - local rad = 10 - local minp = {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad} - local maxp = {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad} - local flowers = minetest.find_nodes_in_area(minp, maxp, 'group:flower') - if #flowers == 0 then - inv:set_stack('queen', 1, '') - meta:set_string('infotext', 'This hive colony died! Not enough flowers in area.') - return - end --not any flowers nearby The queen dies! - if #flowers < 3 then return end --requires 2 or more flowers before can make honey - local flower = flowers[math.random(#flowers)] - bees.polinate_flower(flower, minetest.get_node(flower).name) - local stacks = inv:get_list('combs') - for k, v in pairs(stacks) do - if inv:get_stack('combs', k):is_empty() then --then replace that with a full one and reset pro.. - inv:set_stack('combs',k,'bees:honeycomb') - timer:start(1000/#flowers) - return - end - end - --what to do if all combs are filled - end, - on_construct = function(pos) - minetest.get_node(pos).param2 = 0 - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - local timer = minetest.get_node_timer(pos) - meta:set_int('agressive', 1) - timer:start(100+math.random(100)) - inv:set_size('queen', 1) - inv:set_size('combs', 5) - inv:set_stack('queen', 1, 'bees:queen') - for i=1,math.random(3) do - inv:set_stack('combs', i, 'bees:honeycomb') - end - end, - on_punch = function(pos, node, puncher) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - if inv:contains_item('queen','bees:queen') then - local health = puncher:get_hp() - puncher:set_hp(health-4) - end - end, - on_metadata_inventory_take = function(pos, listname, index, stack, taker) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - local timer= minetest.get_node_timer(pos) - if listname == 'combs' and inv:contains_item('queen', 'bees:queen') then - local health = taker:get_hp() - timer:start(10) - taker:set_hp(health-2) - end - end, - on_metadata_inventory_put = function(pos, listname, index, stack, taker) --restart the colony by adding a queen - local timer = minetest.get_node_timer(pos) - if not timer:is_started() then - timer:start(10) - end - end, - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - if listname == 'queen' and stack:get_name() == 'bees:queen' then - return 1 - else - return 0 - end - end, - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - minetest.show_formspec( - clicker:get_player_name(), - 'bees:hive_artificial', - formspecs.hive_wild(pos, (itemstack:get_name() == 'bees:grafting_tool')) - ) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - if meta:get_int('agressive') == 1 and inv:contains_item('queen', 'bees:queen') then - local health = clicker:get_hp() - clicker:set_hp(health-4) - else - meta:set_int('agressive', 1) - end - end, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - if inv:is_empty('queen') and inv:is_empty('combs') then - return true - else - return false - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, user) - local wielded if user:get_wielded_item() ~= nil then wielded = user:get_wielded_item() else return end - if 'bees:grafting_tool' == wielded:get_name() then - local inv = user:get_inventory() - if inv then - inv:add_item('main', ItemStack('bees:queen')) - end - end - end - }) - - minetest.register_node('bees:hive_artificial', { - description = 'Bee Hive', - tiles = {'default_wood.png','default_wood.png','default_wood.png', 'default_wood.png','default_wood.png','bees_hive_artificial.png'}, - drawtype = 'nodebox', - paramtype = 'light', - paramtype2 = 'facedir', - groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, - sounds = default.node_sound_wood_defaults(), - node_box = { - type = 'fixed', - fixed = { - {-4/8, 2/8, -4/8, 4/8, 3/8, 4/8}, - {-3/8, -4/8, -2/8, 3/8, 2/8, 3/8}, - {-3/8, 0/8, -3/8, 3/8, 2/8, -2/8}, - {-3/8, -4/8, -3/8, 3/8, -1/8, -2/8}, - {-3/8, -1/8, -3/8, -1/8, 0/8, -2/8}, - {1/8, -1/8, -3/8, 3/8, 0/8, -2/8}, - } - }, - on_construct = function(pos) - local timer = minetest.get_node_timer(pos) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - meta:set_int('agressive', 1) - inv:set_size('queen', 1) - inv:set_size('frames', 8) - meta:set_string('infotext','Requires a queen bee to function.') - end, - on_rightclick = function(pos, node, clicker, itemstack) - minetest.show_formspec( - clicker:get_player_name(), - 'bees:hive_artificial', - formspecs.hive_artificial(pos) - ) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - if meta:get_int('agressive') == 1 and inv:contains_item('queen', 'bees:queen') then - local health = clicker:get_hp() - clicker:set_hp(health-4) - else - meta:set_int('agressive', 1) - end - end, - on_timer = function(pos,elapsed) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - local timer = minetest.get_node_timer(pos) - if inv:contains_item('queen', 'bees:queen') then - if inv:contains_item('frames', 'bees:frame_empty') then - timer:start(30) - local rad = 10 - local minp = {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad} - local maxp = {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad} - local flowers = minetest.find_nodes_in_area(minp, maxp, 'group:flower') - local progress = meta:get_int('progress') - progress = progress + #flowers - meta:set_int('progress', progress) - if progress > 1000 then - local flower = flowers[math.random(#flowers)] - bees.polinate_flower(flower, minetest.get_node(flower).name) - local stacks = inv:get_list('frames') - for k, v in pairs(stacks) do - if inv:get_stack('frames', k):get_name() == 'bees:frame_empty' then - meta:set_int('progress', 0) - inv:set_stack('frames',k,'bees:frame_full') - return - end - end - else - meta:set_string('infotext', 'Progress: '..progress..'+'..#flowers..'/1000') - end - else - meta:set_string('infotext', 'Hive does not have empty frame(s)!') - timer:stop() - end - end - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - if listname == 'queen' then - local timer = minetest.get_node_timer(pos) - local meta = minetest.get_meta(pos) - meta:set_string('infotext','Hive requires a queen bee to function!') - timer:stop() - end - end, - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - local inv = minetest.get_meta(pos):get_inventory() - if from_list == to_list then - if inv:get_stack(to_list, to_index):is_empty() then - return 1 - else - return 0 - end - else - return 0 - end - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - local timer = minetest.get_node_timer(pos) - if listname == 'queen' or listname == 'frames' then - meta:set_string('queen', stack:get_name()) - meta:set_string('infotext','A queen bee is inserted. Add empty frames!'); - if inv:contains_item('frames', 'bees:frame_empty') then - timer:start(30) - meta:set_string('infotext','Bees are settling in!'); - end - end - end, - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - if not minetest.get_meta(pos):get_inventory():get_stack(listname, index):is_empty() then return 0 end - if listname == 'queen' then - if stack:get_name():match('bees:queen*') then - return 1 - end - elseif listname == 'frames' then - if stack:get_name() == ('bees:frame_empty') then - return 1 - end - end - return 0 - end, - }) --ABMS minetest.register_abm({ --particles @@ -504,153 +107,10 @@ end, }) ---ITEMS - minetest.register_craftitem('bees:frame_empty', { - description = 'Empty Hive Frame', - inventory_image = 'bees_frame_empty.png', - stack_max = 24, - }) +-- Load other modules for the mod. +local default_path = minetest.get_modpath("bees") - minetest.register_craftitem('bees:frame_full', { - description = 'Filled Hive Frame', - inventory_image = 'bees_frame_full.png', - stack_max = 12, - }) - - minetest.register_craftitem('bees:bottle_honey', { - description = 'Honey Bottle', - inventory_image = 'bees_bottle_honey.png', - stack_max = 12, - on_use = minetest.item_eat(3, "vessels:glass_bottle"), - }) - - minetest.register_craftitem('bees:wax', { - description = 'Bees Wax', - inventory_image = 'bees_wax.png', - stack_max = 48, - }) - - minetest.register_craftitem('bees:honeycomb', { - description = 'Honeycomb', - inventory_image = 'bees_honeycomb.png', - on_use = minetest.item_eat(2), - stack_max = 8, - }) - - minetest.register_craftitem('bees:queen', { - description = 'Queen Bee', - inventory_image = 'bees_particle_bee.png', - stack_max = 1, - }) - ---CRAFTS - minetest.register_craft({ - output = 'bees:extractor', - recipe = { - {'','default:steel_ingot',''}, - {'default:steel_ingot','default:stick','default:steel_ingot'}, - {'default:mese_crystal','default:steel_ingot','default:mese_crystal'}, - } - }) - - minetest.register_craft({ - output = 'bees:smoker', - recipe = { - {'default:steel_ingot', 'wool:red', ''}, - {'', 'default:torch', ''}, - {'', 'default:steel_ingot',''}, - } - }) - - minetest.register_craft({ - output = 'bees:hive_artificial', - recipe = { - {'group:wood','group:wood','group:wood'}, - {'group:wood','default:stick','group:wood'}, - {'group:wood','default:stick','group:wood'}, - } - }) - - minetest.register_craft({ - output = 'bees:grafting_tool', - recipe = { - {'', '', 'default:steel_ingot'}, - {'', 'default:stick', ''}, - {'', '', ''}, - } - }) - - minetest.register_craft({ - output = 'bees:frame_empty', - recipe = { - {'group:wood', 'group:wood', 'group:wood'}, - {'default:stick', 'default:stick', 'default:stick'}, - {'default:stick', 'default:stick', 'default:stick'}, - } - }) - ---TOOLS - minetest.register_tool('bees:smoker', { - description = 'Hive Smoker', - inventory_image = 'bees_smoker.png', - tool_capabilities = { - full_punch_interval = 3.0, - max_drop_level=0, - damage_groups = {fleshy=2}, - }, - on_use = function(tool, user, node) - if node then - local pos = node.under - if pos then - for i=1,6 do - minetest.add_particle({ - pos = {x=pos.x+math.random()-0.5, y=pos.y, z=pos.z+math.random()-0.5}, - vel = {x=0,y=0.5+math.random(),z=0}, - acc = {x=0,y=0,z=0}, - expirationtime = 2+math.random(2.5), - size = math.random(3), - collisiondetection = false, - texture = 'tnt_smoke.png', - }) - end - --tool:add_wear(2) - local meta = minetest.get_meta(pos) - meta:set_int('agressive', 0) - return nil - end - end - end, - }) - - minetest.register_tool('bees:grafting_tool', { - description = 'Beehive Grafting Tool', - inventory_image = 'bees_grafting_tool.png', - tool_capabilities = { - full_punch_interval = 3.0, - max_drop_level=0, - damage_groups = {fleshy=2}, - }, - }) ---Honeycomb Block -minetest.register_node("bees:honeycomb_block", { - description = "Honeycomb Block", - inventory_image = "bees_honeycomb_block.png", - tiles = {"bees_honeycomb_block.png"}, - groups = {oddly_breakable_by_hand = 3, dig_immediate = 1}, - sounds = default.node_sound_dirt_defaults(), -}) -minetest.register_craft({ - output = "bees:honeycomb 9", - recipe = { - {"bees:honeycomb_block"}, - } -}) -minetest.register_craft({ - output = "church_candles:honeycomb_block", - recipe = { - {"bees:honeycomb", "bees:honeycomb", "bees:honeycomb"}, - {"bees:honeycomb", "bees:honeycomb", "bees:honeycomb"}, - {"bees:honeycomb", "bees:honeycomb", "bees:honeycomb"}, - } -}) -print('[Mod]Bees Loaded!') +dofile(default_path.."/crafting.lua") +dofile(default_path.."/craftitems.lua") +dofile(default_path.."/nodes.lua") +dofile(default_path.."/tools.lua") \ No newline at end of file diff --git a/mods/bees/nodes.lua b/mods/bees/nodes.lua new file mode 100644 index 0000000..8520b83 --- /dev/null +++ b/mods/bees/nodes.lua @@ -0,0 +1,405 @@ +-- Nodes. + minetest.register_node('bees:extractor', { + description = 'Honey Extractor Machine', + tiles = {"bees_extractor_top.png", "bees_extractor_bottom.png", "bees_extractor_side.png", "bees_extractor_side.png", "bees_extractor_side.png", "bees_extractor_front.png"}, + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + place_param2 = 0, + groups = {choppy=2,oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.4375, 0.4375, 0, 0.4375}, + {-0.375, -0.0625, -0.375, 0.375, 0.5, 0.375}, + {-0.4375, 0.375, -0.4375, 0.4375, 0.4375, 0.4375}, + {0.375, 0, -0.4375, 0.4375, 0.4375, -0.375}, + {-0.4375, 0, -0.4375, -0.375, 0.4375, -0.375}, + {-0.4375, 0, 0.375, -0.375, 0.4375, 0.4375}, + {0.375, 0, 0.375, 0.4375, 0.4375, 0.4375}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + on_construct = function(pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local pos = pos.x..','..pos.y..','..pos.z + inv:set_size('frames_filled' ,1) + inv:set_size('frames_emptied' ,1) + inv:set_size('bottles_empty' ,1) + inv:set_size('bottles_full' ,1) + inv:set_size('wax',1) + meta:set_string('formspec', + 'size[8,9]'.. + --input + 'list[nodemeta:'..pos..';frames_filled;2,1;1,1;]'.. + 'list[nodemeta:'..pos..';bottles_empty;2,3;1,1;]'.. + --output + 'list[nodemeta:'..pos..';frames_emptied;5,0.5;1,1;]'.. + 'list[nodemeta:'..pos..';wax;5,2;1,1;]'.. + 'list[nodemeta:'..pos..';bottles_full;5,3.5;1,1;]'.. + --player inventory + 'list[current_player;main;0,5;8,4;]' + ) + end, + on_timer = function(pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if not inv:contains_item('frames_filled','bees:frame_full') or not inv:contains_item('bottles_empty','vessels:glass_bottle') then + return + end + if inv:room_for_item('frames_emptied', 'bees:frame_empty') + and inv:room_for_item('wax','bees:wax') + and inv:room_for_item('bottles_full', 'bees:bottle_honey') then + --add to output + inv:add_item('frames_emptied', 'bees:frame_empty') + inv:add_item('wax', 'bees:wax') + inv:add_item('bottles_full', 'bees:bottle_honey') + --remove from input + inv:remove_item('bottles_empty','vessels:glass_bottle') + inv:remove_item('frames_filled','bees:frame_full') + local p = {x=pos.x+math.random()-0.5, y=pos.y+math.random()-0.5, z=pos.z+math.random()-0.5} + --wax flying all over the place + minetest.add_particle({ + pos = {x=pos.x, y=pos.y, z=pos.z}, + vel = {x=math.random(-4,4),y=math.random(8),z=math.random(-4,4)}, + acc = {x=0,y=-6,z=0}, + expirationtime = 2, + size = math.random(1,3), + collisiondetection = false, + texture = 'bees_wax_particle.png', + }) + local timer = minetest.get_node_timer(pos) + timer:start(5) + else + local timer = minetest.get_node_timer(pos) + timer:start(1) -- Try again in 1 second + end + end, + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local timer = minetest.get_node_timer(pos) + if stack:get_name() == "bees:frame_full" then + if inv:is_empty("frames_filled") then + timer:start(5) + end + return inv:add_item("frames_filled",stack) + elseif stack:get_name() == "vessels:glass_bottle" then + if inv:is_empty("bottles_empty") then + timer:start(5) + end + return inv:add_item("bottles_empty",stack) + end + return stack + end, + can_insert = function(pos,node,stack,direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if stack:get_name() == "bees:frame_full" then + return inv:room_for_item("frames_filled",stack) + elseif stack:get_name() == "vessels:glass_bottle" then + return inv:room_for_item("bottles_empty",stack) + end + return false + end, + input_inventory = {"frames_emptied", "bottles_full", "wax"}, + connect_sides = {left=1, right=1, back=1, front=1, bottom=1, top=1} + }, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + local timer = minetest.get_node_timer(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:get_stack(listname, 1):get_count() == stack:get_count() then -- inv was empty -> start the timer + timer:start(5) --create a honey bottle and empty frame and wax every 5 seconds + end + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if (listname == 'bottles_empty' and stack:get_name() == 'vessels:glass_bottle') or (listname == 'frames_filled' and stack:get_name() == 'bees:frame_full') then + return stack:get_count() + else + return 0 + end + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + return 0 + end, + }) + + minetest.register_node('bees:bees', { + description = 'Flying Bees', + drawtype = 'plantlike', + paramtype = 'light', + groups = { not_in_creative_inventory=1 }, + tiles = { + { + name='bees_strip.png', + animation={type='vertical_frames', aspect_w=16,aspect_h=16, length=2.0} + } + }, + damage_per_second = 1, + walkable = false, + buildable_to = true, + pointable = false, + on_punch = function(pos, node, puncher) + local health = puncher:get_hp() + puncher:set_hp(health-2) + end, + }) + minetest.register_node('bees:hive_wild', { + description = 'Wild Bee Hive', + tiles = {"bees_hive_wild.png"}, --texture from church_candles. + drawtype = "plantlike", + paramtype = 'light', + walkable = true, + drop = { + max_items = 6, + items = { + { items = {'bees:honeycomb'}, rarity = 5} + } + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,attached_node=1}, + on_timer = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local timer= minetest.get_node_timer(pos) + local rad = 10 + local minp = {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad} + local maxp = {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad} + local flowers = minetest.find_nodes_in_area(minp, maxp, 'group:flower') + if #flowers == 0 then + inv:set_stack('queen', 1, '') + meta:set_string('infotext', 'This hive colony died! Not enough flowers in area.') + return + end --not any flowers nearby The queen dies! + if #flowers < 3 then return end --requires 2 or more flowers before can make honey + local flower = flowers[math.random(#flowers)] + bees.polinate_flower(flower, minetest.get_node(flower).name) + local stacks = inv:get_list('combs') + for k, v in pairs(stacks) do + if inv:get_stack('combs', k):is_empty() then --then replace that with a full one and reset pro.. + inv:set_stack('combs',k,'bees:honeycomb') + timer:start(1000/#flowers) + return + end + end + --what to do if all combs are filled + end, + on_construct = function(pos) + minetest.get_node(pos).param2 = 0 + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local timer = minetest.get_node_timer(pos) + meta:set_int('agressive', 1) + timer:start(100+math.random(100)) + inv:set_size('queen', 1) + inv:set_size('combs', 5) + inv:set_stack('queen', 1, 'bees:queen') + for i=1,math.random(3) do + inv:set_stack('combs', i, 'bees:honeycomb') + end + end, + on_punch = function(pos, node, puncher) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:contains_item('queen','bees:queen') then + local health = puncher:get_hp() + puncher:set_hp(health-4) + end + end, + on_metadata_inventory_take = function(pos, listname, index, stack, taker) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local timer= minetest.get_node_timer(pos) + if listname == 'combs' and inv:contains_item('queen', 'bees:queen') then + local health = taker:get_hp() + timer:start(10) + taker:set_hp(health-2) + end + end, + on_metadata_inventory_put = function(pos, listname, index, stack, taker) --restart the colony by adding a queen + local timer = minetest.get_node_timer(pos) + if not timer:is_started() then + timer:start(10) + end + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if listname == 'queen' and stack:get_name() == 'bees:queen' then + return 1 + else + return 0 + end + end, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + minetest.show_formspec( + clicker:get_player_name(), + 'bees:hive_artificial', + formspecs.hive_wild(pos, (itemstack:get_name() == 'bees:grafting_tool')) + ) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if meta:get_int('agressive') == 1 and inv:contains_item('queen', 'bees:queen') then + local health = clicker:get_hp() + clicker:set_hp(health-4) + else + meta:set_int('agressive', 1) + end + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty('queen') and inv:is_empty('combs') then + return true + else + return false + end + end, + after_dig_node = function(pos, oldnode, oldmetadata, user) + local wielded if user:get_wielded_item() ~= nil then wielded = user:get_wielded_item() else return end + if 'bees:grafting_tool' == wielded:get_name() then + local inv = user:get_inventory() + if inv then + inv:add_item('main', ItemStack('bees:queen')) + end + end + end + }) + + minetest.register_node('bees:hive_artificial', { + description = 'Bee Hive', + tiles = {'default_wood.png','default_wood.png','default_wood.png', 'default_wood.png','default_wood.png','bees_hive_artificial.png'}, + drawtype = 'nodebox', + paramtype = 'light', + paramtype2 = 'facedir', + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = 'fixed', + fixed = { + {-4/8, 2/8, -4/8, 4/8, 3/8, 4/8}, + {-3/8, -4/8, -2/8, 3/8, 2/8, 3/8}, + {-3/8, 0/8, -3/8, 3/8, 2/8, -2/8}, + {-3/8, -4/8, -3/8, 3/8, -1/8, -2/8}, + {-3/8, -1/8, -3/8, -1/8, 0/8, -2/8}, + {1/8, -1/8, -3/8, 3/8, 0/8, -2/8}, + } + }, + on_construct = function(pos) + local timer = minetest.get_node_timer(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + meta:set_int('agressive', 1) + inv:set_size('queen', 1) + inv:set_size('frames', 8) + meta:set_string('infotext','Requires a queen bee to function.') + end, + on_rightclick = function(pos, node, clicker, itemstack) + minetest.show_formspec( + clicker:get_player_name(), + 'bees:hive_artificial', + formspecs.hive_artificial(pos) + ) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if meta:get_int('agressive') == 1 and inv:contains_item('queen', 'bees:queen') then + local health = clicker:get_hp() + clicker:set_hp(health-4) + else + meta:set_int('agressive', 1) + end + end, + on_timer = function(pos,elapsed) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local timer = minetest.get_node_timer(pos) + if inv:contains_item('queen', 'bees:queen') then + if inv:contains_item('frames', 'bees:frame_empty') then + timer:start(30) + local rad = 10 + local minp = {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad} + local maxp = {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad} + local flowers = minetest.find_nodes_in_area(minp, maxp, 'group:flower') + local progress = meta:get_int('progress') + progress = progress + #flowers + meta:set_int('progress', progress) + if progress > 1000 then + local flower = flowers[math.random(#flowers)] + bees.polinate_flower(flower, minetest.get_node(flower).name) + local stacks = inv:get_list('frames') + for k, v in pairs(stacks) do + if inv:get_stack('frames', k):get_name() == 'bees:frame_empty' then + meta:set_int('progress', 0) + inv:set_stack('frames',k,'bees:frame_full') + return + end + end + else + meta:set_string('infotext', 'Progress: '..progress..'+'..#flowers..'/1000') + end + else + meta:set_string('infotext', 'Hive does not have empty frame(s)!') + timer:stop() + end + end + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + if listname == 'queen' then + local timer = minetest.get_node_timer(pos) + local meta = minetest.get_meta(pos) + meta:set_string('infotext','Hive requires a queen bee to function!') + timer:stop() + end + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local inv = minetest.get_meta(pos):get_inventory() + if from_list == to_list then + if inv:get_stack(to_list, to_index):is_empty() then + return 1 + else + return 0 + end + else + return 0 + end + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local timer = minetest.get_node_timer(pos) + if listname == 'queen' or listname == 'frames' then + meta:set_string('queen', stack:get_name()) + meta:set_string('infotext','A queen bee is inserted. Add empty frames!'); + if inv:contains_item('frames', 'bees:frame_empty') then + timer:start(30) + meta:set_string('infotext','Bees are settling in!'); + end + end + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if not minetest.get_meta(pos):get_inventory():get_stack(listname, index):is_empty() then return 0 end + if listname == 'queen' then + if stack:get_name():match('bees:queen*') then + return 1 + end + elseif listname == 'frames' then + if stack:get_name() == ('bees:frame_empty') then + return 1 + end + end + return 0 + end, + }) + +minetest.register_node("bees:honeycomb_block", { + description = "Honeycomb Block", + inventory_image = "bees_honeycomb_block.png", + tiles = {"bees_honeycomb_block.png"}, + groups = {oddly_breakable_by_hand = 3, dig_immediate = 1}, + sounds = default.node_sound_dirt_defaults(), +}) + diff --git a/mods/bees/tools.lua b/mods/bees/tools.lua new file mode 100644 index 0000000..bd76fff --- /dev/null +++ b/mods/bees/tools.lua @@ -0,0 +1,42 @@ +--TOOLS + minetest.register_tool('bees:smoker', { + description = 'Hive Smoker', + inventory_image = 'bees_smoker.png', + tool_capabilities = { + full_punch_interval = 3.0, + max_drop_level=0, + damage_groups = {fleshy=2}, + }, + on_use = function(tool, user, node) + if node then + local pos = node.under + if pos then + for i=1,6 do + minetest.add_particle({ + pos = {x=pos.x+math.random()-0.5, y=pos.y, z=pos.z+math.random()-0.5}, + vel = {x=0,y=0.5+math.random(),z=0}, + acc = {x=0,y=0,z=0}, + expirationtime = 2+math.random(2.5), + size = math.random(3), + collisiondetection = false, + texture = 'tnt_smoke.png', + }) + end + --tool:add_wear(2) + local meta = minetest.get_meta(pos) + meta:set_int('agressive', 0) + return nil + end + end + end, + }) + + minetest.register_tool('bees:grafting_tool', { + description = 'Beehive Grafting Tool', + inventory_image = 'bees_grafting_tool.png', + tool_capabilities = { + full_punch_interval = 3.0, + max_drop_level=0, + damage_groups = {fleshy=2}, + }, + }) diff --git a/mods/scifi_nodes/README.md b/mods/scifi_nodes/README.md index 1d4e12a..6a3ffd6 100644 --- a/mods/scifi_nodes/README.md +++ b/mods/scifi_nodes/README.md @@ -7,6 +7,6 @@ Minetest mod that adds scifi themed nodes # Attributions -CC BY-NC 3.0 +CC BY 3.0 * scifi_nodes_door_normal.ogg tlwmdbt https://freesound.org/people/tlwmdbt/sounds/165862/ -* scifi_nodes_door_mechanic.ogg primeval_polypod https://freesound.org/people/primeval_polypod/sounds/156507/ +* scifi_nodes_door_mechanic.ogg freedoom https://github.com/freedoom/freedoom \ No newline at end of file diff --git a/mods_disabled/farming/.gitignore b/mods_disabled/farming/.gitignore new file mode 100644 index 0000000..3e88fa7 --- /dev/null +++ b/mods_disabled/farming/.gitignore @@ -0,0 +1 @@ +farming.conf diff --git a/mods_disabled/farming/README.md b/mods_disabled/farming/README.md new file mode 100644 index 0000000..0dfebbb --- /dev/null +++ b/mods_disabled/farming/README.md @@ -0,0 +1,66 @@ +# Farming Redo Mod +### by TenPlus1 + +https://forum.minetest.net/viewtopic.php?id=9019 + +Farming Redo is a simplified 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... + +This mod works 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. + +"farming:cotton_1" through to "farming:cotton_8" +"farming:wheat_1" through to "farming:wheat_8" +"farming:cucumber_4" through to "farming:cucumber_4" + +### Changelog: + +- 1.42 - Soil needs water to be present within 3 blocks horizontally and 1 below to make wet soil, Jack 'o Lanterns now check protection, add chocolate block +- 1.41 - Each crop has it's own spawn rate (can be changed in farming.conf) +- 1.40 - Added Mithril Scythe to quick harvest and replant crops on right-click. Added Hoe's for MoreOres with Toolrank support. +- 1.39 - Added Rice, Rye and Oats thanks to Ademants Grains mod. Added Jaffa Cake and multigrain bread. +- 1.38 - Pumpkin grows into block, use chopping board to cut into 4x slices, same with melon block, 2x2 slices makes a block, cocoa pods are no longer walkable +- 1.37 - Added custom 'growth_check(pos, nodename) function for crop nodes to use (check cocoa.lua for example) +- 1.36 - Added Beetroot, Beetroot Soup (6x beetroot, 1x bowl), fix register_plant() issue, add new recipes +- 1.35 - Deprecated bronze/mese/diamond hoe's, added hoe bomb and deprecated hoe's as lucky block prizes +- 1.34 - Added scarecrow Base (5x sticks in a cross shape) +- 1.33 - Added cooking utensils (wooden bowl, saucepan, cooking pot, baking tray, skillet, cutting board, mortar & pestle, juicer, glass mixing bowl) for easier food crafts. +- 1.32 - Added Pea plant (textures by Andrey01) - also added Wooden Bowl and Pea Soup crafts +- 1.31 - Added Pineapple which can be found growing in savannah areas (place pineapple in crafting to obtain 5x rings to eat and a top for re-planting), also Salt which is made from cooking a bucket of water, added food groups so it's more compatible with Ruben's food mods. +- 1.30 - Added Garlic, Pepper and Onions thanks to Grizzly Adam for sharing textures +- 1.29 - Updating functions so requires Minetest 0.4.16 and above to run +- 1.28 - Added chili peppers and bowl of chili, optimized code and fixed a few bugs, added porridge +- 1.27 - Added meshoptions to api and wheat plants, added farming.rarity setting to spawn more/less crops on map, have separate cotton/string items (4x cotton = 1x wool, 2x cotton = 2x string) +- 1.26 - Added support for [toolranks] mod when using hoe's +- 1.25 - Added check for farming.conf setting file to disable specific crops globally (inside mod folder) or world specific (inside world folder) +- 1.24 - Added Hemp which can be crafted into fibre, paper, string, rope and oil. +- 1.23 - Huge code tweak and tidy done and added barley seeds to be found in dry grass, barley can make flour for bread also. +- 1.22 - Added grape bushes at high climates which can be cultivated into grape vines using trellis (9 sticks). +- 1.21 - Added auto-refill code for planting crops (thanks crabman77), also fixed a few bugs +- 1.20b - Tidied code, made api compatible with new 0.4.13 changes and changed to soil texture overlays +- 1.20 - NEW growing routine added that allows crops to grow while player is away doing other things (thanks prestidigitator) +- 1.14 - Added Green Beans from Crops mod (thanks sofar), little bushels in the wild but need to be grown using beanpoles crafted with 4 sticks (2 either side) +- 1.13 - Fixed seed double-placement glitch. Mapgen now uses 0.4.12+ for plant generation +- 1.12 - Player cannot place seeds in protected area, also growing speeds changed to match defaults +- 1.11 - Added Straw Bale, streamlined growing abm a little, fixed melon rotation bug with screwdriver +- 1.10 - Added Blueberry Bush and Blueberry Muffins, also Pumpkin/Melon easier to pick up, added check for unloaded map +- 1.09 - Corn now uses single nodes instead of 1 ontop of the other, Ethanol recipe is more expensive (requires 5 corn) and some code cleanup. +- 1.08 - Added Farming Plus compatibility, plus can be removed and no more missing nodes +- 1.07 - Added Rhubarb and Rhubarb Pie +- 1.06 - register_hoe and register_plant added for compatibility with default farming mod, although any plants registered will use farming redo to grow +- 1.05 - Added Raspberry Bushels and Raspberry Smoothie +- 1.04 - Added Donuts... normal, chocolate and apple... and a few code cleanups and now compatible with jungletree's from MoreTrees mod +- 1.03 - Bug fixes and more compatibility as drop-in replacement for built-in farming mod +- 1.02 - Added farming.mod string to help other mods identify which farming mod is running, if it returns "redo" then you're using this one, "" empty is built-in mod +- 1.01 - Crafting coffee or ethanol returns empty bucket/bottle, also Cocoa spawns a little rarer +- 1.0 - Added Cocoa which randomly grows on jungle tree's, pods give cocoa beans which can be used to farm more pods on a jungle trunk or make Cookies which have been added (or other treats) +- 0.9 - Added Pumpkin, Jack 'O Lantern, Pumpkin Slice and Sugar (a huge thanks to painterly.net for allowing me to use their textures) +- 0.8 - Added Watermelon and Melon Slice +- 0.7 - Added Coffee, Coffee Beans, Drinking Cup, Cold and Hot Cup of Coffee +- 0.6 - Added Corn, Corn on the Cob... Also reworked Abm +- 0.5 - Added Carrot, Cucumber, Potato (and Baked Potato), Tomato +- 0.4 - Checks for Protection, also performance changes +- 0.3 - Added Diamond and Mese hoe +- 0.2 - Fixed check for wet soil +- 0.1 - Fixed growing bug +- 0.0 - Initial release + +### Lucky Blocks: 39 diff --git a/mods_disabled/farming/README.txt b/mods_disabled/farming/README.txt new file mode 100644 index 0000000..d46748d --- /dev/null +++ b/mods_disabled/farming/README.txt @@ -0,0 +1,40 @@ +Minetest Game mod: farming +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by PilzAdam (MIT) +webdesigner97 (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +Created by PilzAdam (CC BY 3.0): + farming_bread.png + farming_soil.png + farming_soil_wet.png + farming_soil_wet_side.png + farming_string.png + +Created by BlockMen (CC BY 3.0): + farming_tool_diamondhoe.png + farming_tool_mesehoe.png + farming_tool_bronzehoe.png + farming_tool_steelhoe.png + farming_tool_stonehoe.png + farming_tool_woodhoe.png + +Created by MasterGollum (CC BY 3.0): + farming_straw.png + +Created by Gambit (CC BY 3.0): + farming_wheat.png + farming_wheat_*.png + farming_cotton_*.png + farming_flour.png + farming_cotton_seed.png + farming_wheat_seed.png + +Created by Napiophelios (CC BY-SA 3.0): + farming_cotton.png diff --git a/mods_disabled/farming/api.lua b/mods_disabled/farming/api.lua new file mode 100644 index 0000000..91d557c --- /dev/null +++ b/mods_disabled/farming/api.lua @@ -0,0 +1,401 @@ +-- farming/api.lua + +-- support for MT game translation. +local S = farming.get_translator + +-- Wear out hoes, place soil +-- TODO Ignore group:flower +farming.registered_plants = {} + +farming.hoe_on_use = function(itemstack, user, pointed_thing, uses) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local above = minetest.get_node(p) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if the node above the pointed thing is air + if above.name ~= "air" then + return + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") ~= 1 then + return + end + + -- check if (wet) soil defined + local regN = minetest.registered_nodes + if regN[under.name].soil == nil or regN[under.name].soil.wet == nil or regN[under.name].soil.dry == nil then + return + end + + if minetest.is_protected(pt.under, user:get_player_name()) then + minetest.record_protection_violation(pt.under, user:get_player_name()) + return + end + if minetest.is_protected(pt.above, user:get_player_name()) then + minetest.record_protection_violation(pt.above, user:get_player_name()) + return + end + + -- turn the node into soil and play sound + minetest.set_node(pt.under, {name = regN[under.name].soil.dry}) + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }, true) + + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(user:get_player_name())) then + -- wear tool + local wdef = itemstack:get_definition() + itemstack:add_wear(65535/(uses-1)) + -- tool break sound + if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then + minetest.sound_play(wdef.sound.breaks, {pos = pt.above, + gain = 0.5}, true) + end + end + return itemstack +end + +-- Register new hoes +farming.register_hoe = function(name, def) + -- Check for : prefix (register new hoes in your mod's namespace) + if name:sub(1,1) ~= ":" then + name = ":" .. name + end + -- Check def table + if def.description == nil then + def.description = S("Hoe") + end + if def.inventory_image == nil then + def.inventory_image = "unknown_item.png" + end + if def.max_uses == nil then + def.max_uses = 30 + end + -- Register the tool + minetest.register_tool(name, { + description = def.description, + inventory_image = def.inventory_image, + on_use = function(itemstack, user, pointed_thing) + return farming.hoe_on_use(itemstack, user, pointed_thing, def.max_uses) + end, + groups = def.groups, + sound = {breaks = "default_tool_breaks"}, + }) + -- Register its recipe + if def.recipe then + minetest.register_craft({ + output = name:sub(2), + recipe = def.recipe + }) + elseif def.material then + minetest.register_craft({ + output = name:sub(2), + recipe = { + {def.material, def.material}, + {"", "group:stick"}, + {"", "group:stick"} + } + }) + end +end + +-- how often node timers for plants will tick, +/- some random value +local function tick(pos) + minetest.get_node_timer(pos):start(math.random(166, 286)) +end +-- how often a growth failure tick is retried (e.g. too dark) +local function tick_again(pos) + minetest.get_node_timer(pos):start(math.random(40, 80)) +end + +-- Seed placement +farming.place_seed = function(itemstack, placer, pointed_thing, plantname) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return itemstack + end + if pt.type ~= "node" then + return itemstack + end + + local under = minetest.get_node(pt.under) + local above = minetest.get_node(pt.above) + + local player_name = placer and placer:get_player_name() or "" + + if minetest.is_protected(pt.under, player_name) then + minetest.record_protection_violation(pt.under, player_name) + return + end + if minetest.is_protected(pt.above, player_name) then + minetest.record_protection_violation(pt.above, player_name) + return + end + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return itemstack + end + if not minetest.registered_nodes[above.name] then + return itemstack + end + + -- check if pointing at the top of the node + if pt.above.y ~= pt.under.y+1 then + return itemstack + end + + -- check if you can replace the node above the pointed node + if not minetest.registered_nodes[above.name].buildable_to then + return itemstack + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") < 2 then + return itemstack + end + + -- add the node and remove 1 item from the itemstack + minetest.log("action", player_name .. " places node " .. plantname .. " at " .. + minetest.pos_to_string(pt.above)) + minetest.add_node(pt.above, {name = plantname, param2 = 1}) + tick(pt.above) + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + return itemstack +end + +farming.grow_plant = function(pos, elapsed) + local node = minetest.get_node(pos) + local name = node.name + local def = minetest.registered_nodes[name] + + if not def.next_plant then + -- disable timer for fully grown plant + return + end + + -- grow seed + if minetest.get_item_group(node.name, "seed") and def.fertility then + local soil_node = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) + if not soil_node then + tick_again(pos) + return + end + -- omitted is a check for light, we assume seeds can germinate in the dark. + for _, v in pairs(def.fertility) do + if minetest.get_item_group(soil_node.name, v) ~= 0 then + local placenode = {name = def.next_plant} + if def.place_param2 then + placenode.param2 = def.place_param2 + end + minetest.swap_node(pos, placenode) + if minetest.registered_nodes[def.next_plant].next_plant then + tick(pos) + return + end + end + end + + return + end + + -- check if on wet soil + local below = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if minetest.get_item_group(below.name, "soil") < 3 then + tick_again(pos) + return + end + + -- check light + local light = minetest.get_node_light(pos) + if not light or light < def.minlight or light > def.maxlight then + tick_again(pos) + return + end + + -- grow + local placenode = {name = def.next_plant} + if def.place_param2 then + placenode.param2 = def.place_param2 + end + minetest.swap_node(pos, placenode) + + -- new timer needed? + if minetest.registered_nodes[def.next_plant].next_plant then + tick(pos) + end + return +end + +-- Register plants +farming.register_plant = function(name, def) + local mname = name:split(":")[1] + local pname = name:split(":")[2] + + -- Check def table + if not def.description then + def.description = S("Seed") + end + if not def.harvest_description then + def.harvest_description = pname:gsub("^%l", string.upper) + end + if not def.inventory_image then + def.inventory_image = "unknown_item.png" + end + if not def.steps then + return nil + end + if not def.minlight then + def.minlight = 1 + end + if not def.maxlight then + def.maxlight = 14 + end + if not def.fertility then + def.fertility = {} + end + + farming.registered_plants[pname] = def + + -- Register seed + local lbm_nodes = {mname .. ":seed_" .. pname} + local g = {seed = 1, snappy = 3, attached_node = 1, flammable = 2} + for k, v in pairs(def.fertility) do + g[v] = 1 + end + minetest.register_node(":" .. mname .. ":seed_" .. pname, { + description = def.description, + tiles = {def.inventory_image}, + inventory_image = def.inventory_image, + wield_image = def.inventory_image, + drawtype = "signlike", + groups = g, + paramtype = "light", + paramtype2 = "wallmounted", + place_param2 = def.place_param2 or nil, -- this isn't actually used for placement + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + fertility = def.fertility, + sounds = default.node_sound_dirt_defaults({ + dig = {name = "", gain = 0}, + dug = {name = "default_grass_footstep", gain = 0.2}, + place = {name = "default_place_node", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":seed_" .. pname) + end, + next_plant = mname .. ":" .. pname .. "_1", + on_timer = farming.grow_plant, + minlight = def.minlight, + maxlight = def.maxlight, + }) + + -- Register harvest + minetest.register_craftitem(":" .. mname .. ":" .. pname, { + description = def.harvest_description, + inventory_image = mname .. "_" .. pname .. ".png", + groups = def.groups or {flammable = 2}, + }) + + -- Register growing steps + for i = 1, def.steps do + local base_rarity = 1 + if def.steps ~= 1 then + base_rarity = 8 - (i - 1) * 7 / (def.steps - 1) + end + local drop = { + items = { + {items = {mname .. ":" .. pname}, rarity = base_rarity}, + {items = {mname .. ":" .. pname}, rarity = base_rarity * 2}, + {items = {mname .. ":seed_" .. pname}, rarity = base_rarity}, + {items = {mname .. ":seed_" .. pname}, rarity = base_rarity * 2}, + } + } + local nodegroups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1} + nodegroups[pname] = i + + local next_plant = nil + + if i < def.steps then + next_plant = mname .. ":" .. pname .. "_" .. (i + 1) + lbm_nodes[#lbm_nodes + 1] = mname .. ":" .. pname .. "_" .. i + end + + minetest.register_node(":" .. mname .. ":" .. pname .. "_" .. i, { + drawtype = "plantlike", + waving = 1, + tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"}, + paramtype = "light", + paramtype2 = def.paramtype2 or nil, + place_param2 = def.place_param2 or nil, + walkable = false, + buildable_to = true, + drop = drop, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + groups = nodegroups, + sounds = default.node_sound_leaves_defaults(), + next_plant = next_plant, + on_timer = farming.grow_plant, + minlight = def.minlight, + maxlight = def.maxlight, + }) + end + + -- replacement LBM for pre-nodetimer plants + minetest.register_lbm({ + name = ":" .. mname .. ":start_nodetimer_" .. pname, + nodenames = lbm_nodes, + action = function(pos, node) + tick_again(pos) + end, + }) + + -- Return + local r = { + seed = mname .. ":seed_" .. pname, + harvest = mname .. ":" .. pname + } + return r +end diff --git a/mods_disabled/farming/api.txt b/mods_disabled/farming/api.txt new file mode 100644 index 0000000..acec5a0 --- /dev/null +++ b/mods_disabled/farming/api.txt @@ -0,0 +1,64 @@ +Farming API +----------- + +The farming API allows you to easily register plants and hoes. + +`farming.register_hoe(name, hoe definition)` + * Register a new hoe, see [#hoe definition] + +`farming.register_plant(name, Plant definition)` + * Register a new growing plant, see [#Plant definition] + +`farming.registered_plants[name] = definition` + * Table of registered plants, indexed by plant name + 'crop' holds name of growing crop node minus _step-number at end + 'seed' has name of seed required to plant crop + 'minlight' min light level needed to grow + 'maxlight' max light level needed to grow + 'steps' number of steps crop has in growth cycle + +### Hoe Definition + + + { + description = "", -- Description for tooltip + inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image + max_uses = 30, -- Uses until destroyed + material = "", -- Material for recipes + recipe = { -- Craft recipe, if material isn't used + {"air", "air", "air"}, + {"", "group:stick"}, + {"", "group:stick"}, + } + } + +### Plant definition + + { + description = "", -- Description of seed item + inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image + steps = 8, -- How many steps the plant has to grow, until it can be harvested + -- ^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber) + minlight = 13, -- Minimum light to grow + maxlight = default.LIGHT_MAX -- Maximum light to grow + } + +Note: Any crops registered with the above function will use the new growing routines, also if crops are manually added with the {growing=1} group they will also grow. + +### Crop functions + +If a mod registers nodes to be used as crops using the {growing=1} group then an additional function can be used for custom growth checks instead of the standard 'are we above wet soil'. + +growth_check = function(pos, node_name) + -- check surrounding for jungle tree + if minetest.find_node_near(pos, 1, {"default:jungletree"}) then + return false -- place next growth stage + end + return true -- condition not met, skip next growth stage until next check +end, + +### Scythe items that will not drop + +This is a function to add items to a list that scythes will not drop, e.g. farming:trellis or farming:beanpole. + +farming.add_to_scythe_not_drops(item_name) diff --git a/mods_disabled/farming/compatibility.lua b/mods_disabled/farming/compatibility.lua new file mode 100644 index 0000000..808000d --- /dev/null +++ b/mods_disabled/farming/compatibility.lua @@ -0,0 +1,172 @@ + +--= Helpers + +local eth = minetest.get_modpath("ethereal") +local alias = function(orig, new) + minetest.register_alias(orig, new) +end + +--= Overrides (add food_* group to apple and brown mushroom) + +minetest.override_item("default:apple", { + groups = {food_apple = 1, fleshy = 3, dig_immediate = 3, flammable = 2, + leafdecay = 3, leafdecay_drop = 1}, +}) + +if minetest.registered_nodes["flowers:mushroom_brown"] then +minetest.override_item("flowers:mushroom_brown", { + light_source = 1, + groups = {food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 2}, +}) +end + +--= Aliases + +-- Banana +if eth then + alias("farming_plus:banana_sapling", "ethereal:banana_tree_sapling") + alias("farming_plus:banana_leaves", "ethereal:bananaleaves") + alias("farming_plus:banana", "ethereal:banana") +else + minetest.register_node(":ethereal:banana", { + description = "Banana", + drawtype = "torchlike", + tiles = {"banana_single.png"}, + inventory_image = "banana_single.png", + wield_image = "banana_single.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2} + }, + groups = {food_banana = 1, fleshy = 3, dig_immediate = 3, flammable = 2}, + on_use = minetest.item_eat(2), + sounds = default.node_sound_leaves_defaults(), + }) + + minetest.register_node(":ethereal:bananaleaves", { + description = "Banana Leaves", + tiles = {"banana_leaf.png"}, + inventory_image = "banana_leaf.png", + wield_image = "banana_leaf.png", + paramtype = "light", + waving = 1, + groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, + sounds = default.node_sound_leaves_defaults(), + }) + + alias("farming_plus:banana_sapling", "default:sapling") + alias("farming_plus:banana_leaves", "ethereal:bananaleaves") + alias("farming_plus:banana", "ethereal:banana") +end + +-- Carrot +alias("farming_plus:carrot_seed", "farming:carrot") +alias("farming_plus:carrot_1", "farming:carrot_1") +alias("farming_plus:carrot_2", "farming:carrot_4") +alias("farming_plus:carrot_3", "farming:carrot_6") +alias("farming_plus:carrot", "farming:carrot_8") +alias("farming_plus:carrot_item", "farming:carrot") + +-- Cocoa +alias("farming_plus:cocoa_sapling", "farming:cocoa_beans") +alias("farming_plus:cocoa_leaves", "default:leaves") +alias("farming_plus:cocoa", "default:apple") +alias("farming_plus:cocoa_bean", "farming:cocoa_beans") + +-- Orange +alias("farming_plus:orange_1", "farming:tomato_1") +alias("farming_plus:orange_2", "farming:tomato_4") +alias("farming_plus:orange_3", "farming:tomato_6") + +if eth then + alias("farming_plus:orange_item", "ethereal:orange") + alias("farming_plus:orange", "ethereal:orange") + alias("farming_plus:orange_seed", "ethereal:orange_tree_sapling") +else + minetest.register_node(":ethereal:orange", { + description = "Orange", + drawtype = "plantlike", + tiles = {"farming_orange.png"}, + inventory_image = "farming_orange.png", + wield_image = "farming_orange.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2} + }, + groups = {food_orange = 1, fleshy = 3, dig_immediate = 3, flammable = 2}, + on_use = minetest.item_eat(4), + sounds = default.node_sound_leaves_defaults(), + }) + + alias("farming_plus:orange_item", "ethereal:orange") + alias("farming_plus:orange", "ethereal:orange") + alias("farming_plus:orange_seed", "default:sapling") +end + +-- Potato +alias("farming_plus:potato_item", "farming:potato") +alias("farming_plus:potato_1", "farming:potato_1") +alias("farming_plus:potato_2", "farming:potato_2") +alias("farming_plus:potato", "farming:potato_3") +alias("farming_plus:potato_seed", "farming:potato") + +-- Pumpkin +alias("farming:pumpkin_seed", "farming:pumpkin_slice") +alias("farming:pumpkin_face", "farming:jackolantern") +alias("farming:pumpkin_face_light", "farming:jackolantern_on") +alias("farming:big_pumpkin", "farming:jackolantern") +alias("farming:big_pumpkin_side", "air") +alias("farming:big_pumpkin_top", "air") +alias("farming:big_pumpkin_corner", "air") +alias("farming:scarecrow", "farming:jackolantern") +alias("farming:scarecrow_light", "farming:jackolantern_on") +alias("farming:pumpkin_flour", "farming:pumpkin_dough") + +-- Rhubarb +alias("farming_plus:rhubarb_seed", "farming:rhubarb") +alias("farming_plus:rhubarb_1", "farming:rhubarb_1") +alias("farming_plus:rhubarb_2", "farming:rhubarb_2") +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 = "Strawberry", + inventory_image = "strawberry.png", + wield_image = "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 + +-- Tomato +alias("farming_plus:tomato_seed", "farming:tomato") +alias("farming_plus:tomato_item", "farming:tomato") +alias("farming_plus:tomato_1", "farming:tomato_2") +alias("farming_plus:tomato_2", "farming:tomato_4") +alias("farming_plus:tomato_3", "farming:tomato_6") +alias("farming_plus:tomato", "farming:tomato_8") + +-- Weed +alias("farming:weed", "default:grass_2") diff --git a/mods_disabled/farming/crops/blueberry.lua b/mods_disabled/farming/crops/blueberry.lua new file mode 100644 index 0000000..fb99303 --- /dev/null +++ b/mods_disabled/farming/crops/blueberry.lua @@ -0,0 +1,96 @@ + +local S = farming.intllib + +-- blueberries + +-- Removing redundant blueberry item from legacy. +--minetest.register_craftitem("farming:blueberries", { +-- description = S("Blueberries"), +-- inventory_image = "farming_blueberries.png", +-- groups = {food_blueberries = 1, food_blueberry = 1, food_berry = 1, flammable = 2}, +-- on_place = function(itemstack, placer, pointed_thing) +-- return farming.place_seed(itemstack, placer, pointed_thing, "farming:blueberry_1") +-- end, +-- on_use = minetest.item_eat(1), +--}) + +-- blueberry muffin (thanks to sosogirl123 @ deviantart.com for muffin image) + +minetest.register_craftitem("farming:muffin_blueberry", { + description = S("Blueberry Muffin"), + inventory_image = "farming_blueberry_muffin.png", + on_use = minetest.item_eat(2), +}) + +minetest.register_craft({ + output = "farming:muffin_blueberry 2", + recipe = { + {"default:blueberries", "group:food_bread", "default:blueberries"}, + } +}) + +-- Blueberry Pie + +minetest.register_craftitem("farming:blueberry_pie", { + description = S("Blueberry Pie"), + inventory_image = "farming_blueberry_pie.png", + on_use = minetest.item_eat(6), +}) + +minetest.register_craft({ + output = "farming:blueberry_pie", + type = "shapeless", + recipe = { + "group:food_flour", "group:food_sugar", + "default:blueberries", "group:food_baking_tray" + }, + replacements = {{"group:food_baking_tray", "farming:baking_tray"}} +}) + +-- blueberry definition +--local crop_def = { +-- drawtype = "plantlike", +-- tiles = {"farming_blueberry_1.png"}, +-- paramtype = "light", +-- sunlight_propagates = true, +-- 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:blueberry_1", table.copy(crop_def)) + +-- stage 2 +--crop_def.tiles = {"farming_blueberry_2.png"} +--minetest.register_node("farming:blueberry_2", table.copy(crop_def)) + +-- stage 3 +--crop_def.tiles = {"farming_blueberry_3.png"} +--minetest.register_node("farming:blueberry_3", table.copy(crop_def)) + +-- stage 4 (final) +--crop_def.tiles = {"farming_blueberry_4.png"} +--crop_def.groups.growing = 0 +--crop_def.drop = { +-- items = { +-- {items = {'farming:blueberries'}, rarity = 1}, +-- {items = {'farming:blueberries'}, rarity = 10}, +-- } +--} +--minetest.register_node("farming:blueberry_4", table.copy(crop_def)) + +-- add to registered_plants +--farming.registered_plants["farming:blueberries"] = { +-- crop = "farming:blueberry", +-- seed = "farming:blueberries", +-- minlight = 13, +-- maxlight = 15, +-- steps = 4 +--} diff --git a/mods_disabled/farming/crops/chili.lua b/mods_disabled/farming/crops/chili.lua new file mode 100644 index 0000000..429d256 --- /dev/null +++ b/mods_disabled/farming/crops/chili.lua @@ -0,0 +1,101 @@ + +local S = farming.intllib + +-- chili pepper +minetest.register_craftitem("farming:chili_pepper", { + description = S("Chili Pepper"), + inventory_image = "farming_chili_pepper.png", + groups = {food_chili_pepper = 1, flammable = 4}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:chili_1") + end, + on_use = minetest.item_eat(2), +}) + +-- bowl of chili +minetest.register_craftitem("farming:chili_bowl", { + description = S("Bowl of Chili"), + inventory_image = "farming_chili_bowl.png", + on_use = minetest.item_eat(8, "farming:bowl"), +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:chili_bowl", + recipe = { + "group:food_chili_pepper", "group:food_barley", + "group:food_tomato", "group:food_beans", "group:food_bowl" + }, +}) + +-- chili can be used for red dye +minetest.register_craft({ + output = "dye:red", + recipe = { + {'farming:chili_pepper'}, + } +}) + +-- chili definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_chili_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 4, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:chili_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_chili_2.png"} +minetest.register_node("farming:chili_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_chili_3.png"} +minetest.register_node("farming:chili_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_chili_4.png"} +minetest.register_node("farming:chili_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_chili_5.png"} +minetest.register_node("farming:chili_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_chili_6.png"} +minetest.register_node("farming:chili_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_chili_7.png"} +minetest.register_node("farming:chili_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_chili_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:chili_pepper 3'}, rarity = 1}, + {items = {'farming:chili_pepper 2'}, rarity = 2}, + } +} +minetest.register_node("farming:chili_8", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:chili_pepper"] = { + crop = "farming:chili", + seed = "farming:chili_pepper", + minlight = 13, + maxlight = 15, + steps = 8 +} diff --git a/mods_disabled/farming/crops/corn.lua b/mods_disabled/farming/crops/corn.lua new file mode 100644 index 0000000..e2e630b --- /dev/null +++ b/mods_disabled/farming/crops/corn.lua @@ -0,0 +1,124 @@ + +--[[ + Original textures from GeMinecraft + http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/1440575-1-2-5-generation-minecraft-beta-1-2-farming-and +]] + +local S = farming.intllib + +-- corn +minetest.register_craftitem("farming:corn", { + description = S("Corn"), + inventory_image = "farming_corn.png", + groups = {food_corn = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:corn_1") + end, + on_use = minetest.item_eat(3), +}) + +-- corn on the cob (texture by TenPlus1) +minetest.register_craftitem("farming:corn_cob", { + description = S("Corn on the Cob"), + inventory_image = "farming_corn_cob.png", + groups = {food_corn_cooked = 1, flammable = 2}, + on_use = minetest.item_eat(5), +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 10, + output = "farming:corn_cob", + recipe = "group:food_corn" +}) + +-- cornstarch +minetest.register_craftitem("farming:cornstarch", { + description = S("Cornstarch"), + inventory_image = "farming_cornstarch.png", + groups = {food_cornstarch = 1, flammable = 2}, +}) + +minetest.register_craft({ + output = "farming:cornstarch", + recipe = { + {"group:food_mortar_pestle", "group:food_corn_cooked", "group:food_baking_tray"}, + {"", "group:food_bowl", ""}, + }, + replacements = { + {"group:food_mortar_pestle", "farming:mortar_pestle"}, + {"group:food_baking_tray", "farming:baking_tray"}, + } +}) + +-- corn definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_corn_1.png"}, + paramtype = "light", + sunlight_propagates = true, + 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:corn_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_corn_2.png"} +minetest.register_node("farming:corn_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_corn_3.png"} +minetest.register_node("farming:corn_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_corn_4.png"} +minetest.register_node("farming:corn_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_corn_5.png"} +minetest.register_node("farming:corn_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_corn_6.png"} +crop_def.visual_scale = 1.9 -- 1.45 +minetest.register_node("farming:corn_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_corn_7.png"} +crop_def.drop = { + items = { + {items = {'farming:corn'}, rarity = 2}, + {items = {'farming:corn'}, rarity = 3}, + } +} +minetest.register_node("farming:corn_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_corn_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:corn 2'}, rarity = 1}, + {items = {'farming:corn 2'}, rarity = 2}, + {items = {'farming:corn 2'}, rarity = 4}, + } +} +minetest.register_node("farming:corn_8", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:corn"] = { + crop = "farming:corn", + seed = "farming:corn", + minlight = 13, + maxlight = 15, + steps = 8 +} diff --git a/mods_disabled/farming/crops/cotton.lua b/mods_disabled/farming/crops/cotton.lua new file mode 100644 index 0000000..f14362d --- /dev/null +++ b/mods_disabled/farming/crops/cotton.lua @@ -0,0 +1,157 @@ + +local S = farming.intllib + +-- cotton seeds +minetest.register_node("farming:seed_cotton", { + description = S("Cotton Seed"), + tiles = {"farming_cotton_seed.png"}, + inventory_image = "farming_cotton_seed.png", + wield_image = "farming_cotton_seed.png", + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:cotton_1") + end, +}) + +-- cotton / string + +minetest.register_craftitem("farming:cotton", { + description = S("Cotton"), + inventory_image = "farming_cotton.png", + groups = {flammable = 4}, +}) + +minetest.register_craftitem("farming:string", { + description = S("String"), + inventory_image = "farming_string.png", + groups = {flammable = 2}, +}) + +-- cotton to wool +minetest.register_craft({ + output = "wool:white", + recipe = { + {"farming:cotton", "farming:cotton"}, + {"farming:cotton", "farming:cotton"}, + } +}) + +-- cotton to string +minetest.register_craft({ + output = "farming:string 2", + recipe = { + {"farming:cotton"}, + {"farming:cotton"}, + } +}) + +-- can be used as fuel +minetest.register_craft({ + type = "fuel", + recipe = "farming:string", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:cotton", + burntime = 1, +}) + +-- cotton definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_cotton_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 4, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:cotton_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_cotton_2.png"} +minetest.register_node("farming:cotton_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_cotton_3.png"} +minetest.register_node("farming:cotton_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_cotton_4.png"} +minetest.register_node("farming:cotton_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_cotton_5.png"} +crop_def.drop = { + items = { + {items = {"farming:seed_cotton"}, rarity = 5}, + } +} +minetest.register_node("farming:cotton_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_cotton_6.png"} +crop_def.drop = { + items = { + {items = {"farming:cotton"}, rarity = 4}, + } +} +minetest.register_node("farming:cotton_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_cotton_7.png"} +crop_def.drop = { + items = { + {items = {"farming:cotton"}, rarity = 1}, + {items = {"farming:seed_cotton"}, rarity = 2}, + } +} +minetest.register_node("farming:cotton_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_cotton_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {"farming:cotton"}, rarity = 1}, + {items = {"farming:cotton"}, rarity = 2}, + {items = {"farming:cotton"}, rarity = 3}, + {items = {"farming:seed_cotton"}, rarity = 1}, + {items = {"farming:seed_cotton"}, rarity = 2}, + {items = {"farming:seed_cotton"}, rarity = 3}, + } +} +minetest.register_node("farming:cotton_8", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:cotton"] = { + crop = "farming:cotton", + seed = "farming:seed_cotton", + minlight = 13, + maxlight = 15, + steps = 8 +} + +--[[ Cotton (example, is already registered in cotton.lua) +farming.register_plant("farming:cotton", { + description = "Cotton seed", + inventory_image = "farming_cotton_seed.png", + groups = {flammable = 2}, + steps = 8, +})]] diff --git a/mods_disabled/farming/crops/cucumber.lua b/mods_disabled/farming/crops/cucumber.lua new file mode 100644 index 0000000..d7178b8 --- /dev/null +++ b/mods_disabled/farming/crops/cucumber.lua @@ -0,0 +1,65 @@ + +--[[ + Original textures from DocFarming mod + https://forum.minetest.net/viewtopic.php?id=3948 +]] + +local S = farming.intllib + +-- cucumber +minetest.register_craftitem("farming:cucumber", { + description = S("Cucumber"), + inventory_image = "farming_cucumber.png", + groups = {food_cucumber = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:cucumber_1") + end, + on_use = minetest.item_eat(4), +}) + +-- cucumber definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_cucumber_1.png"}, + paramtype = "light", + 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:cucumber_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_cucumber_2.png"} +minetest.register_node("farming:cucumber_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_cucumber_3.png"} +minetest.register_node("farming:cucumber_3", table.copy(crop_def)) + +-- stage 4 (final) +crop_def.tiles = {"farming_cucumber_4.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:cucumber 2'}, rarity = 1}, + {items = {'farming:cucumber 2'}, rarity = 2}, + } +} +minetest.register_node("farming:cucumber_4", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:cucumber"] = { + crop = "farming:cucumber", + seed = "farming:cucumber", + minlight = 13, + maxlight = 15, + steps = 4 +} diff --git a/mods_disabled/farming/crops/garlic.lua b/mods_disabled/farming/crops/garlic.lua new file mode 100644 index 0000000..54a877f --- /dev/null +++ b/mods_disabled/farming/crops/garlic.lua @@ -0,0 +1,135 @@ + +--[[ + Original textures from Crops Plus mod + Copyright (C) 2018 Grizzly Adam + https://forum.minetest.net/viewtopic.php?f=9&t=19488 +]] + +local S = farming.intllib + +-- potato +minetest.register_craftitem("farming:garlic_clove", { + description = S("Garlic clove"), + inventory_image = "crops_garlic_clove.png", + groups = {food_garlic_clove = 1, flammable = 3}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:garlic_1") + end, +}) + +-- garlic bulb +minetest.register_craftitem("farming:garlic", { + description = S("Garlic"), + inventory_image = "crops_garlic.png", + on_use = minetest.item_eat(1), + groups = {food_garlic = 1, flammable = 3}, +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:garlic_clove 8", + recipe = { "farming:garlic" } +}) + +minetest.register_craft({ + output = "farming:garlic", + recipe = { + {"farming:garlic_clove", "farming:garlic_clove", "farming:garlic_clove"}, + {"farming:garlic_clove", "", "farming:garlic_clove"}, + {"farming:garlic_clove", "farming:garlic_clove", "farming:garlic_clove"} + } +}) + +-- garlic braid +minetest.register_node("farming:garlic_braid", { + description = S("Garlic Braid"), + inventory_image = "crops_garlic_braid.png", + wield_image = "crops_garlic_braid.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = { + "crops_garlic_braid_side.png","crops_garlic_braid.png", + "crops_garlic_braid_side.png^[transformFx","crops_garlic_braid_side.png", + "crops_garlic_braid.png","crops_garlic_braid.png" + }, + groups = {vessel = 1, dig_immediate = 3, flammable = 3}, + sounds = default.node_sound_leaves_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.13, -0.45, 0.5, 0.13, 0.45, 0.24}, + }, + } +}) + +minetest.register_craft({ + output = "farming:garlic_braid", + recipe = { + {"farming:garlic", "farming:garlic", "farming:garlic"}, + {"farming:garlic", "farming:garlic", "farming:garlic"}, + {"farming:garlic", "farming:garlic", "farming:garlic"} + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:garlic 9", + recipe = { "farming:garlic_braid" } +}) + +-- crop definition +local crop_def = { + drawtype = "plantlike", + tiles = {"crops_garlic_plant_1.png"}, + paramtype = "light", + paramtype2 = "meshoptions", + place_param2 = 3, + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 3, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:garlic_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"crops_garlic_plant_2.png"} +minetest.register_node("farming:garlic_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"crops_garlic_plant_3.png"} +minetest.register_node("farming:garlic_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"crops_garlic_plant_4.png"} +minetest.register_node("farming:garlic_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"crops_garlic_plant_5.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:garlic 3'}, rarity = 1}, + {items = {'farming:garlic'}, rarity = 2}, + {items = {'farming:garlic'}, rarity = 5}, + } +} +minetest.register_node("farming:garlic_5", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:garlic"] = { + crop = "farming:garlic", + seed = "farming:garlic_clove", + minlight = 13, + maxlight = 15, + steps = 5 +} diff --git a/mods_disabled/farming/crops/melon.lua b/mods_disabled/farming/crops/melon.lua new file mode 100644 index 0000000..b21cab3 --- /dev/null +++ b/mods_disabled/farming/crops/melon.lua @@ -0,0 +1,94 @@ + +local S = farming.intllib + +-- melon +minetest.register_craftitem("farming:melon_slice", { + description = S("Melon Slice"), + inventory_image = "farming_melon_slice.png", + groups = {food_melon_slice = 1, flammable = 3}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:melon_1") + end, + on_use = minetest.item_eat(2), +}) + +minetest.register_craft({ + output = "farming:melon_8", + recipe = { + {"farming:melon_slice", "farming:melon_slice"}, + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:melon_slice 4", + recipe = {"farming:melon_8", "farming:cutting_board"}, + replacements = {{"farming:cutting_board", "farming:cutting_board"}}, +}) + +-- melon definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_melon_1.png"}, + paramtype = "light", + sunlight_propagates = true, + 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:melon_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_melon_2.png"} +minetest.register_node("farming:melon_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_melon_3.png"} +minetest.register_node("farming:melon_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_melon_4.png"} +minetest.register_node("farming:melon_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_melon_5.png"} +minetest.register_node("farming:melon_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_melon_6.png"} +minetest.register_node("farming:melon_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_melon_7.png"} +minetest.register_node("farming:melon_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.drawtype = "nodebox" +crop_def.description = S("Melon") +crop_def.tiles = {"farming_melon_top.png", "farming_melon_top.png", "farming_melon_side.png"} +crop_def.selection_box = {-.5, -.5, -.5, .5, .5, .5} +crop_def.walkable = true +crop_def.groups = { + food_melon = 1, snappy = 1, oddly_breakable_by_hand = 1, + flammable = 2, plant = 1 +} +--crop_def.drop = "farming:melon_slice 9" +crop_def.drop = "farming:melon_8" +minetest.register_node("farming:melon_8", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:melon"] = { + crop = "farming:melon", + seed = "farming:melon_slice", + minlight = 13, + maxlight = 15, + steps = 8 +} diff --git a/mods_disabled/farming/crops/move-to-crops/carrot.lua b/mods_disabled/farming/crops/move-to-crops/carrot.lua new file mode 100644 index 0000000..839db2c --- /dev/null +++ b/mods_disabled/farming/crops/move-to-crops/carrot.lua @@ -0,0 +1,104 @@ + +--[[ + Original textures from PixelBox texture pack + https://forum.minetest.net/viewtopic.php?id=4990 +]] + +local S = farming.intllib + +-- carrot +minetest.register_craftitem("farming:carrot", { + description = S("Carrot"), + inventory_image = "farming_carrot.png", + groups = {food_carrot = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:carrot_1") + end, + on_use = minetest.item_eat(4), +}) + +-- golden carrot +minetest.register_craftitem("farming:carrot_gold", { + description = S("Golden Carrot"), + inventory_image = "farming_carrot_gold.png", + on_use = minetest.item_eat(6), +}) + +minetest.register_craft({ + output = "farming:carrot_gold", + recipe = { + {"", "default:gold_lump", ""}, + {"default:gold_lump", "group:food_carrot", "default:gold_lump"}, + {"", "default:gold_lump", ""}, + } +}) + +-- carrot definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_carrot_1.png"}, + paramtype = "light", + sunlight_propagates = true, + 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:carrot_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_carrot_2.png"} +minetest.register_node("farming:carrot_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_carrot_3.png"} +minetest.register_node("farming:carrot_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_carrot_4.png"} +minetest.register_node("farming:carrot_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_carrot_5.png"} +minetest.register_node("farming:carrot_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_carrot_6.png"} +minetest.register_node("farming:carrot_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_carrot_7.png"} +crop_def.drop = { + items = { + {items = {'farming:carrot'}, rarity = 2}, + } +} +minetest.register_node("farming:carrot_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_carrot_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:carrot'}, rarity = 1}, + {items = {'farming:carrot 2'}, rarity = 2}, + } +} +minetest.register_node("farming:carrot_8", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:carrot"] = { + crop = "farming:carrot", + seed = "farming:carrot", + minlight = 13, + maxlight = 15, + steps = 8 +} diff --git a/mods_disabled/farming/crops/move-to-crops/cocoa.lua b/mods_disabled/farming/crops/move-to-crops/cocoa.lua new file mode 100644 index 0000000..abc2246 --- /dev/null +++ b/mods_disabled/farming/crops/move-to-crops/cocoa.lua @@ -0,0 +1,244 @@ + +local S = farming.intllib + +-- place cocoa +local function place_cocoa(itemstack, placer, pointed_thing, plantname) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + + -- return if any of the nodes are not registered + if not minetest.registered_nodes[under.name] then + return + end + + -- am I right-clicking on something that has a custom on_place set? + -- thanks to Krock for helping with this issue :) + local def = minetest.registered_nodes[under.name] + if placer and def and def.on_rightclick then + return def.on_rightclick(pt.under, under, placer, itemstack) + end + + -- check if pointing at jungletree + if under.name ~= "default:jungletree" + or minetest.get_node(pt.above).name ~= "air" then + return + end + + -- is player planting crop? + local name = placer and placer:get_player_name() or "" + + -- check for protection + if minetest.is_protected(pt.above, name) then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.set_node(pt.above, {name = plantname}) + + minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}) + + if placer and not farming.is_creative(placer:get_player_name()) then + + itemstack:take_item() + + -- check for refill + if itemstack:get_count() == 0 then + + minetest.after(0.20, + farming.refill_plant, + placer, + "farming:cocoa_beans", + placer:get_wield_index() + ) + end + end + + return itemstack +end + +-- cocoa beans +minetest.register_craftitem("farming:cocoa_beans", { + description = S("Cocoa Beans"), + inventory_image = "farming_cocoa_beans.png", + groups = {food_cocoa = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return place_cocoa(itemstack, placer, pointed_thing, "farming:cocoa_1") + end, +}) + +minetest.register_craft( { + output = "dye:brown 2", + recipe = { + { "farming:cocoa_beans" }, + } +}) + +-- chocolate cookie +minetest.register_craftitem("farming:cookie", { + description = S("Cookie"), + inventory_image = "farming_cookie.png", + on_use = minetest.item_eat(2), +}) + +minetest.register_craft( { + output = "farming:cookie 8", + recipe = { + {"group:food_wheat", "group:food_cocoa", "group:food_wheat" }, + } +}) + +-- bar of dark chocolate (thanks to Ice Pandora for her deviantart.com chocolate tutorial) +minetest.register_craftitem("farming:chocolate_dark", { + description = S("Bar of Dark Chocolate"), + inventory_image = "farming_chocolate_dark.png", + on_use = minetest.item_eat(3), +}) + +minetest.register_craft( { + output = "farming:chocolate_dark", + recipe = { + {"group:food_cocoa", "group:food_cocoa", "group:food_cocoa"}, + } +}) + +-- chocolate block +minetest.register_node("farming:chocolate_block", { + description = S("Chocolate Block"), + tiles = {"farming_chocolate_block.png"}, + is_ground_content = false, + groups = {cracky = 2, oddly_breakable_by_hand = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_craft({ + output = "farming:chocolate_block", + recipe = { + {"farming:chocolate_dark", "farming:chocolate_dark", "farming:chocolate_dark"}, + {"farming:chocolate_dark", "farming:chocolate_dark", "farming:chocolate_dark"}, + {"farming:chocolate_dark", "farming:chocolate_dark", "farming:chocolate_dark"}, + } +}) + +minetest.register_craft({ + output = "farming:chocolate_dark 9", + recipe = { + {"farming:chocolate_block"}, + } +}) + +-- cocoa definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_cocoa_1.png"}, + paramtype = "light", + walkable = false, + drop = { + items = { + {items = {'farming:cocoa_beans 1'}, rarity = 2}, + } + }, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + groups = { + snappy = 3, flammable = 2, plant = 1, growing = 1, + not_in_creative_inventory=1, leafdecay = 1, leafdecay_drop = 1 + }, + sounds = default.node_sound_leaves_defaults(), + growth_check = function(pos, node_name) + if minetest.find_node_near(pos, 1, {"default:jungletree"}) then + return false + end + return true + end, +} + +-- stage 1 +minetest.register_node("farming:cocoa_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_cocoa_2.png"} +minetest.register_node("farming:cocoa_2", table.copy(crop_def)) + +-- stage3 +crop_def.tiles = {"farming_cocoa_3.png"} +crop_def.drop = { + items = { + {items = {'farming:cocoa_beans'}, rarity = 2}, + } +} +minetest.register_node("farming:cocoa_3", table.copy(crop_def)) + +-- stage 4 (final) +crop_def.tiles = {"farming_cocoa_4.png"} +crop_def.groups.growing = 0 +crop_def.growth_check = nil +crop_def.drop = { + items = { + {items = {'farming:cocoa_beans 2'}, rarity = 1}, + {items = {'farming:cocoa_beans 1'}, rarity = 2}, + {items = {'farming:cocoa_beans 1'}, rarity = 4}, + } +} +minetest.register_node("farming:cocoa_4", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:cocoa_beans"] = { + crop = "farming:cocoa", + seed = "farming:cocoa_beans", + minlight = 13, + maxlight = 15, + steps = 4 +} + +-- add random cocoa pods to jungle tree's +minetest.register_on_generated(function(minp, maxp) + + if maxp.y < 0 then + return + end + + local pos, dir + local cocoa = minetest.find_nodes_in_area(minp, maxp, "default:jungletree") + + for n = 1, #cocoa do + + pos = cocoa[n] + + if minetest.find_node_near(pos, 1, + {"default:jungleleaves", "moretrees:jungletree_leaves_green"}) then + + dir = math.random(1, 80) + + if dir == 1 then + pos.x = pos.x + 1 + elseif dir == 2 then + pos.x = pos.x - 1 + elseif dir == 3 then + pos.z = pos.z + 1 + elseif dir == 4 then + pos.z = pos.z -1 + end + + if dir < 5 + and minetest.get_node(pos).name == "air" + and minetest.get_node_light(pos) > 12 then + + --print ("Cocoa Pod added at " .. minetest.pos_to_string(pos)) + + minetest.swap_node(pos, { + name = "farming:cocoa_" .. tostring(math.random(1, 4)) + }) + end + + end + end +end) diff --git a/mods_disabled/farming/crops/move-to-crops/coffee.lua b/mods_disabled/farming/crops/move-to-crops/coffee.lua new file mode 100644 index 0000000..c4528e2 --- /dev/null +++ b/mods_disabled/farming/crops/move-to-crops/coffee.lua @@ -0,0 +1,97 @@ + +local S = farming.intllib + +-- coffee +minetest.register_craftitem("farming:coffee_beans", { + description = S("Coffee Beans"), + inventory_image = "farming_coffee_beans.png", + groups = {food_coffee = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:coffee_1") + end, +}) + +-- cold cup of coffee +minetest.register_node("farming:coffee_cup", { + description = S("Cup of Coffee"), + drawtype = "torchlike", --"plantlike", + tiles = {"farming_coffee_cup.png"}, + inventory_image = "farming_coffee_cup.png", + wield_image = "farming_coffee_cup.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25} + }, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, + on_use = minetest.item_eat(2, "vessels:drinking_glass"), + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_alias("farming:coffee_cup_hot", "farming:coffee_cup") +minetest.register_alias("farming:drinking_cup", "vessels:drinking_glass") + +minetest.register_craft( { + output = "farming:coffee_cup", + type = "shapeless", + recipe = {"vessels:drinking_glass", "group:food_coffee", + "bucket:bucket_water", "group:food_saucepan"}, + replacements = { + {"bucket:bucket_water", "bucket:bucket_empty"}, + {"group:food_saucepan", "farming:saucepan"}, + } +}) + +-- coffee definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_coffee_1.png"}, + paramtype = "light", + sunlight_propagates = true, + 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:coffee_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_coffee_2.png"} +minetest.register_node("farming:coffee_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_coffee_3.png"} +minetest.register_node("farming:coffee_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_coffee_4.png"} +minetest.register_node("farming:coffee_4", table.copy(crop_def)) + +-- stage 5 (final) +crop_def.tiles = {"farming_coffee_5.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:coffee_beans 2'}, rarity = 1}, + {items = {'farming:coffee_beans 2'}, rarity = 2}, + {items = {'farming:coffee_beans 2'}, rarity = 3}, + } +} +minetest.register_node("farming:coffee_5", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:coffee"] = { + crop = "farming:coffee", + seed = "farming:coffee_beans", + minlight = 13, + maxlight = 15, + steps = 5 +} diff --git a/mods_disabled/farming/crops/move-to-crops/grapes.lua b/mods_disabled/farming/crops/move-to-crops/grapes.lua new file mode 100644 index 0000000..59cf6a4 --- /dev/null +++ b/mods_disabled/farming/crops/move-to-crops/grapes.lua @@ -0,0 +1,265 @@ + +local S = farming.intllib + +-- place trellis +local function place_grapes(itemstack, placer, pointed_thing, plantname) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or pt.type ~= "node" then + + return + end + + local under = minetest.get_node(pt.under) + + -- return if any of the nodes are not registered + if not minetest.registered_nodes[under.name] then + return + end + + -- am I right-clicking on something that has a custom on_place set? + -- thanks to Krock for helping with this issue :) + local def = minetest.registered_nodes[under.name] + if placer and def and def.on_rightclick then + return def.on_rightclick(pt.under, under, placer, itemstack) + end + + -- is player planting seed? + local name = placer and placer:get_player_name() or "" + + -- check for protection + if minetest.is_protected(pt.under, name) then + return + end + + -- check if pointing at trellis + if under.name ~= "farming:trellis" then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.set_node(pt.under, {name = plantname}) + + minetest.sound_play("default_place_node", {pos = pt.under, gain = 1.0}) + + if placer and not farming.is_creative(placer:get_player_name()) then + + itemstack:take_item() + + -- check for refill + if itemstack:get_count() == 0 then + + minetest.after(0.20, + farming.refill_plant, + placer, + "farming:grapes", + placer:get_wield_index() + ) + end + end + + return itemstack +end + +-- grapes +minetest.register_craftitem("farming:grapes", { + description = S("Grapes"), + inventory_image = "farming_grapes.png", + on_use = minetest.item_eat(2), + groups = {food_grapes = 1, flammable = 3}, + + on_place = function(itemstack, placer, pointed_thing) + return place_grapes(itemstack, placer, pointed_thing, "farming:grapes_1") + end, +}) + +-- grapes can be used for violet dye +minetest.register_craft({ + output = "dye:violet", + recipe = { + {'farming:grapes'}, + } +}) + +-- trellis +minetest.register_node("farming:trellis", { + description = S("Trellis (place on soil before planting grapes)"), + drawtype = "plantlike", + tiles = {"farming_trellis.png"}, + inventory_image = "farming_trellis.png", + visual_scale = 1.9, -- 1.45, + paramtype = "light", + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = "farming:trellis", + selection_box = farming.select, + groups = {snappy = 3, flammable = 2, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_place = function(itemstack, placer, pointed_thing) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + + -- return if any of the nodes are not registered + if not minetest.registered_nodes[under.name] then + return + end + + -- am I right-clicking on something that has a custom on_place set? + -- thanks to Krock for helping with this issue :) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pt.under, under, placer, itemstack) + end + + if minetest.is_protected(pt.above, placer:get_player_name()) then + return + end + + local nodename = under.name + + if minetest.get_item_group(nodename, "soil") < 2 then + return + end + + local top = { + x = pointed_thing.above.x, + y = pointed_thing.above.y + 1, + z = pointed_thing.above.z + } + + nodename = minetest.get_node(top).name + + if nodename ~= "air" then + return + end + + minetest.set_node(pointed_thing.above, {name = "farming:trellis"}) + + if not farming.is_creative(placer:get_player_name()) then + itemstack:take_item() + end + + return itemstack + end +}) + +minetest.register_craft({ + output = "farming:trellis", + recipe = { + {'default:stick', 'default:stick', 'default:stick'}, + {'default:stick', 'default:stick', 'default:stick'}, + {'default:stick', 'default:stick', 'default:stick'}, + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:trellis", + burntime = 15, +}) + +-- grapes definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_grapes_1.png"}, + visual_scale = 1.9, -- 1.45, + paramtype = "light", + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = { + items = { + {items = {'farming:trellis'}, rarity = 1}, + } + }, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 3, not_in_creative_inventory = 1, + attached_node = 1, growing = 1, plant = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:grapes_1", table.copy(crop_def)) + +-- stage2 +crop_def.tiles = {"farming_grapes_2.png"} +minetest.register_node("farming:grapes_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_grapes_3.png"} +minetest.register_node("farming:grapes_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_grapes_4.png"} +minetest.register_node("farming:grapes_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_grapes_5.png"} +minetest.register_node("farming:grapes_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_grapes_6.png"} +minetest.register_node("farming:grapes_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_grapes_7.png"} +minetest.register_node("farming:grapes_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_grapes_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:trellis'}, rarity = 1}, + {items = {'farming:grapes 3'}, rarity = 1}, + {items = {'farming:grapes'}, rarity = 2}, + {items = {'farming:grapes'}, rarity = 3}, + } +} +minetest.register_node("farming:grapes_8", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:grapes"] = { + crop = "farming:grapes", + seed = "farming:grapes", + minlight = 13, + maxlight = 15, + steps = 8 +} + +-- wild grape vine (this is what you find on the map) +minetest.register_node("farming:grapebush", { + drawtype = "plantlike", + tiles = {"farming_grapebush.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = { + items = { + {items = {'farming:grapes 1'}, rarity = 1}, + {items = {'farming:grapes 1'}, rarity = 2}, + {items = {'farming:grapes 1'}, rarity = 3}, + } + }, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory=1 + }, + sounds = default.node_sound_leaves_defaults(), +}) diff --git a/mods_disabled/farming/crops/move-to-crops/hemp.lua b/mods_disabled/farming/crops/move-to-crops/hemp.lua new file mode 100644 index 0000000..931a586 --- /dev/null +++ b/mods_disabled/farming/crops/move-to-crops/hemp.lua @@ -0,0 +1,260 @@ + +local S = farming.intllib + +-- hemp seeds +minetest.register_node("farming:seed_hemp", { + description = S("Hemp Seed"), + tiles = {"farming_hemp_seed.png"}, + inventory_image = "farming_hemp_seed.png", + wield_image = "farming_hemp_seed.png", + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:hemp_1") + end, +}) + +-- harvested hemp +minetest.register_craftitem("farming:hemp_leaf", { + description = S("Hemp Leaf"), + inventory_image = "farming_hemp_leaf.png", +}) + +-- hemp oil +minetest.register_node("farming:hemp_oil", { + description = S("Bottle of Hemp Oil"), + drawtype = "plantlike", + tiles = {"farming_hemp_oil.png"}, + inventory_image = "farming_hemp_oil.png", + wield_image = "farming_hemp_oil.png", + paramtype = "light", + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} + }, + groups = {food_oil = 1, vessel = 1, dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft( { + output = "farming:hemp_oil", + recipe = { + {"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}, + {"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}, + {"", "vessels:glass_bottle", ""} + } +}) + +minetest.register_craft( { + output = "farming:hemp_oil", + recipe = { + {"farming:seed_hemp", "farming:seed_hemp", "farming:seed_hemp"}, + {"farming:seed_hemp", "farming:seed_hemp", "farming:seed_hemp"}, + {"farming:seed_hemp", "vessels:glass_bottle", "farming:seed_hemp"} + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:hemp_oil", + burntime = 20, + replacements = {{ "farming:hemp_oil", "vessels:glass_bottle"}} +}) + +-- hemp fibre +minetest.register_craftitem("farming:hemp_fibre", { + description = S("Hemp Fibre"), + inventory_image = "farming_hemp_fibre.png", +}) + +minetest.register_craft( { + output = "farming:hemp_fibre 8", + recipe = { + {"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}, + {"farming:hemp_leaf", "bucket:bucket_water", "farming:hemp_leaf"}, + {"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"} + }, + replacements = {{ "bucket:bucket_water", "bucket:bucket_empty"}} +}) + +minetest.register_craft( { + output = "farming:hemp_fibre 8", + recipe = { + {"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}, + {"farming:hemp_leaf", "bucket:bucket_river_water", "farming:hemp_leaf"}, + {"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"} + }, + replacements = {{ "bucket:bucket_river_water", "bucket:bucket_empty"}} +}) + +-- hemp block +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} +}) + +minetest.register_craft( { + output = "farming:hemp_block", + recipe = { + {"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"}, + {"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"}, + {"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"} + }, +}) + +-- check and register stairs +if minetest.global_exists("stairs") then + + if stairs.mod and stairs.mod == "redo" then + + stairs.register_all("hemp_block", "farming:hemp_block", + {snappy = 1, flammable = 2}, + {"farming_hemp_block.png"}, + "Hemp Block", + default.node_sound_leaves_defaults()) + else + + stairs.register_stair_and_slab("hemp_block", "farming:hemp_block", + {snappy = 1, flammable = 2}, + {"farming_hemp_block.png"}, + "Hemp Block Stair", + "Hemp Block Slab", + default.node_sound_leaves_defaults()) + end +end + +-- paper +minetest.register_craft( { + output = "default:paper", + recipe = { + {"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"}, + } +}) + +-- string +minetest.register_craft( { + output = "farming:cotton", + recipe = { + {"farming:hemp_fibre"}, + {"farming:hemp_fibre"}, + {"farming:hemp_fibre"}, + } +}) + +-- hemp rope +minetest.register_node("farming:hemp_rope", { + description = S("Hemp Rope"), + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + tiles = {"farming_hemp_rope.png"}, + wield_image = "farming_hemp_rope.png", + inventory_image = "farming_hemp_rope.png", + drawtype = "plantlike", + groups = {flammable = 2, choppy = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, +}) + +-- string +minetest.register_craft( { + output = "farming:hemp_rope 6", + recipe = { + {"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"}, + {"farming:cotton", "farming:cotton", "farming:cotton"}, + {"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"}, + } +}) + +-- hemp definition +local crop_def = { + drawtype = "plantlike", + tiles = {"farming_hemp_1.png"}, + paramtype = "light", + sunlight_propagates = true, + 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:hemp_1", table.copy(crop_def)) + +-- stage 2 +crop_def.tiles = {"farming_hemp_2.png"} +minetest.register_node("farming:hemp_2", table.copy(crop_def)) + +-- stage 3 +crop_def.tiles = {"farming_hemp_3.png"} +minetest.register_node("farming:hemp_3", table.copy(crop_def)) + +-- stage 4 +crop_def.tiles = {"farming_hemp_4.png"} +minetest.register_node("farming:hemp_4", table.copy(crop_def)) + +-- stage 5 +crop_def.tiles = {"farming_hemp_5.png"} +minetest.register_node("farming:hemp_5", table.copy(crop_def)) + +-- stage 6 +crop_def.tiles = {"farming_hemp_6.png"} +crop_def.drop = { + items = { + {items = {'farming:hemp_leaf'}, rarity = 2}, + {items = {'farming:seed_hemp'}, rarity = 1}, + } +} +minetest.register_node("farming:hemp_6", table.copy(crop_def)) + +-- stage 7 +crop_def.tiles = {"farming_hemp_7.png"} +crop_def.drop = { + items = { + {items = {'farming:hemp_leaf'}, rarity = 1}, + {items = {'farming:hemp_leaf'}, rarity = 3}, + {items = {'farming:seed_hemp'}, rarity = 1}, + {items = {'farming:seed_hemp'}, rarity = 3}, + } +} +minetest.register_node("farming:hemp_7", table.copy(crop_def)) + +-- stage 8 (final) +crop_def.tiles = {"farming_hemp_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {'farming:hemp_leaf 2'}, rarity = 1}, + {items = {'farming:hemp_leaf'}, rarity = 2}, + {items = {'farming:seed_hemp'}, rarity = 1}, + {items = {'farming:seed_hemp'}, rarity = 2}, + } +} +minetest.register_node("farming:hemp_8", table.copy(crop_def)) + +-- add to registered_plants +farming.registered_plants["farming:hemp"] = { + crop = "farming:hemp", + seed = "farming:seed_hemp", + minlight = 13, + maxlight = 15, + steps = 8 +} diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot.png new file mode 100644 index 0000000000000000000000000000000000000000..73f2fd47bcdb21d6a2e8e708671be884cde03b46 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|Ao7!l@h2S>q|v6C`4u zBWO{^JvUCuu9bUvs=Rxrz`imq|5*azOT{kLtKID~d@|dYO{aVtP&;EukY6x^!?PP{ zKu)-)i(`ny<*9w1LJbN$EQ;L@90&jJ58E>3X!p}QRxf8A*(smcHg&7U`53cKXHUjZ zvkU1$t0Xrz{HTsEKh1Hmd|{#5b!ok07w7xUU)Fr^Q%^7FbpH4sbD3S;nLJmoom2<3 Og2B_(&t;ucLK6UaE=pej literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_1.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_1.png new file mode 100644 index 0000000000000000000000000000000000000000..bbeae7e8a3ca2915c4b76dba28933e95a6ebdc0b GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|uId~D{<8$amx`^jo6-jq zWGo5t3ubV5b|VeQ5%hF%4B@z*oUlMBgCR+cosEGdjNx!I_xT$@Nd`|>KbLh*2~7Z+ CK^ZXs literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_2.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b24ecc05049160fe0965788b1c5b767530ae92b5 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t{xl${<8$amx^gVx%C?; z$XF8O7tG-B>_!@pBjV}e7{YNqIbnf}34@_>M?z5o0|QqaqYL-egkwN?22WQ%mvv4F FO#mQi8odAj literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_3.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_3.png new file mode 100644 index 0000000000000000000000000000000000000000..840050570f0fb4f23654553e1a90026f3defe895 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|u1cH&{<8$amx}2yUyKI| zGL{7S1v5B2yO9Ruh%YY?E4sHEZY|a0#z`0y85}S Ib4q9e00lT2M*si- literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_4.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_4.png new file mode 100644 index 0000000000000000000000000000000000000000..32ee26245c9e8c2a2821d3fae65a911b4abdedbb GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0YzoQ^0?gK=@Lz`)+;~ zKt5whkY6x^!?PP{K#ruRi(?4K_2h&FECnVEoXeOUnu-}ao*rOe5MRM$=KRjmdKI;Vst0KR`6IRF3v literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_5.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_5.png new file mode 100644 index 0000000000000000000000000000000000000000..0bcd9c1e3baf7dcc4ce9c88dbf3dcfe4ca6dc1bd GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0YzoQ^0?gK=@Lz`)+;~ zKt5whkY6x^!?PP{K#r`Zi(?4K_2dKv;Q|u|&Sl09O~s5IPZ?As_zf5sR2i6=nXX@q Q04ikgboFyt=akR{0P;>7g#Z8m literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_6.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_6.png new file mode 100644 index 0000000000000000000000000000000000000000..a17c6b2bbff968e6e4946726acf6442f54f92bcf GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0YzoQ^0?gK=@Lz`)+;~ zKt5whkY6x^!?PP{K#sDfi(?4K_2dKvUI~VcuFMk>te90S#2Gl1*%b~}FsM8`z`)?- Wz;T{J7 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_7.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_7.png new file mode 100644 index 0000000000000000000000000000000000000000..d26eee7cce6a0d6cc021517a73d615b470958d6b GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZWnj>>DC4$k<#z8BaOo59 zpCu5!R4n1wn;$?0j3q&S!3+-1ZlnP@nw~C>Asp9}6Be*07&inkG79Wt%ywdG5tZQz nJ($H1c=*5@hO0+Z7*rTaYMHGL_B2cdYGUwo^>bP0l+XkK-Pb3p literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_8.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_carrot_8.png new file mode 100644 index 0000000000000000000000000000000000000000..00b6d92885e473fd0ca76295b14c1294559d9765 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=1E}+;*+p?wtZIeFFQ+ zwESlYgfA7lRIhfo%kar;Upb}x)j&mzB|(0{3=Yq3qyag)o-U3d9M_W*7APf{Hw18U z3hZNyc4TasI)^RvU>ZZ<;RA0Nt{zcgNIjFqD#Wl#j%9yx$7&7 zzGjClAx5&ITmDqb6!CLv38-&bpa04@nCo<{Lh#iW{1zQeOZ{1Fx}F|A&~=OF_qJD| p->yC>5L#nhvwUaqw%^Tf<8Ry-Qj|ClUjej?!PC{xWt~$(69D9SLB9Y1 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_1.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_1.png new file mode 100644 index 0000000000000000000000000000000000000000..18fd362ca60be7c7c7e4586cd3f6000733321259 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VtFfu3il2&hvcBVF6_nrh7_fB7(z z-nmzD6AcolpZF4f;jHoDc@BqOCH-Pax%AL@O^1q>O@D%V+B@SdeJ)>qac@m(=I4EA aZvFQn)1UYDr}qFYWAJqKb6Mw<&;$SjU{(MC literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_2.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c304ee0e5c412edd8c8930dfc701d581c336e5b0 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VtFfu3il2&hvi__tq4k{% zN9QqIn9J~J6T_Wt3_njWd_O7ozo$ic+Z$qm+8IlN{DK)A zp4~_Taxy(#977~7_x3q5wJLD1o|NzM7kFQPYen6yO^J`sFe!3fDx0+K_}aTyFWI-L z8wH#0x~a!MM{HT%JF{3G=j!XCQcArS(-@*;9cr1xS9U}yJ~wuJCX|-g_~+XGIXguv kWjDQ_!@alDA>NX~bp~^{(EZ{|KuZ}sUHx3vIVCg!0C3-0NdN!< literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_3.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d66b47d4ca78df51eb94b754aee9087876ffbed3 GIT binary patch literal 446 zcmV;v0YUzWP)nECsS_ z@4bq?>z7eau8-@z3n5b1$_G8UK2GKf=+S8aOcDbiqcH|nwgrKb zQ_EAS_>~Md1@P|g-gOmoPQ6rPV1p4oV`>Oqbob{}ytL97lKfpW}ePk(7 zQ67Y(5nqCkL2)pFO&*(vHW2ukwA#y>L8)5DS%b62FVb@{-39aVK=JnGf55^)B1+Y| z4^SzkNlf{ktm^m+TDIn8ezjD*yDZazdY-LE4q$As8zB{O^^>{%B>1h!igvmh oIW3`K2|8!C&_0i*L8chs8;u35i*ARo)Bpeg07*qoM6N<$f`bLkSO5S3 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_4.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_4.png new file mode 100644 index 0000000000000000000000000000000000000000..990a8b456db53bbe859e537509881e94002988cd GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VYi?q?il53_4Uzqtf@ciG zwUhPlnn*sgQ+n>9`#i+@Rf5OstdO^*N$;BSKlD_7nqT#Gao+5AO}#+vj3q&S!3+-1 zZlnP@6`n4RArhB;&js=^D{`;|gp05`R{y_TR?_*l#!x@QgLCD1Kik96?K7`Be0lXQ zt$5kw=U+PI8g{%YX>b*1z7aK_+xhCTsMF57IL>U}ci_^jRWo>b9d>E>JQCJhy7lh{ z7J&xqH*!ucXVyODwtRlb<>mCAsdN4{&z-UFSux8(opmSlfNo&$boFyt=akR{060iw AZ~y=R literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_beans.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_cocoa_beans.png new file mode 100644 index 0000000000000000000000000000000000000000..4022f8e8b748f132bcae1a762a0ee96d80c75fe4 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ4cpG?sKo25Et+T{Ti~MF z8DTa(-R+9gYhj=Q#*!evU5E&^1fZW1~Xy1dW!13K|+5 f8yU0s^cWa6ALXe3yedx!Xg-6dtDnm{r-UW|E!{Vd literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_1.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_1.png new file mode 100644 index 0000000000000000000000000000000000000000..97c207a313610e5e4e8316d762ab75d8e8236aad GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aRbXJ?3guI(Qc@;KxK?2L4Lsu4$p3+0Xb5hE{-7_*OL<#=xekX-jG?q!^f)8 de3ik2fkAvRqo}92{sN#X22WQ%mvv4FO#q!(BT@hW literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_2.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a659f851fd94fe9e9025d2ef700b41bb19714e01 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aRbXJ?4B(Nhlrx)a6Llym z`9fObi<*XaRb5~EjM74dfyx+5g8YIR9G=}s19DV6T^vI=t|uofkmG1EjCjbytkLYt ocL&V_ils_RF7~fa)1MUHx3vIVCg!0Fnal#7TQD| zib^@3TJ)&2{ZmK7QinM}X~vQuzhDN3XE)M-96L`J#}JO|$q5R48xBgc1+eYTWNbOO zP=IgQ=}V#tLVPk@0j4sqQUi{jQ{ziuTg~Lm6rmuxO0CtGAx~8>m!CkB O7(8A5T-G@yGywoQ%rRa7 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_4.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_4.png new file mode 100644 index 0000000000000000000000000000000000000000..37a609f66d24cd61f8aed53098d2f0eb4a19578f GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aRbXJ?4&jlhRxq1tYqQWM z>QGe5`P8CErR|?Oaz20h1ysgZ666=m;PC858jut0>Eal|aXmS~fr%|(mZ6}U5L0po zr-Nh;TY%W^Oh?8UiVG$9u7yln$1t&AV*tbI#PlZt`pqlS%FPNHj9o;J2s>=4Smng& l(PDelcLBqqHeMG-23`lwI{$O`*n!3~c)I$ztaD0e0suJ!Ix7GG literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_5.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_coffee_5.png new file mode 100644 index 0000000000000000000000000000000000000000..e624fbebe1129c5c884a7c3abd76d86350e62e8c GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aRbXJ?^y6M^&LC5*U^dm( zW}!{u>7=4ZrR|?OmWRFS2P$JM3GxeOaCmkj4af=hba4#fxSpKgz{D3YOH)v75?AsH zO$W&wz5ub^(T2Z?7p4WwY)Hf7ON6Hxp?`) zua9p(eS7-h+sAI6D}q2Zj3q&S!3+-1ZlnP@R-P`7Asp9}6BY<;Sh}=zsValy8-=(^ zh6#y0EUa%%@Te*{ByLdQ;_6z?Bx<~an`>GFZ<3~dc|rmM!;xOD{YKWQEkIKkJYD@< J);T3K0RRauGzb6y literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_grapebush.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_grapebush.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e662059176174f47bee9064eb63c9c36d99f1a GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bO)b&w;GE`WBGV|}qcBlN ztRl(*D8*P366&XcY3~p)~x=Jbv3`rdl*4ENZu5)^OeI1;7 z90c7vrgR#*oH}xYMdzqO&k~6>ZH_l?Na`>L@g^ELnKZU6P~z!nGWadpAi*&43dhd! T=tKX3CNp@t`njxgN@xNA6R|Z; literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_1.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_1.png new file mode 100644 index 0000000000000000000000000000000000000000..64a935d27a6b088bfb71470cb180119014a75862 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)*FXja7h@SObLkj&)ii%y z`H4FHMYc;DeAcuF>q)B$1C=qB1o;IsI6S+N2INfgba4#PIG>!rz+}eE$1af4&{(w9 z7@SE6XK-xcVmB#I_%Y43F_3|!aJ9s#hYwG!<7(m% yWz1o8C}%mq8o?XUShhhahcl2vguzijnnA2f{mewspshgHF?hQAxvXVS)S49Q}7h@SObLkj&)ii%y z`H4FHMYc;DeAcuF=cyL|1S(@J3GxeOaCmkj4anK*>EaloasKE8L;gbw0%4 zyU+22%6L|FC?7j!u`A;bb69=j%k$H`A3NsE*_*GZKmEI0xJY5kI^Cd}XB+qYy1wqa zN{%!`hO|PXrkbEo%Q_t=r%Ev?#l$lwg528AByYNy-}d#a4KL?D(+A3$uD&)}txI@+ zUrqjWJLs&+r|QS?-#NBEo|gXIg7VS)*Fpvc7h@SObLkj&)ii%y z`H4FHMYc;DeAcuFPx@566R3=_B*-tA!Qt7BG$7}gr;B5V#`(Du4EdW31X>N3wr=FE z7N2X~P^z+UYoDpW;}eTM@^}1WI(&Yc_@k{(F>kh;=<9!f7dPq0@sv2`lh19&6uQ@f743&i) z3a)In6}!GH>1gBqzW=`sG)iozuKD$<`P?s!j_gY5yN`;T_iBGBl=Bxa<*%Kw?2_AU zy(Jyfgx$Lg4yR-*#JryIxz<8tMT_mCDSk4R4FApT7HZl5weSlA`iQ~P)z4*}Q$iB} Dz?m zGaO1c8(c>vW=}02kt~mLJ*9w5tcO!@Z;nO)0004WQchCe3 zyAFad6vdRbj9uKj=-dIsu?ekpEP)^+i^LxQ{Q-@iZ5y?>%01i3&3Pq>J0ddak$msE z9nIr7n?M|LrBs!xKp>8oM<9rx(jyS*K!isi-X4+5TOra|e9Zgj?o!^$K$xmj#sOUT zLW6P-_>g}&7Hw0$vMW|cU5ZTivXA!YMsq(-(H^Z*x+)+Cb~!LZ76@^Y)KVRYcEExZ zKYQT6J=VxJtckkVOk?*2d-TulTu!iu&!ClQ!G$+21zLlKrW+4vYl(Gx#7TXQ$fe~q ct3P|Z09FVrZ1Y1n!TUtP)vW=}02kt~mLJ*9w5tcO!>C3E=z0004WQchCe( zvChIE6oqT>mX0jlS$^jZ);f|DejKl9qa9r|zJS#i(D>Lw8ZTGnY+nfH@MT#zc~zL0 z?0v3_lYeYRPvC!Pt!R>I?3+#=b8{_)9Iybk5fNvY? zLkNKGlqf|>U@&_v|0ELV4a6PDmO|(Nwp7n>tG4Vfb>RjxFdw^NB!XgzI>DdJJm5CSUBKI$KkmvW=}02kt~mLJ*9w5tcO!>C3E=z0004WQchCGx zv5vwp42F9OPBV64&vG|sps+?FxiA_vYBREccmWD8a3>xcN2iNZ?Cp;gfBu?=N*ZNz zH~)42x`f}u97^!Lan9{Gt^`6u2c1}#U^FdGw)G`|lk7($u>=a02MfGKtOflsbUfh| zy(gZSQ`%mq$F2lnm|Tc~IY19YQE?Grebwb6o+HHS1{Rn4)|A9(DJ%prT_Q_XQ7 zFX88Kt9(S~{JyU_@-2e5fFT=L`G_at=%wLnEiA3m9XKp}yc?U-b3E^E>?1RHGQwN3 t53GDBPd2FeT9ml(0q;Jd&Nlvhya0u2Fp(z*et-Y~002ovPDHLkV1h~pi$nkb literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_7.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_grapes_7.png new file mode 100644 index 0000000000000000000000000000000000000000..9e70b6d559fe4dec85b6800cec67d983055021cb GIT binary patch literal 358 zcmV-s0h#`ZP)Gx zu};G<5Qc-X7@Jruc~l_ zlIF72b@mTCe|VXE2G2`t?bFg`z<}ejMFxYa!)R)kK{E?IC@~j6I&K;Q?8KmfR|3*W zlT4%>Q;e(g__5Bwccb;aryLwQOi|>BW`ufChYWhdl~96!P#n8*`f?9^F*duh(FQKH4IGy zu};G<5I_?Y+c#p#LX027O(y2OpAf;s%H3KVJ{HCC`5AQcZ(L2nJM-pHYY1=7B^a>lblh3^7@z}x#WRj`#Z z+s9ozVlLs7qj+e{IE;-)@daUoR6+KdEsOxe0QhU}a+eldP<9YdIh3Zye2Jg#TRdJ| z2(OOBV{lw#Qt}r)agEgU$RF%MO%J$wG}YCpQs(=}j`UlsG2P<6p5s^JVJT3s#|qwT wMwL!Zp5cLOjJ*IgnZ!LLvi{#A*kHxL>Bh#!AasziV*6pC QexN!APgg&ebxsLQ03=Nu`Tzg` literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_3.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_3.png new file mode 100644 index 0000000000000000000000000000000000000000..57136d5072aa265a9527dfac39d6cc5e2d5ba123 GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|47rTfan=lttX*GT zX8^?+OM?7@862M7NCR?|JzX3_IIbrrD2SclVBq}5rf`tskx?UuGqZwXIitr0D+d(@ Y?K4b1az76&0xDl8?e70Tsn^Mvo0v b4k`?x8q6izX8*Yf)WP8C>gTe~DWM4fZ;&A$ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_5.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_5.png new file mode 100644 index 0000000000000000000000000000000000000000..890a3d28e9486272f4f8c62a6bd9d0a78bf87918 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|47rTfan=lttX*GT zX8^?+OM?7@862M7NCR>VJY5_^IIbrr9N?6YZaBgiuMoI_)#C&U183O;31tCe`A4ji lTGbq!-Z4!`C~fdyU^uD97WB(&`a+;y22WQ%mvv4FO#l-7C7b{N literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_6.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_6.png new file mode 100644 index 0000000000000000000000000000000000000000..258d4e3815f596d725cf2d1a6c19bd3fa99a7ce4 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|47rTfan=lttX*GT zX8^?+OM?7@862M7NCR@rJY5_^IIbrrI53-;IW*Zaco>*5e`JhTSe?KLJY5_^IIbrrB&7T}aG>Tz0S|M2qdqrt_ZcxZHnwjK{5*ep z&KmM8V{b@eVpTAl$uPl%nK_{8Cqwf~#d}O_jZVUhY-~HZ9XP|-6%L*_z`!u2nlJi& T>FZfQvl%>H{an^LB{Ts5IB7CX literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_block.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_block.png new file mode 100644 index 0000000000000000000000000000000000000000..285a2cda41a1ad9618ad1a341415129cd9d4fd09 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|uDKN&4ZZs9Qw$evdmj%J zboX>|4B@!0+I^an!H~m+J-IqZ+;#O}V&ko?iH?rT wv=2>txTvW>=+)i*vg;S$Ic#dL(|ujm|EK6f#fX#xKqDDEUHx3vIVCg!059Y+X#fBK literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_fibre.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_fibre.png new file mode 100644 index 0000000000000000000000000000000000000000..fe3c9187ef0e0d751ca94ea5078ac23b368d3b14 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|47rTfan=lttX*GT zX8^?+OM?7@862M7NCR?=JY5_^IIbrrC@>Z1G6<~_bx3+;%*M9tMyA6eqdkp{pI-(m o7}i!XF_*{OVP;!);sh(hV{PvDF;Ti-fw~zyUHx3vIVCg!0J)?n^#A|> literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_leaf.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_leaf.png new file mode 100644 index 0000000000000000000000000000000000000000..997c8f0cd73688c33f89d20d2bb5e78731db87d9 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|47rTfan=lttX*GT zX8^?+OM?7@862M7NCR^GJY5_^IIbrrBv>3c(BNWV&5-$wfvt_{A43{jW>uH@nQ7A7qru}`=9Yh$CKhe=CgV`n2H!^T8mYpVnX Pko63nu6{1-oD!M)fl)HSs!N#qp zPwlnezWemS!s01O+|=PKS(deSK^k zt38>to*rOK-O=WpvF*YIrjWMmj0_33!#u0hBo?(DT+Hmjz`(D-&H7jE=PjTS44$rj JF6*2UngF~sH;@1T literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_rope.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_rope.png new file mode 100644 index 0000000000000000000000000000000000000000..03a7082ff3a0d69445172c3ff65c2d3c2625a7ab GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|hNf)Iy+SjWi7L$5 z6Au(;ED7=pW^j0RBMr!r@pN$v;kcfhknsD^fddDu7(F(yGjP7-c4(?GWH@Bc?Rqon RkS|ajgQu&X%Q~loCIGt-Au<2} literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_seed.png b/mods_disabled/farming/crops/move-to-crops/texture/farming_hemp_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..6be42c8607dc7e118b5493ae531668ed0031a823 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bO)b&o$z|YbWXZ`@uB%qs z~85ATGG#ao 0 and (24 * 60 * 60) / time_speed) or 0 +local function clamp(x, min, max) + return (x < min and min) or (x > max and max) or x +end + + +-- return amount of day or night that has elapsed +-- dt is time elapsed, count_day if true counts day, otherwise night +local function day_or_night_time(dt, count_day) + + local t_day = minetest.get_timeofday() + local t1_day = t_day - dt / SECS_PER_CYCLE + local t1_c, t2_c -- t1_c < t2_c and t2_c always in [0, 1) + + if count_day then + + if t_day < 0.25 then + t1_c = t1_day + 0.75 -- Relative to sunup, yesterday + t2_c = t_day + 0.75 + else + t1_c = t1_day - 0.25 -- Relative to sunup, today + t2_c = t_day - 0.25 + end + else + if t_day < 0.75 then + t1_c = t1_day + 0.25 -- Relative to sundown, yesterday + t2_c = t_day + 0.25 + else + t1_c = t1_day - 0.75 -- Relative to sundown, today + t2_c = t_day - 0.75 + end + end + + local dt_c = clamp(t2_c, 0, 0.5) - clamp(t1_c, 0, 0.5) -- this cycle + + if t1_c < -0.5 then + local nc = math.floor(-t1_c) + t1_c = t1_c + nc + dt_c = dt_c + 0.5 * nc + clamp(-t1_c - 0.5, 0, 0.5) + end + + return dt_c * SECS_PER_CYCLE +end + + +-- Growth Logic +local STAGE_LENGTH_AVG = 6000.0 -- 20 minutes per day x 30 days per month = 36000. Average stages we'll say is 6 stages. +local STAGE_LENGTH_DEV = STAGE_LENGTH_AVG / 6 + + +-- return plant name and stage from node provided +local function plant_name_stage(node) + + local name + + if type(node) == "table" then + + if node.name then + name = node.name + elseif node.x and node.y and node.z then + node = minetest.get_node_or_nil(node) + name = node and node.name + end + else + name = tostring(node) + end + + if not name or name == "ignore" then + return nil + end + + local sep_pos = name:find("_[^_]+$") + + if sep_pos and sep_pos > 1 then + + local stage = tonumber(name:sub(sep_pos + 1)) + + if stage and stage >= 0 then + return name:sub(1, sep_pos - 1), stage + end + end + + return name, 0 +end + + +-- Map from node name to +-- { plant_name = ..., name = ..., stage = n, stages_left = { node_name, ... } } + +local plant_stages = {} + +farming.plant_stages = plant_stages + +--- Registers the stages of growth of a (possible plant) node. + -- + -- @param node + -- Node or position table, or node name. + -- @return + -- The (possibly zero) number of stages of growth the plant will go through + -- before being fully grown, or nil if not a plant. + +local register_plant_node + +-- Recursive helper +local function reg_plant_stages(plant_name, stage, force_last) + + local node_name = plant_name and plant_name .. "_" .. stage + local node_def = node_name and minetest.registered_nodes[node_name] + + if not node_def then + return nil + end + + local stages = plant_stages[node_name] + + if stages then + return stages + end + + if minetest.get_item_group(node_name, "growing") > 0 then + + local ns = reg_plant_stages(plant_name, stage + 1, true) + local stages_left = (ns and { ns.name, unpack(ns.stages_left) }) or {} + + stages = { + plant_name = plant_name, + name = node_name, + stage = stage, + stages_left = stages_left + } + + if #stages_left > 0 then + + local old_constr = node_def.on_construct + local old_destr = node_def.on_destruct + + minetest.override_item(node_name, + { + on_construct = function(pos) + + if old_constr then + old_constr(pos) + end + + farming.handle_growth(pos) + end, + + on_destruct = function(pos) + + minetest.get_node_timer(pos):stop() + + 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 + + stages = { + plant_name = plant_name, + name = node_name, + stage = stage, + stages_left = {} + } + else + return nil + end + + plant_stages[node_name] = stages + + return stages +end + + +local register_plant_node = function(node) + + local plant_name, stage = plant_name_stage(node) + + if plant_name then + + local stages = reg_plant_stages(plant_name, stage, false) + return stages and #stages.stages_left + else + return nil + end +end + + +local function set_growing(pos, stages_left) + + if not stages_left then + return + end + + local timer = minetest.get_node_timer(pos) + + if stages_left > 0 then + + if not timer:is_started() then + + local stage_length = statistics.normal(STAGE_LENGTH_AVG, STAGE_LENGTH_DEV) + + stage_length = clamp(stage_length, 0.5 * STAGE_LENGTH_AVG, 3.0 * STAGE_LENGTH_AVG) + + timer:set(stage_length, -0.5 * math.random() * STAGE_LENGTH_AVG) + end + + elseif timer:is_started() then + timer:stop() + end +end + + +-- detects a crop at given position, starting or stopping growth timer when needed +function farming.handle_growth(pos, node) + + if not pos then + return + end + + local stages_left = register_plant_node(node or pos) + + if stages_left then + set_growing(pos, stages_left) + end +end + + +minetest.after(0, function() + + for _, node_def in pairs(minetest.registered_nodes) do + register_plant_node(node_def) + end +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({ + nodenames = { "group:growing" }, + interval = 300, + chance = 1, + catch_up = false, + action = function(pos, node) + farming.handle_growth(pos, node) + end +}) + + +-- Plant timer function that grows plants under the right conditions. +function farming.plant_growth_timer(pos, elapsed, node_name) + + local stages = plant_stages[node_name] + + if not stages then + return false + end + + local max_growth = #stages.stages_left + + if max_growth <= 0 then + return false + end + + -- custom growth check + local chk = minetest.registered_nodes[node_name].growth_check + + if chk then + + if chk(pos, node_name) then + return true + end + + -- otherwise check for wet soil beneath crop + else + local under = minetest.get_node({ x = pos.x, y = pos.y - 1, z = pos.z }) + + if minetest.get_item_group(under.name, "soil") < 3 then + return true + end + end + + local growth + local light_pos = {x = pos.x, y = pos.y, z = pos.z} + local lambda = elapsed / STAGE_LENGTH_AVG + + if lambda < 0.1 then + return true + end + + local MIN_LIGHT = minetest.registered_nodes[node_name].minlight or 12 + local MAX_LIGHT = minetest.registered_nodes[node_name].maxlight or 15 + --print ("---", MIN_LIGHT, MAX_LIGHT) + + if max_growth == 1 or lambda < 2.0 then + + local light = (minetest.get_node_light(light_pos) or 0) + --print ("light level:", light) + + if light < MIN_LIGHT or light > MAX_LIGHT then + return true + end + + 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_growth = night_light >= MIN_LIGHT and night_light <= MAX_LIGHT + local day_growth = day_light >= MIN_LIGHT and day_light <= MAX_LIGHT + + if not night_growth then + + if not day_growth then + return true + end + + lambda = day_or_night_time(elapsed, true) / STAGE_LENGTH_AVG + + elseif not day_growth then + + lambda = day_or_night_time(elapsed, false) / STAGE_LENGTH_AVG + end + + growth = statistics.poisson(lambda, max_growth) + + if growth < 1 then + return true + end + end + + if minetest.registered_nodes[stages.stages_left[growth]] then + + local p2 = minetest.registered_nodes[stages.stages_left[growth] ].place_param2 or 1 + + minetest.swap_node(pos, {name = stages.stages_left[growth], param2 = p2}) + else + return true + end + + return growth ~= max_growth +end + + +-- refill placed plant by crabman (26/08/2015) updated by TenPlus1 +function farming.refill_plant(player, plantname, index) + + local inv = player:get_inventory() + local old_stack = inv:get_stack("main", index) + + if old_stack:get_name() ~= "" then + return + end + + for i, stack in ipairs(inv:get_list("main")) do + + if stack:get_name() == plantname and i ~= index then + + inv:set_stack("main", index, stack) + stack:clear() + inv:set_stack("main", i, stack) + + return + end + end +end + + +-- Place Seeds on Soil +function farming.place_seed(itemstack, placer, pointed_thing, plantname) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + + -- am I right-clicking on something that has a custom on_place set? + -- thanks to Krock for helping with this issue :) + local def = minetest.registered_nodes[under.name] + if placer and def and def.on_rightclick then + return def.on_rightclick(pt.under, under, placer, itemstack) + end + + local above = minetest.get_node(pt.above) + + -- check if pointing at the top of the node + if pt.above.y ~= pt.under.y + 1 then + return + end + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] + or not minetest.registered_nodes[above.name] then + return + end + + -- can I replace above node, and am I pointing at soil + if not minetest.registered_nodes[above.name].buildable_to + or minetest.get_item_group(under.name, "soil") < 2 + -- avoid multiple seed placement bug + or minetest.get_item_group(above.name, "plant") ~= 0 then + return + end + + -- is player planting seed? + local name = placer and placer:get_player_name() or "" + + -- if not protected then add node and remove 1 item from the itemstack + if not minetest.is_protected(pt.above, name) then + + local p2 = minetest.registered_nodes[plantname].place_param2 or 1 + + minetest.set_node(pt.above, {name = plantname, param2 = p2}) + +--minetest.get_node_timer(pt.above):start(1) +--farming.handle_growth(pt.above)--, node) + + minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}) + + if placer and not farming.is_creative(placer:get_player_name()) then + + local name = itemstack:get_name() + + itemstack:take_item() + + -- check for refill + if itemstack:get_count() == 0 then + + minetest.after(0.10, + farming.refill_plant, + placer, + name, + placer:get_wield_index() + ) + end + end + + return itemstack + end +end + + +-- Function to register plants (default farming compatibility) +farming.register_plant = function(name, def) + + if not def.steps then + return nil + end + + local mname = name:split(":")[1] + local pname = name:split(":")[2] + + -- Check def + def.description = def.description or S("Seed") + def.inventory_image = def.inventory_image or "unknown_item.png" + def.minlight = def.minlight or 12 + def.maxlight = def.maxlight or 15 + + -- Register seed + minetest.register_node(":" .. mname .. ":seed_" .. pname, { + + description = def.description, + tiles = {def.inventory_image}, + inventory_image = def.inventory_image, + wield_image = def.inventory_image, + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 2}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + place_param2 = def.place_param2 or nil, + next_plant = mname .. ":" .. pname .. "_1", + + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, + pointed_thing, mname .. ":" .. pname .. "_1") + end, + }) + + -- Register harvest + minetest.register_craftitem(":" .. mname .. ":" .. pname, { + description = pname:gsub("^%l", string.upper), + inventory_image = mname .. "_" .. pname .. ".png", + groups = def.groups or {flammable = 2}, + }) + + -- Register growing steps + for i = 1, def.steps do + + local base_rarity = 1 + if def.steps ~= 1 then + base_rarity = 8 - (i - 1) * 7 / (def.steps - 1) + end + local drop = { + items = { + {items = {mname .. ":" .. pname}, rarity = base_rarity}, + {items = {mname .. ":" .. pname}, rarity = base_rarity * 2}, + {items = {mname .. ":seed_" .. pname}, rarity = base_rarity}, + {items = {mname .. ":seed_" .. pname}, rarity = base_rarity * 2}, + } + } + + 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 + if i == def.steps then + g.growing = 0 + end + + local node_name = mname .. ":" .. pname .. "_" .. i + + local next_plant = nil + + if i < def.steps then + next_plant = mname .. ":" .. pname .. "_" .. (i + 1) + end + + minetest.register_node(node_name, { + drawtype = "plantlike", + waving = 1, + tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"}, + paramtype = "light", + paramtype2 = def.paramtype2, + place_param2 = def.place_param2, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = drop, + selection_box = farming.select, + groups = g, + sounds = default.node_sound_leaves_defaults(), + minlight = def.minlight, + maxlight = def.maxlight, + next_plant = next_plant, + }) + end + +-- add to farming.registered_plants +farming.registered_plants[mname .. ":" .. pname] = { + crop = mname .. ":" .. pname, + seed = mname .. ":seed_" .. pname, + steps = def.steps, + minlight = def.minlight, + maxlight = def.maxlight +} +--print(dump(farming.registered_plants[mname .. ":" .. pname])) + -- Return info + return {seed = mname .. ":seed_" .. pname, harvest = mname .. ":" .. pname} +end + + +-- default settings +farming.carrot = 0.001 +farming.potato = 0.001 +farming.tomato = 0.001 +farming.cucumber = 0.001 +farming.corn = 0.001 +farming.coffee = 0.001 +farming.melon = 0.001 +farming.pumpkin = 0.001 +farming.cocoa = true +farming.raspberry = 0.001 +farming.blueberry = 0.001 +farming.rhubarb = 0.001 +farming.beans = 0.001 +farming.grapes = 0.001 +farming.barley = true +farming.chili = 0.003 +--farming.hemp = 0.003 +farming.garlic = 0.001 +farming.onion = 0.001 +farming.pepper = 0.002 +farming.pineapple = 0.001 +farming.peas = 0.001 +farming.beetroot = 0.001 +farming.grains = true +farming.rarety = 0.002 + + +-- Load new global settings if found inside mod folder +local input = io.open(farming.path.."/farming.conf", "r") +if input then + dofile(farming.path .. "/farming.conf") + input:close() +end + +-- load new world-specific settings if found inside world folder +local worldpath = minetest.get_worldpath() +input = io.open(worldpath.."/farming.conf", "r") +if input then + dofile(worldpath .. "/farming.conf") + input:close() +end + + +-- important items +dofile(farming.path.."/soil.lua") +dofile(farming.path.."/hoes.lua") +dofile(farming.path.."/grass.lua") +dofile(farming.path.."/utensils.lua") + +-- default crops +dofile(farming.path.."/crops/wheat.lua") +dofile(farming.path.."/crops/cotton.lua") + + +-- helper function +local function ddoo(file, check) + + if check then + dofile(farming.path .. "/crops/" .. file) + end +end + +-- add additional crops and food (if enabled) +ddoo("carrot.lua", farming.carrot) +ddoo("potato.lua", farming.potato) +ddoo("tomato.lua", farming.tomato) +ddoo("cucumber.lua", farming.cucumber) +ddoo("corn.lua", farming.corn) +ddoo("coffee.lua", farming.coffee) +ddoo("melon.lua", farming.melon) +ddoo("pumpkin.lua", farming.pumpkin) +ddoo("cocoa.lua", farming.cocoa) +ddoo("raspberry.lua", farming.raspberry) +ddoo("blueberry.lua", farming.blueberry) +ddoo("rhubarb.lua", farming.rhubarb) +ddoo("beans.lua", farming.beans) +ddoo("grapes.lua", farming.grapes) +ddoo("barley.lua", farming.barley) +--ddoo("hemp.lua", farming.hemp) +ddoo("garlic.lua", farming.garlic) +ddoo("onion.lua", farming.onion) +ddoo("pepper.lua", farming.pepper) +ddoo("pineapple.lua", farming.pineapple) +ddoo("peas.lua", farming.peas) +ddoo("beetroot.lua", farming.beetroot) +ddoo("chili.lua", farming.chili) +ddoo("ryeoatrice.lua", farming.grains) + +dofile(farming.path.."/food.lua") +dofile(farming.path.."/mapgen.lua") +dofile(farming.path.."/compatibility.lua") -- Farming Plus compatibility +dofile(farming.path.."/lucky_block.lua") diff --git a/mods_disabled/farming/intllib.lua b/mods_disabled/farming/intllib.lua new file mode 100644 index 0000000..6669d72 --- /dev/null +++ b/mods_disabled/farming/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/mods_disabled/farming/license.txt b/mods_disabled/farming/license.txt new file mode 100644 index 0000000..8584871 --- /dev/null +++ b/mods_disabled/farming/license.txt @@ -0,0 +1,144 @@ +The MIT License (MIT) + +Copyright (c) 2016 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +License of media (textures): +---------------------------- +Created by PilzAdam (License: CC BY 3.0): + farming_bread.png + farming_soil.png + farming_soil_wet.png + farming_soil_wet_side.png + farming_string.png + +Created by Napiophelios (CC BY-SA 3.0): + farming_cotton.png + +Created by Calinou (License: CC BY-SA): + farming_tool_bronzehoe.png + farming_tool_steelhoe.png + farming_tool_stonehoe.png + farming_tool_woodhoe.png + farming_tool_mesehoe.png + farming_tool_diamondhoe.png + +Created by VanessaE (License: CC BY 3.0): + farming_cotton_seed.png + farming_wheat_seed.png + farming_flour.png + farming_wheat.png + farming_wheat_1.png + farming_wheat_2.png + farming_wheat_3.png + farming_wheat_4.png + farming_wheat_5.png + farming_wheat_5.png + farming_wheat_7.png + farming_wheat_8.png + farming_cotton_1.png + farming_cotton_2.png + farming_cotton_3.png + farming_cotton_4.png + farming_cotton_5.png + farming_cotton_6.png + farming_cotton_7.png + farming_cotton_8.png + +Created by Doc (License: CC BY 3.0): + farming_cucumber.png + farming_cucumber_1.png + farming_cucumber_2.png + farming_cucumber_3.png + farming_cucumber_4.png + farming_potato.png + farming_potato_1.png + farming_potato_2.png + farming_potato_3.png + farming_potato_4.png + farming_raspberries.png + farming_raspberry_1.png + farming_raspberry_2.png + farming_raspberry_3.png + farming_raspberry_4.png + +Created by Gambit (License: CC BY 3.0): + default_junglegrass.png + farming_carrot.png + farming_carrot_1.png + farming_carrot_2.png + farming_carrot_3.png + farming_carrot_4.png + farming_carrot_5.png + farming_carrot_6.png + farming_carrot_7.png + farming_carrot_8.png + +Created by JoseTheCrafter and edited by TenPlus1 (CC BY 3.0): + farming_tomato.png + farming_tomato_1.png + farming_tomato_2.png + farming_tomato_3.png + farming_tomato_4.png + farming_tomato_5.png + farming_tomato_6.png + farming_tomato_7.png + farming_tomato_8.png + +Created by GeMinecraft and edited by TenPlus1 (CC BY 3.0): + farming_corn.png + farming_corn_cob.png + farming_corn_1.png + farming_corn_2.png + farming_corn_3.png + farming_corn_4.png + farming_corn_5.png + farming_corn_6.png + farming_corn_7.png + farming_corn_8.png + +Created by TenPlus1 (CC BY 3.0) + farming_cocoa_1.png + farming_cocoa_2.png + farming_cocoa_3.png + farming_cocoa_beans.png + farming_cookie.png + farming_raspberry_smoothie.png + farming_rhubarb_1.png + farming_rhubarb_2.png + farming_rhubarb_3.png + farming_rhubarb.png + farming_rhubarb_pie.png + farming_hemp*.png + +Created by ademant (CC-BY-3.0) + farming_rye*.png + farming_oat*.png + farming_rice*.png + +Created by PilzAdam and edited by SpaghettiToastBook (CC0): + farming_bread_multigrain.png + +Created by VanessaE and edited by SpaghettiToastBook (CC0): + farming_flour_multigrain.png + +Created by mDiyo (Natura), modified by TenPlus1 (License: CC BY-SA 3.0): + farming_barley.png diff --git a/mods_disabled/farming/locale/de.po b/mods_disabled/farming/locale/de.po new file mode 100644 index 0000000..731b31d --- /dev/null +++ b/mods_disabled/farming/locale/de.po @@ -0,0 +1,262 @@ +# German Translation for farming mod. +# Copyright (C) 2017 +# This file is distributed under the same license as the farming package. +# Xanthin. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: 1.27\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-31 HO:MI+ZONE\n" +"PO-Revision-Date: 2016-03-31 HO:MI+ZONE\n" +"Last-Translator: Xanthin\n" +"Language-Team: \n" +"Language: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: barley.lua +msgid "Barley Seed" +msgstr "Gerstenkörner" + +#: barley.lua +msgid "Barley" +msgstr "Gerste" + +#: beanpole.lua +msgid "Green Beans" +msgstr "Grüne Bohnen" + +#: beanpole.lua +msgid "Bean Pole (place on soil before planting beans)" +msgstr "Bohnenstange (vor dem Pflanzen der Bohnen auf den\nAckerboden stellen)" + +#: blueberry.lua +msgid "Blueberries" +msgstr "Blaubeeren" + +#: blueberry.lua +msgid "Blueberry Muffin" +msgstr "Blaubeermuffin" + +#: carrot.lua +msgid "Carrot" +msgstr "Möhre" + +#: carrot.lua +msgid "Golden Carrot" +msgstr "Goldene Möhre" + +#: cocoa.lua +msgid "Cocoa Beans" +msgstr "Kakaobohne" + +#: cocoa.lua +msgid "Cookie" +msgstr "Keks" + +#: cocoa.lua +msgid "Bar of Dark Chocolate" +msgstr "Tafel Zartbitterschokolade" + +#: coffee.lua +msgid "Coffee Beans" +msgstr "Kaffeebohnen" + +#: coffee.lua +msgid "Drinking Cup (empty)" +msgstr "Tasse (leer)" + +#: coffee.lua +msgid "Cold Cup of Coffee" +msgstr "Kalte Tasse Kaffee" + +#: coffee.lua +msgid "Hot Cup of Coffee" +msgstr "Heiße Tasse Kaffee" + +#: corn.lua +msgid "Corn" +msgstr "Mais" + +#: corn.lua +msgid "Corn on the Cob" +msgstr "Maiskolben" + +#: corn.lua +msgid "Bottle of Ethanol" +msgstr "Flasche Ethanol" + +#: cotton.lua +msgid "Cotton Seed" +msgstr "Baumwollsamen" + +#: cotton.lua +msgid "Cotton" +msgstr "Baumwolle" + +#: cucumber.lua +msgid "Cucumber" +msgstr "Gurke" + +#: donut.lua +msgid "Donut" +msgstr "Donut" + +#: donut.lua +msgid "Chocolate Donut" +msgstr "Schokodonut" + +#: donut.lua +msgid "Apple Donut" +msgstr "Apfeldonut" + +#: grapes.lua +msgid "Grapes" +msgstr "Weintrauben" + +#: grapes.lua +msgid "Trellis (place on soil before planting grapes)" +msgstr "Spalier (vor dem Pflanzen der Weintrauben auf den\nAckerboden stellen)" + +#: hemp.lua +msgid "Hemp Seed" +msgstr "Hanfsamen" + +#: hemp.lua +msgid "Hemp Leaf" +msgstr "Hanfblatt" + +#: hemp.lua +msgid "Bottle of Hemp Oil" +msgstr "Flasche mit Hanföl" + +#: hemp.lua +msgid "Hemp Fibre" +msgstr "Hanffaser" + +#: hemp.lua +msgid "Hemp Rope" +msgstr "Hanfseil" + +#: hoes.lua +msgid "Hoe" +msgstr "Hacke" + +#: hoes.lua +msgid "Wooden Hoe" +msgstr "Holzhacke" + +#: hoes.lua +msgid "Stone Hoe" +msgstr "Steinhacke" + +#: hoes.lua +msgid "Steel Hoe" +msgstr "Stahlhacke" + +#: hoes.lua +msgid "Bronze Hoe" +msgstr "Bronzehacke" + +#: hoes.lua +msgid "Mese Hoe" +msgstr "Mesehacke" + +#: hoes.lua +msgid "Diamond Hoe" +msgstr "Diamanthacke" + +#: init.lua +msgid "Seed" +msgstr "Saatgut" + +#: melon.lua +msgid "Melon Slice" +msgstr "Melonenscheibe" + +#: melon.lua +msgid "Melon" +msgstr "Melone" + +#: potato.lua +msgid "Potato" +msgstr "Kartoffel" + +#: potato.lua +msgid "Baked Potato" +msgstr "Ofenkartoffel" + +#: pumpkin.lua +msgid "Pumpkin" +msgstr "Kürbis" + +#: pumpkin.lua +msgid "Pumpkin Slice" +msgstr "Kürbisscheibe" + +#: pumpkin.lua +msgid "Jack 'O Lantern (punch to turn on and off)" +msgstr "Kürbislaterne (Punch zum Ein- und Ausschalten)" + +#: pumpkin.lua +msgid "Pumpkin Bread" +msgstr "Kürbisbrot" + +#: pumpkin.lua +msgid "Pumpkin Dough" +msgstr "Kürbisteig" + +#: raspberry.lua +msgid "Raspberries" +msgstr "Himbeeren" + +#: raspberry.lua +msgid "Raspberry Smoothie" +msgstr "Himbeersmoothie" + +#: rhubarb.lua +msgid "Rhubarb" +msgstr "Rhabarber" + +#: rhubarb.lua +msgid "Rhubarb Pie" +msgstr "Rhabarberkuchen" + +#: soil.lua +msgid "Soil" +msgstr "Ackerboden" + +#: soil.lua +msgid "Wet Soil" +msgstr "Bewässerter Ackerboden" + +#: sugar.lua +msgid "Sugar" +msgstr "Zucker" + +#: tomato.lua +msgid "Tomato" +msgstr "Tomate" + +#: wheat.lua +msgid "Wheat Seed" +msgstr "Weizenkörner" + +#: wheat.lua +msgid "Wheat" +msgstr "Weizen" + +#: wheat.lua +msgid "Straw" +msgstr "Stroh" + +#: wheat.lua +msgid "Flour" +msgstr "Mehl" + +#: wheat.lua +msgid "Bread" +msgstr "Brot" diff --git a/mods_disabled/farming/locale/farming.de.tr b/mods_disabled/farming/locale/farming.de.tr new file mode 100644 index 0000000..13a363b --- /dev/null +++ b/mods_disabled/farming/locale/farming.de.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Holzhacke +Stone Hoe=Steinhacke +Steel Hoe=Stahlhacke +Bronze Hoe=Bronzehacke +Mese Hoe=Mesehacke +Diamond Hoe=Diamanthacke +Wheat Seed=Weizensamen +Flour=Mehl +Bread=Brot +Cotton Seed=Baumwollsamen +String=Faden +Soil=Ackerboden +Wet Soil=Nasser Ackerboden +Dry Soil=Trockener Ackerboden +Wet Dry Soil=Nasser trockener Ackerboden +Desert Sand Soil=Wüsensandackerboden +Wet Desert Sand Soil=Nasser Wüstensandackerboden +Straw=Stroh +Straw Stair=Strohtreppe +Straw Slab=Strohplatte +Inner Straw Stair=Innere Strohtreppe +Outer Straw Stair=Äußere Strohtreppe +Wheat=Weizen +Cotton=Baumwolle diff --git a/mods_disabled/farming/locale/farming.es.tr b/mods_disabled/farming/locale/farming.es.tr new file mode 100644 index 0000000..f935a7b --- /dev/null +++ b/mods_disabled/farming/locale/farming.es.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Azada de madera +Stone Hoe=Azada de piedra +Steel Hoe=Azada de acero +Bronze Hoe=Azada de bronce +Mese Hoe=Azada de mese +Diamond Hoe=Azada de diamante +Wheat Seed=Semilla de trigo +Flour=Harina +Bread=Pan +Cotton Seed=Semilla de algodón +String=Hilo +Soil=Tierra de cultivo +Wet Soil=Tierra de cultivo humeda +Dry Soil=Tierra de cultivo seca +Wet Dry Soil=Tierra de cultivo seca-humeda +Desert Sand Soil=Tierra de cultivo de arena de desierto +Wet Desert Sand Soil=Tierra de cultivo de arena de desierto humeda +Straw=Paja +Straw Stair=Escalera de paja +Straw Slab=Losa de paja +Inner Straw Stair=Escalera de paja interior +Outer Straw Stair=Escalera de paja exterior +Wheat=Trigo +Cotton=Algodón diff --git a/mods_disabled/farming/locale/farming.fr.tr b/mods_disabled/farming/locale/farming.fr.tr new file mode 100644 index 0000000..cd05997 --- /dev/null +++ b/mods_disabled/farming/locale/farming.fr.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Houe en bois +Stone Hoe=Houe en pierre +Steel Hoe=Houe en acier +Bronze Hoe=Houe en bronze +Mese Hoe=Houe en Mese +Diamond Hoe=Houe en diamant +Wheat Seed=Grain de blé +Flour=Farine +Bread=Pain +Cotton Seed=Graine de coton +String=Ficelle +Soil=Sol +Wet Soil=Sol humide +Dry Soil=Sol sec +Wet Dry Soil=Sol sec et humide +Desert Sand Soil=Sol de sable du désert +Wet Desert Sand Soil=Sol de sable du désert humide +Straw=Paille +Straw Stair=Escalier de paille +Straw Slab=Dalle de paille +Inner Straw Stair=Escalier intérieur en paille +Outer Straw Stair=Escalier extérieur en paille +Wheat=Blé +Cotton=Coton diff --git a/mods_disabled/farming/locale/farming.it.tr b/mods_disabled/farming/locale/farming.it.tr new file mode 100644 index 0000000..95c1478 --- /dev/null +++ b/mods_disabled/farming/locale/farming.it.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Zappa di legno +Stone Hoe=Zappa di pietra +Steel Hoe=Zappa d'acciaio +Bronze Hoe=Zappa di bronzo +Mese Hoe=Zappa di mese +Diamond Hoe=Zappa di diamante +Wheat Seed=Seme di grano +Flour=Farina +Bread=Pane +Cotton Seed=Seme di cotone +String=Filo +Soil=Terreno +Wet Soil=Terreno bagnato +Dry Soil=Terreno asciutto +Wet Dry Soil=Terreno asciutto bagnato +Desert Sand Soil=Terreno di sabbia del deserto +Wet Desert Sand Soil=Terreno bagnato di sabbia del deserto +Straw=Paglia +Straw Stair=Scala di paglia +Inner Straw Stair=Scala di paglia interna +Outer Straw Stair=Scala di paglia esterna +Straw Slab=Lastra di paglia +Wheat=Grano +Cotton=Cotone \ No newline at end of file diff --git a/mods_disabled/farming/locale/farming.ms.tr b/mods_disabled/farming/locale/farming.ms.tr new file mode 100644 index 0000000..408f495 --- /dev/null +++ b/mods_disabled/farming/locale/farming.ms.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Cangkul Kayu +Stone Hoe=Cangkul Batu +Steel Hoe=Cangkul Keluli +Bronze Hoe=Cangkul Gangsa +Mese Hoe=Cangkul Mese +Diamond Hoe=Cangkul Intan +Wheat Seed=Benih Gandum +Flour=Tepung +Bread=Roti +Cotton Seed=Benih Kapas +String=Benang +Soil=Tanih +Wet Soil=Tanih Lembap +Dry Soil=Tanih Kering +Wet Dry Soil=Tanih Kering Lembap +Desert Sand Soil=Tanih Pasir Gurun +Wet Desert Sand Soil=Tanih Pasir Gurun Lembap +Straw=Jerami +Straw Stair=Tangga Jerami +Inner Straw Stair=Tangga Jerami Dalaman +Outer Straw Stair=Tangga Jerami Luaran +Straw Slab=Papak Jerami +Wheat=Gandum +Cotton=Kapas diff --git a/mods_disabled/farming/locale/farming.ru.tr b/mods_disabled/farming/locale/farming.ru.tr new file mode 100644 index 0000000..ad6249b --- /dev/null +++ b/mods_disabled/farming/locale/farming.ru.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Деревянная Мотыга +Stone Hoe=Каменная Мотыга +Steel Hoe=Стальная Мотыга +Bronze Hoe=Бронзовая Мотыга +Mese Hoe=Месе Мотыга +Diamond Hoe=Алмазная Мотыга +Wheat Seed=Семена Пшеницы +Flour=Мука +Bread=Хлеб +Cotton Seed=Семена Хлопка +String=Нить +Soil=Почва +Wet Soil=Влажная Почва +Dry Soil=Сухая Почва +Wet Dry Soil=Влажная Сухая Почва +Desert Sand Soil=Пустынная Песчаная Почва +Wet Desert Sand Soil=Влажная Пустынная Песчаная Почва +Straw=Солома +Straw Stair=Соломенная Ступень +Inner Straw Stair=Угловая Соломенная Ступень (Внутренний Угол) +Outer Straw Stair=Угловая Соломенная Ступень (Внешний Угол) +Straw Slab=Соломенная Плита +Wheat=Пшеница +Cotton=Хлопок diff --git a/mods_disabled/farming/locale/farming.se.tr b/mods_disabled/farming/locale/farming.se.tr new file mode 100644 index 0000000..6218e3a --- /dev/null +++ b/mods_disabled/farming/locale/farming.se.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Träsko +Stone Hoe=Stensko +Steel Hoe=Stålsko +Bronze Hoe=Bronssko +Mese Hoe=Mesesko +Diamond Hoe=Diamantsko +Wheat Seed=Vetefrö +Flour=Mjöl +Bread=Bröd +Cotton Seed=Bollumsfrö +String=Snöra +Soil=Odlningsmark +Wet Soil=Våt Odlningsmark +Dry Soil=Torr Odlningsmark +Wet Dry Soil=Våt Torr Odlningsmark +Desert Sand Soil=Öken Sand Odlningsmark +Wet Desert Sand Soil=Våt Öken Sand Odlningsmark +Straw=Halm +Straw Stair=Halmstrappa +Inner Straw Stair=Inre Halmstrappa +Outer Straw Stair=Yttre Halmstrappa +Straw Slab=Halmplatta +Wheat=Vete +Cotton=Bomull \ No newline at end of file diff --git a/mods_disabled/farming/locale/farming.zh_CN.tr b/mods_disabled/farming/locale/farming.zh_CN.tr new file mode 100644 index 0000000..d856288 --- /dev/null +++ b/mods_disabled/farming/locale/farming.zh_CN.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=木锄头 +Stone Hoe=石锄头 +Steel Hoe=铁锄头 +Bronze Hoe=青铜锄头 +Mese Hoe=黄石锄头 +Diamond Hoe=钻石锄头 +Wheat Seed=小麦种子 +Flour=面粉 +Bread=面包 +Cotton Seed=棉花种子 +String=线 +Soil=土 +Wet Soil=湿土 +Dry Soil=干土 +Wet Dry Soil=湿干土 +Desert Sand Soil=沙漠沙土 +Wet Desert Sand Soil=湿沙漠沙土 +Straw=稻草 +Straw Stair=稻草台阶 +Inner Straw Stair=稻草内楼梯 +Outer Straw Stair=稻草外楼梯 +Straw Slab=稻草板 +Wheat=小麦 +Cotton=棉 diff --git a/mods_disabled/farming/locale/farming.zh_TW.tr b/mods_disabled/farming/locale/farming.zh_TW.tr new file mode 100644 index 0000000..f1b7a7a --- /dev/null +++ b/mods_disabled/farming/locale/farming.zh_TW.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=木鋤頭 +Stone Hoe=石鋤頭 +Steel Hoe=鐵鋤頭 +Bronze Hoe=青銅鋤頭 +Mese Hoe=黃石鋤頭 +Diamond Hoe=鑽石鋤頭 +Wheat Seed=小麥種子 +Flour=麵粉 +Bread=麵包 +Cotton Seed=棉花種子 +String=線 +Soil=土 +Wet Soil=溼土 +Dry Soil=乾土 +Wet Dry Soil=溼乾土 +Desert Sand Soil=沙漠沙土 +Wet Desert Sand Soil=溼沙漠沙土 +Straw=稻草 +Straw Stair=稻草臺階 +Inner Straw Stair=稻草內樓梯 +Outer Straw Stair=稻草外樓梯 +Straw Slab=稻草板 +Wheat=小麥 +Cotton=棉 diff --git a/mods_disabled/farming/locale/fr.po b/mods_disabled/farming/locale/fr.po new file mode 100644 index 0000000..7b50640 --- /dev/null +++ b/mods_disabled/farming/locale/fr.po @@ -0,0 +1,259 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-27 20:21+0200\n" +"PO-Revision-Date: 2018-03-27 22:16+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: fr\n" + +#: barley.lua +msgid "Barley Seed" +msgstr "Graine d'orge" + +#: barley.lua +msgid "Barley" +msgstr "Orge" + +#: beanpole.lua +msgid "Green Beans" +msgstr "Haricots verts" + +#: beanpole.lua +msgid "Bean Pole (place on soil before planting beans)" +msgstr "Tuteur pour haricots (placer sur le sol avant de planter des haricots)" + +#: blueberry.lua +msgid "Blueberries" +msgstr "Myrtilles" + +#: blueberry.lua +msgid "Blueberry Muffin" +msgstr "Gâteau aux myrtilles" + +#: carrot.lua +msgid "Carrot" +msgstr "Carotte" + +#: carrot.lua +msgid "Golden Carrot" +msgstr "Carotte dorée" + +#: cocoa.lua +msgid "Cocoa Beans" +msgstr "Fèves de chocolat" + +#: cocoa.lua +msgid "Cookie" +msgstr "Biscuit" + +#: cocoa.lua +msgid "Bar of Dark Chocolate" +msgstr "Barre de chocolat noir" + +#: coffee.lua +msgid "Coffee Beans" +msgstr "Grains de café" + +#: coffee.lua +msgid "Drinking Cup (empty)" +msgstr "Tasse (vide)" + +#: coffee.lua +msgid "Cold Cup of Coffee" +msgstr "Tasse de café froid" + +#: coffee.lua +msgid "Hot Cup of Coffee" +msgstr "Tasse de café chaud" + +#: corn.lua +msgid "Corn" +msgstr "Maïs" + +#: corn.lua +msgid "Corn on the Cob" +msgstr "Épi de maïs" + +#: corn.lua +msgid "Bottle of Ethanol" +msgstr "Bouteille de'éthanol" + +#: cotton.lua +msgid "Cotton Seed" +msgstr "Graines de coton" + +#: cotton.lua +msgid "Cotton" +msgstr "Coton" + +#: cucumber.lua +msgid "Cucumber" +msgstr "Concombre" + +#: donut.lua +msgid "Donut" +msgstr "Beignet" + +#: donut.lua +msgid "Chocolate Donut" +msgstr "Beignet au chocolat" + +#: donut.lua +msgid "Apple Donut" +msgstr "Beignet aux pommes" + +#: grapes.lua +msgid "Grapes" +msgstr "Raisins" + +#: grapes.lua +msgid "Trellis (place on soil before planting grapes)" +msgstr "Treillis (placer sur le sol avant de planter les raisins)" + +#: hemp.lua +msgid "Hemp Seed" +msgstr "Graines de chanvre" + +#: hemp.lua +msgid "Hemp Leaf" +msgstr "Feuille de chanvre" + +#: hemp.lua +msgid "Bottle of Hemp Oil" +msgstr "Bouteille d'huile de chanvre" + +#: hemp.lua +msgid "Hemp Fibre" +msgstr "Fibre de chanvre" + +#: hemp.lua +msgid "Hemp Rope" +msgstr "Corde de chanvre" + +#: hoes.lua +msgid "Wooden Hoe" +msgstr "Houe en bois" + +#: hoes.lua +msgid "Stone Hoe" +msgstr "Houe en pierre" + +#: hoes.lua +msgid "Steel Hoe" +msgstr "Houe en acier" + +#: hoes.lua +msgid "Bronze Hoe" +msgstr "Houe en bronze" + +#: hoes.lua +msgid "Mese Hoe" +msgstr "Houe en mese" + +#: hoes.lua +msgid "Diamond Hoe" +msgstr "Houe en diamant" + +#: init.lua +msgid "Seed" +msgstr "Graine" + +#: melon.lua +msgid "Melon Slice" +msgstr "Tranche de melon" + +#: melon.lua +msgid "Melon" +msgstr "Melon" + +#: potato.lua +msgid "Potato" +msgstr "Pomme de terre" + +#: potato.lua +msgid "Baked Potato" +msgstr "Pomme de terre cuite" + +#: pumpkin.lua +msgid "Pumpkin" +msgstr "Citrouille" + +#: pumpkin.lua +msgid "Pumpkin Slice" +msgstr "Tranche de citrouille" + +#: pumpkin.lua +msgid "Jack 'O Lantern (punch to turn on and off)" +msgstr "Jack 'O Lantern (tapé pour allumer et éteindre)" + +#: pumpkin.lua +msgid "Pumpkin Bread" +msgstr "Pain à la citrouille" + +#: pumpkin.lua +msgid "Pumpkin Dough" +msgstr "Pâte à la citrouille" + +#: raspberry.lua +msgid "Raspberries" +msgstr "Framboises" + +#: raspberry.lua +msgid "Raspberry Smoothie" +msgstr "Smoothie aux framboises" + +#: rhubarb.lua +msgid "Rhubarb" +msgstr "Rhubarbe" + +#: rhubarb.lua +msgid "Rhubarb Pie" +msgstr "Tarte à la rhubarbe" + +#: soil.lua +msgid "Soil" +msgstr "Sol" + +#: soil.lua +msgid "Wet Soil" +msgstr "Sol humide" + +#: sugar.lua +msgid "Sugar" +msgstr "Sucre" + +#: tomato.lua +msgid "Tomato" +msgstr "Tomate" + +#: wheat.lua +msgid "Wheat Seed" +msgstr "Graine de blé" + +#: wheat.lua +msgid "Wheat" +msgstr "Blé" + +#: wheat.lua +msgid "Straw" +msgstr "Paille" + +#: wheat.lua +msgid "Flour" +msgstr "Farine" + +#: wheat.lua +msgid "Bread" +msgstr "Pain" diff --git a/mods_disabled/farming/locale/pt.po b/mods_disabled/farming/locale/pt.po new file mode 100644 index 0000000..bc4352f --- /dev/null +++ b/mods_disabled/farming/locale/pt.po @@ -0,0 +1,258 @@ +# Portuguese Translation for farming mod. +# Copyright (C) 2017 +# This file is distributed under the same license as the farming package. +# BrunoMine , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: 1.27\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-16 17:38-0300\n" +"PO-Revision-Date: 2017-08-17 17:01-0300\n" +"Last-Translator: BrunoMine \n" +"Language-Team: \n" +"Language: Portuguese\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: barley.lua +msgid "Barley Seed" +msgstr "Sementes de Cevada" + +#: barley.lua +msgid "Barley" +msgstr "Cevada" + +#: beanpole.lua +msgid "Green Beans" +msgstr "Feijoes Verdes" + +#: beanpole.lua +msgid "Bean Pole (place on soil before planting beans)" +msgstr "Apoio de feijao (coloque no solo antes de plantar feijao)" + +#: blueberry.lua +msgid "Blueberries" +msgstr "Mirtilos" + +#: blueberry.lua +msgid "Blueberry Muffin" +msgstr "Muffin de Mirtilos" + +#: carrot.lua +msgid "Carrot" +msgstr "Cenoura" + +#: carrot.lua +msgid "Golden Carrot" +msgstr "Cenoura Dourada" + +#: cocoa.lua +msgid "Cocoa Beans" +msgstr "Amendoas de Cacau" + +#: cocoa.lua +msgid "Cookie" +msgstr "Cookie" + +#: cocoa.lua +msgid "Bar of Dark Chocolate" +msgstr "Barra de Chocolate Preto" + +#: coffee.lua +msgid "Coffee Beans" +msgstr "Grao de Cafe" + +#: coffee.lua +msgid "Drinking Cup (empty)" +msgstr "Xicara (vazia)" + +#: coffee.lua +msgid "Cold Cup of Coffee" +msgstr "Xicara de Cafe Frio" + +#: coffee.lua +msgid "Hot Cup of Coffee" +msgstr "Xicara de Cafe Quente" + +#: corn.lua +msgid "Corn" +msgstr "Milho" + +#: corn.lua +msgid "Corn on the Cob" +msgstr "Espiga de Milho" + +#: corn.lua +msgid "Bottle of Ethanol" +msgstr "Garrafa de Etanol" + +#: cotton.lua +msgid "Cotton Seed" +msgstr "Sementes de Algodao" + +#: cotton.lua +msgid "Cotton" +msgstr "Algodao" + +#: cucumber.lua +msgid "Cucumber" +msgstr "Pepino" + +#: donut.lua +msgid "Donut" +msgstr "Donut" + +#: donut.lua +msgid "Chocolate Donut" +msgstr "Donut de Chocolate" + +#: donut.lua +msgid "Apple Donut" +msgstr "Donut de Maça" + +#: grapes.lua +msgid "Grapes" +msgstr "Uvas" + +#: grapes.lua +msgid "Trellis (place on soil before planting grapes)" +msgstr "Grade de Ripas (colocar no solo antes de plantar uvas)" + +#: hemp.lua +msgid "Hemp Seed" +msgstr "Sementes de Canhamo" + +#: hemp.lua +msgid "Hemp Leaf" +msgstr "Folha de Canhamo" + +#: hemp.lua +msgid "Bottle of Hemp Oil" +msgstr "Garrafa de Oleo de Canhamo" + +#: hemp.lua +msgid "Hemp Fibre" +msgstr "Fibra de Canhamo" + +#: hemp.lua +msgid "Hemp Rope" +msgstr "Corda de Canhamo" + +#: hoes.lua +msgid "Wooden Hoe" +msgstr "Enxada de Madeira" + +#: hoes.lua +msgid "Stone Hoe" +msgstr "Enxada de Pedra" + +#: hoes.lua +msgid "Steel Hoe" +msgstr "Enxada de Aço" + +#: hoes.lua +msgid "Bronze Hoe" +msgstr "Enxada de Bronze" + +#: hoes.lua +msgid "Mese Hoe" +msgstr "Enxada de Mese" + +#: hoes.lua +msgid "Diamond Hoe" +msgstr "Enxada de Diamante" + +#: init.lua +msgid "Seed" +msgstr "Sementes" + +#: melon.lua +msgid "Melon Slice" +msgstr "Sementes de Melancia" + +#: melon.lua +msgid "Melon" +msgstr "Melancia" + +#: potato.lua +msgid "Potato" +msgstr "Batata" + +#: potato.lua +msgid "Baked Potato" +msgstr "Batata Cozida" + +#: pumpkin.lua +msgid "Pumpkin" +msgstr "Abobora" + +#: pumpkin.lua +msgid "Pumpkin Slice" +msgstr "Pedaço de Abobora" + +#: pumpkin.lua +msgid "Jack 'O Lantern (punch to turn on and off)" +msgstr "Jack 'O Lantern (Socos para ligar e desligar)" + +#: pumpkin.lua +msgid "Pumpkin Bread" +msgstr "Pao de Abobora" + +#: pumpkin.lua +msgid "Pumpkin Dough" +msgstr "Massa de Abobora" + +#: raspberry.lua +msgid "Raspberries" +msgstr "Framboesa" + +#: raspberry.lua +msgid "Raspberry Smoothie" +msgstr "Batida de Framboesa" + +#: rhubarb.lua +msgid "Rhubarb" +msgstr "Ruibarbo" + +#: rhubarb.lua +msgid "Rhubarb Pie" +msgstr "Torta de Ruibarbo" + +#: soil.lua +msgid "Soil" +msgstr "Solo" + +#: soil.lua +msgid "Wet Soil" +msgstr "Solo Seco" + +#: sugar.lua +msgid "Sugar" +msgstr "Açucar" + +#: tomato.lua +msgid "Tomato" +msgstr "Tomate" + +#: wheat.lua +msgid "Wheat Seed" +msgstr "Sementes de Trigo" + +#: wheat.lua +msgid "Wheat" +msgstr "Trigo" + +#: wheat.lua +msgid "Straw" +msgstr "Palha" + +#: wheat.lua +msgid "Flour" +msgstr "Farinha" + +#: wheat.lua +msgid "Bread" +msgstr "Pao" diff --git a/mods_disabled/farming/locale/ru.po b/mods_disabled/farming/locale/ru.po new file mode 100644 index 0000000..607c96d --- /dev/null +++ b/mods_disabled/farming/locale/ru.po @@ -0,0 +1,262 @@ +# Russian translation for farming mod. +# Copyright (C) 2018 +# This file is distributed under the same license as the farming package. +# codexp , 2018. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: 1.27\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-22 01:25+0100\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: Russian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: barley.lua +msgid "Barley Seed" +msgstr "семена ячменя" + +#: barley.lua +msgid "Barley" +msgstr "ячмень" + +#: beanpole.lua +msgid "Green Beans" +msgstr "зеленая фасоль" + +#: beanpole.lua +msgid "Bean Pole (place on soil before planting beans)" +msgstr "жердь для бобовых (установите на почву перед посадкой бобовых)" + +#: blueberry.lua +msgid "Blueberries" +msgstr "голубика" + +#: blueberry.lua +msgid "Blueberry Muffin" +msgstr "кекс из голубики" + +#: carrot.lua +msgid "Carrot" +msgstr "морковь" + +#: carrot.lua +msgid "Golden Carrot" +msgstr "золотая морковь" + +#: cocoa.lua +msgid "Cocoa Beans" +msgstr "бобы какао" + +#: cocoa.lua +msgid "Cookie" +msgstr "печенье" + +#: cocoa.lua +msgid "Bar of Dark Chocolate" +msgstr "плитка темного шоколада" + +#: coffee.lua +msgid "Coffee Beans" +msgstr "кофе в зернах" + +#: coffee.lua +msgid "Drinking Cup (empty)" +msgstr "чашка (пустая)" + +#: coffee.lua +msgid "Cold Cup of Coffee" +msgstr "холодная чашка кофе" + +#: coffee.lua +msgid "Hot Cup of Coffee" +msgstr "горячая чашка кофе" + +#: corn.lua +msgid "Corn" +msgstr "кукуруза" + +#: corn.lua +msgid "Corn on the Cob" +msgstr "початок кукурузы" + +#: corn.lua +msgid "Bottle of Ethanol" +msgstr "бутылка этилового спирта" + +#: cotton.lua +msgid "Cotton Seed" +msgstr "семена хлопка" + +#: cotton.lua +msgid "Cotton" +msgstr "хлопок" + +#: cucumber.lua +msgid "Cucumber" +msgstr "огурец" + +#: donut.lua +msgid "Donut" +msgstr "пончик" + +#: donut.lua +msgid "Chocolate Donut" +msgstr "шоколадный пончик" + +#: donut.lua +msgid "Apple Donut" +msgstr "яблочный пончик" + +#: grapes.lua +msgid "Grapes" +msgstr "виноград" + +#: grapes.lua +msgid "Trellis (place on soil before planting grapes)" +msgstr "решетка (поставьте на почву для посадки винограда)" + +#: hemp.lua +msgid "Hemp Seed" +msgstr "семена конопли" + +#: hemp.lua +msgid "Hemp Leaf" +msgstr "листья конопли" + +#: hemp.lua +msgid "Bottle of Hemp Oil" +msgstr "бутылка конопляного масла" + +#: hemp.lua +msgid "Hemp Fibre" +msgstr "" + +#: hemp.lua +msgid "Hemp Rope" +msgstr "Пенька" + +#: hoes.lua +msgid "Hoe" +msgstr "мотыга" + +#: hoes.lua +msgid "Wooden Hoe" +msgstr "деревянная мотыга" + +#: hoes.lua +msgid "Stone Hoe" +msgstr "каменная мотыга" + +#: hoes.lua +msgid "Steel Hoe" +msgstr "стальная мотыга" + +#: hoes.lua +msgid "Bronze Hoe" +msgstr "бронзовая мотыга" + +#: hoes.lua +msgid "Mese Hoe" +msgstr "магическая мотыга" + +#: hoes.lua +msgid "Diamond Hoe" +msgstr "алмазная мотыга" + +#: init.lua +msgid "Seed" +msgstr "семена" + +#: melon.lua +msgid "Melon Slice" +msgstr "ломтик арбуза" + +#: melon.lua +msgid "Melon" +msgstr "арбуз" + +#: potato.lua +msgid "Potato" +msgstr "картофель" + +#: potato.lua +msgid "Baked Potato" +msgstr "запеченный картофель" + +#: pumpkin.lua +msgid "Pumpkin" +msgstr "тыква" + +#: pumpkin.lua +msgid "Pumpkin Slice" +msgstr "ломтик тыквы" + +#: pumpkin.lua +msgid "Jack 'O Lantern (punch to turn on and off)" +msgstr "светильник джека (удар для включения и отключения)" + +#: pumpkin.lua +msgid "Pumpkin Bread" +msgstr "тыквенный хлеб" + +#: pumpkin.lua +msgid "Pumpkin Dough" +msgstr "тыквенное тесто" + +#: raspberry.lua +msgid "Raspberries" +msgstr "малина" + +#: raspberry.lua +msgid "Raspberry Smoothie" +msgstr "малиновый коктейль" + +#: rhubarb.lua +msgid "Rhubarb" +msgstr "ревень" + +#: rhubarb.lua +msgid "Rhubarb Pie" +msgstr "пирог из ревеня" + +#: soil.lua +msgid "Soil" +msgstr "земля" + +#: soil.lua +msgid "Wet Soil" +msgstr "мокрая земля" + +#: sugar.lua +msgid "Sugar" +msgstr "сахар" + +#: tomato.lua +msgid "Tomato" +msgstr "помидор" + +#: wheat.lua +msgid "Wheat Seed" +msgstr "" + +#: wheat.lua +msgid "Wheat" +msgstr "семена пшеницы" + +#: wheat.lua +msgid "Straw" +msgstr "солома" + +#: wheat.lua +msgid "Flour" +msgstr "мука" + +#: wheat.lua +msgid "Bread" +msgstr "хлеб" diff --git a/mods_disabled/farming/locale/template.pot b/mods_disabled/farming/locale/template.pot new file mode 100644 index 0000000..210d946 --- /dev/null +++ b/mods_disabled/farming/locale/template.pot @@ -0,0 +1,258 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-16 17:38-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: barley.lua +msgid "Barley Seed" +msgstr "" + +#: barley.lua +msgid "Barley" +msgstr "" + +#: beanpole.lua +msgid "Green Beans" +msgstr "" + +#: beanpole.lua +msgid "Bean Pole (place on soil before planting beans)" +msgstr "" + +#: blueberry.lua +msgid "Blueberries" +msgstr "" + +#: blueberry.lua +msgid "Blueberry Muffin" +msgstr "" + +#: carrot.lua +msgid "Carrot" +msgstr "" + +#: carrot.lua +msgid "Golden Carrot" +msgstr "" + +#: cocoa.lua +msgid "Cocoa Beans" +msgstr "" + +#: cocoa.lua +msgid "Cookie" +msgstr "" + +#: cocoa.lua +msgid "Bar of Dark Chocolate" +msgstr "" + +#: coffee.lua +msgid "Coffee Beans" +msgstr "" + +#: coffee.lua +msgid "Drinking Cup (empty)" +msgstr "" + +#: coffee.lua +msgid "Cold Cup of Coffee" +msgstr "" + +#: coffee.lua +msgid "Hot Cup of Coffee" +msgstr "" + +#: corn.lua +msgid "Corn" +msgstr "" + +#: corn.lua +msgid "Corn on the Cob" +msgstr "" + +#: corn.lua +msgid "Bottle of Ethanol" +msgstr "" + +#: cotton.lua +msgid "Cotton Seed" +msgstr "" + +#: cotton.lua +msgid "Cotton" +msgstr "" + +#: cucumber.lua +msgid "Cucumber" +msgstr "" + +#: donut.lua +msgid "Donut" +msgstr "" + +#: donut.lua +msgid "Chocolate Donut" +msgstr "" + +#: donut.lua +msgid "Apple Donut" +msgstr "" + +#: grapes.lua +msgid "Grapes" +msgstr "" + +#: grapes.lua +msgid "Trellis (place on soil before planting grapes)" +msgstr "" + +#: hemp.lua +msgid "Hemp Seed" +msgstr "" + +#: hemp.lua +msgid "Hemp Leaf" +msgstr "" + +#: hemp.lua +msgid "Bottle of Hemp Oil" +msgstr "" + +#: hemp.lua +msgid "Hemp Fibre" +msgstr "" + +#: hemp.lua +msgid "Hemp Rope" +msgstr "" + +#: hoes.lua +msgid "Wooden Hoe" +msgstr "" + +#: hoes.lua +msgid "Stone Hoe" +msgstr "" + +#: hoes.lua +msgid "Steel Hoe" +msgstr "" + +#: hoes.lua +msgid "Bronze Hoe" +msgstr "" + +#: hoes.lua +msgid "Mese Hoe" +msgstr "" + +#: hoes.lua +msgid "Diamond Hoe" +msgstr "" + +#: init.lua +msgid "Seed" +msgstr "" + +#: melon.lua +msgid "Melon Slice" +msgstr "" + +#: melon.lua +msgid "Melon" +msgstr "" + +#: potato.lua +msgid "Potato" +msgstr "" + +#: potato.lua +msgid "Baked Potato" +msgstr "" + +#: pumpkin.lua +msgid "Pumpkin" +msgstr "" + +#: pumpkin.lua +msgid "Pumpkin Slice" +msgstr "" + +#: pumpkin.lua +msgid "Jack 'O Lantern (punch to turn on and off)" +msgstr "" + +#: pumpkin.lua +msgid "Pumpkin Bread" +msgstr "" + +#: pumpkin.lua +msgid "Pumpkin Dough" +msgstr "" + +#: raspberry.lua +msgid "Raspberries" +msgstr "" + +#: raspberry.lua +msgid "Raspberry Smoothie" +msgstr "" + +#: rhubarb.lua +msgid "Rhubarb" +msgstr "" + +#: rhubarb.lua +msgid "Rhubarb Pie" +msgstr "" + +#: soil.lua +msgid "Soil" +msgstr "" + +#: soil.lua +msgid "Wet Soil" +msgstr "" + +#: sugar.lua +msgid "Sugar" +msgstr "" + +#: tomato.lua +msgid "Tomato" +msgstr "" + +#: wheat.lua +msgid "Wheat Seed" +msgstr "" + +#: wheat.lua +msgid "Wheat" +msgstr "" + +#: wheat.lua +msgid "Straw" +msgstr "" + +#: wheat.lua +msgid "Flour" +msgstr "" + +#: wheat.lua +msgid "Bread" +msgstr "" diff --git a/mods_disabled/farming/locale/template.txt b/mods_disabled/farming/locale/template.txt new file mode 100644 index 0000000..92d113e --- /dev/null +++ b/mods_disabled/farming/locale/template.txt @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe= +Stone Hoe= +Steel Hoe= +Bronze Hoe= +Mese Hoe= +Diamond Hoe= +Wheat Seed= +Flour= +Bread= +Cotton Seed= +String= +Soil= +Wet Soil= +Dry Soil= +Wet Dry Soil= +Desert Sand Soil= +Wet Desert Sand Soil= +Straw= +Straw Stair= +Inner Straw Stair= +Outer Straw Stair= +Straw Slab= +Wheat= +Cotton= diff --git a/mods_disabled/farming/lucky_block.lua b/mods_disabled/farming/lucky_block.lua new file mode 100644 index 0000000..5a69a68 --- /dev/null +++ b/mods_disabled/farming/lucky_block.lua @@ -0,0 +1,77 @@ + +-- 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}, + }}, + }) +end diff --git a/mods_disabled/farming/mapgen.lua b/mods_disabled/farming/mapgen.lua new file mode 100644 index 0000000..6d8278d --- /dev/null +++ b/mods_disabled/farming/mapgen.lua @@ -0,0 +1,146 @@ + +-- 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 = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + 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", 15, 40, nil, "", -1, farming.potato) +register_plant("tomato_7", 5, 20, nil, "", -1, farming.tomato) +register_plant("corn_7", 12, 22, nil, "", -1, farming.corn) +register_plant("coffee_5", 20, 45, {"default:dirt_with_dry_grass", + "default:dirt_with_rainforest_litter"}, "", -1, farming.coffee) +register_plant("raspberry_4", 3, 10, nil, "", -1, farming.raspberry) +register_plant("rhubarb_3", 3, 15, nil, "", -1, farming.rhubarb) +register_plant("blueberry_4", 3, 10, nil, "", -1, farming.blueberry) +register_plant("beanbush", 18, 35, nil, "", -1, farming.beans) +register_plant("grapebush", 25, 45, nil, "", -1, farming.grapes) +register_plant("onion_5", 5, 22, nil, "", -1, farming.onion) +register_plant("garlic_5", 3, 30, nil, "group:tree", 1, farming.garlic) +register_plant("pea_5", 25, 50, nil, "", -1, farming.peas) +register_plant("beetroot_5", 1, 15, nil, "", -1, farming.beetroot) + + +if minetest.get_mapgen_setting("mg_name") == "v6" then + + register_plant("carrot_8", 1, 30, nil, "group:water", 1, farming.carrot) + register_plant("cucumber_4", 1, 20, nil, "group:water", 1, farming.cucumber) + register_plant("melon_8", 1, 20, nil, "group:water", 1, farming.melon) + register_plant("pumpkin_8", 1, 20, nil, "group:water", 1, farming.pumpkin) +else + -- v7 maps have a beach so plants growing near water is limited to 6 high + register_plant("carrot_8", 1, 15, nil, "", -1, farming.carrot) + register_plant("cucumber_4", 1, 10, nil, "", -1, farming.cucumber) + register_plant("melon_8", 1, 6, {"default:dirt_with_dry_grass", + "default:dirt_with_rainforest_litter"}, "", -1, farming.melon) + register_plant("pumpkin_8", 1, 6, nil, "", -1, farming.pumpkin) +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 = 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, +}) +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 = 100, y = 100, z = 100}, + 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.pepper then +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_rainforest_litter"}, + 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"}, + spawn_by = "group:tree", + num_spawn_by = 1, +}) +end + +if farming.pineapple then +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = tonumber(farming.pineapple) or farming.rarety, + spread = {x = 100, y = 100, z = 100}, + seed = 917, + octaves = 3, + persist = 0.6 + }, + y_min = 18, + y_max = 30, + decoration = {"farming:pineapple_8"}, +}) +end diff --git a/mods_disabled/farming/mod.conf b/mods_disabled/farming/mod.conf new file mode 100644 index 0000000..80ab8b0 --- /dev/null +++ b/mods_disabled/farming/mod.conf @@ -0,0 +1 @@ +name = farming \ No newline at end of file diff --git a/mods_disabled/farming/soil.lua b/mods_disabled/farming/soil.lua new file mode 100644 index 0000000..d379f5d --- /dev/null +++ b/mods_disabled/farming/soil.lua @@ -0,0 +1,74 @@ + +local S = farming.intllib + +-- normal soil +minetest.register_node("farming:soil", { + description = S("Soil"), + tiles = {"default_dirt.png^farming_soil.png", "default_dirt.png"}, + drop = "default:dirt", + groups = {crumbly = 3, not_in_creative_inventory = 1, soil = 2}, + sounds = default.node_sound_dirt_defaults(), +}) + +-- wet soil +minetest.register_node("farming:soil_wet", { + description = S("Wet Soil"), + tiles = {"default_dirt.png^farming_soil_wet.png", "default_dirt.png^farming_soil_wet_side.png"}, + drop = "default:dirt", + groups = {crumbly = 3, not_in_creative_inventory = 1, soil = 3}, + sounds = default.node_sound_dirt_defaults(), +}) + +-- sand is not soil, change existing sand-soil to use normal soil +minetest.register_alias("farming:desert_sand_soil", "farming:soil") +minetest.register_alias("farming:desert_sand_soil_wet", "farming:soil_wet") + +-- if water near soil then change to wet soil +minetest.register_abm({ + nodenames = {"farming:soil", "farming:soil_wet"}, + interval = 15, + chance = 4, + catch_up = false, + + action = function(pos, node) + + pos.y = pos.y + 1 + local nn = minetest.get_node_or_nil(pos) + pos.y = pos.y - 1 + + if nn then nn = nn.name else return end + + -- 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 + minetest.set_node(pos, {name = "default:dirt"}) + 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 there is water nearby and change soil accordingly +-- 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 + + if node.name == "farming:soil" then + minetest.set_node(pos, {name = "farming:soil_wet"}) + end + + elseif node.name == "farming:soil_wet" then + minetest.set_node(pos, {name = "farming:soil"}) + + elseif node.name == "farming:soil" and minetest.get_item_group(nn, "plant") == 0 then + minetest.set_node(pos, {name = "default:dirt"}) + end + end, +}) diff --git a/mods_disabled/farming/statistics.lua b/mods_disabled/farming/statistics.lua new file mode 100644 index 0000000..c8defa2 --- /dev/null +++ b/mods_disabled/farming/statistics.lua @@ -0,0 +1,174 @@ +local statistics = {} +local ROOT_2 = math.sqrt(2.0) + +-- Approximations for erf(x) and erfInv(x) from +-- https://en.wikipedia.org/wiki/Error_function + +local erf +local erf_inv + +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 D = 1.0 / A + +erf = function(x) + + if x == 0 then return 0; end + + local xSq = x * x + local aXSq = A * xSq + local v = math.sqrt(1.0 - math.exp(-xSq * (B + aXSq) / (1.0 + aXSq))) + + return (x > 0 and v) or -v +end + +erf_inv = function(x) + + if x == 0 then return 0; end + + if x <= -1 or x >= 1 then return nil; end + + local y = math.log(1 - x * x) + local u = C + 0.5 * y + local v = math.sqrt(math.sqrt(u * u - D * y) - u) + + return (x > 0 and v) or -v +end + +local function std_normal(u) + return ROOT_2 * erf_inv(2.0 * u - 1.0) +end + +local poisson +local cdf_table = {} + +local function generate_cdf(lambda_index, lambda) + + local max = math.ceil(4 * lambda) + local pdf = math.exp(-lambda) + local cdf = pdf + local t = { [0] = pdf } + + for i = 1, max - 1 do + pdf = pdf * lambda / i + cdf = cdf + pdf + t[i] = cdf + end + + return t +end + +for li = 1, 100 do + cdf_table[li] = generate_cdf(li, 0.25 * li) +end + +poisson = function(lambda, max) + + if max < 2 then + return (math.random() < math.exp(-lambda) and 0) or 1 + elseif lambda >= 2 * max then + return max + end + + local u = math.random() + local lambda_index = math.floor(4 * lambda + 0.5) + local cdfs = cdf_table[lambda_index] + + if cdfs then + + lambda = 0.25 * lambda_index + + if u < cdfs[0] then return 0; end + if max > #cdfs then max = #cdfs + 1 else max = math.floor(max); end + if u >= cdfs[max - 1] then return max; end + + if max > 4 then -- Binary search + + local s = 0 + + while s + 1 < max do + + local m = math.floor(0.5 * (s + max)) + + if u < cdfs[m] then max = m; else s = m; end + end + else + for i = 1, max - 1 do + if u < cdfs[i] then return i; end + end + end + + return max + else + local x = lambda + math.sqrt(lambda) * std_normal(u) + + return (x < 0.5 and 0) or (x >= max - 0.5 and max) or math.floor(x + 0.5) + end +end + +-- Error function. +statistics.erf = erf + +-- Inverse error function. +statistics.erf_inv = erf_inv + +--- Standard normal distribution function (mean 0, standard deviation 1). + -- + -- @return + -- Any real number (actually between -3.0 and 3.0). + +statistics.std_normal = function() + + local u = math.random() + + if u < 0.001 then + return -3.0 + elseif u > 0.999 then + return 3.0 + end + + return std_normal(u) +end + +--- Standard normal distribution function (mean 0, standard deviation 1). + -- + -- @param mu + -- The distribution mean. + -- @param sigma + -- The distribution standard deviation. + -- @return + -- Any real number (actually between -3*sigma and 3*sigma). + +statistics.normal = function(mu, sigma) + + local u = math.random() + + if u < 0.001 then + return mu - 3.0 * sigma + elseif u > 0.999 then + return mu + 3.0 * sigma + end + + return mu + sigma * std_normal(u) +end + +--- Poisson distribution function. + -- + -- @param lambda + -- The distribution mean and variance. + -- @param max + -- The distribution maximum. + -- @return + -- An integer between 0 and max (both inclusive). + +statistics.poisson = function(lambda, max) + + lambda, max = tonumber(lambda), tonumber(max) + + if not lambda or not max or lambda <= 0 or max < 1 then return 0; end + + return poisson(lambda, max) +end + +return statistics diff --git a/mods_disabled/farming/textures/banana_leaf.png b/mods_disabled/farming/textures/banana_leaf.png new file mode 100644 index 0000000000000000000000000000000000000000..5800cbfc8b898eeaccaa89a86bb1ac34ea775541 GIT binary patch literal 421 zcmV;W0b2fvP)hl@Ve zE_6Dem*Z_Mr(iu6sBtNWP?FWgW~})TX3@~i2>NlG@KTx^cB7PC&~=u7R7OI@Hrn}L P00000NkvXXu0mjfjc>EG literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/banana_single.png b/mods_disabled/farming/textures/banana_single.png new file mode 100644 index 0000000000000000000000000000000000000000..b15ed2fa270a525be476f37959a93f66316bc7b3 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=1EO-0r%3VdjG6d9v-b zitCnW@7tn(?TqPzs}^5g*j{97$OkH7ED7=pW^j0RBMrz2^>lFz;kcfhz`*Rr$Z=MI zC)GgGXo0bdj6%u5axJ_$%~>L6=H*77Wm~qa2^Dov^?9~>n*VtQ sBZ;Hh+SWmiS`p6HRtsi1J2$d0bRHL~pM1&O5oiH}r>mdKI;Vst01O2_SO5S3 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_garlic.png b/mods_disabled/farming/textures/crops_garlic.png new file mode 100644 index 0000000000000000000000000000000000000000..a73638c2bcff261add1ac59816637f5daa061e55 GIT binary patch literal 725 zcmV;`0xJE9P)Tckaw}mxXQWSstGAaLx+{xT4zCpHG_yU)~8J$UKHz zC8$=u2`VCFvgT6$`u+3E7&>p5hyJ4H1aMp*oM>zFxVZwWb^2_=BFIJ-Y9jMhh)}+a zyR_M9R$tqL?#`4kjOukH&7{nE*ofKSCROv3xf$3aOLs@z&%Qg}vTYk|5`a3n%og`ohGs16?<_dfg5}#vscC`Gq26C4uoc01;4l=vSQn$-N5# z5u@#SV~9A$sAoZv6{Isc7-kB^(lXAfCkXriS|SI=f?tF4gThSE?KHMS#^n6M5{5ks zzUL#AO2ZlSVEs9Rtf+|N7_CMXJYnSyhUQNIfi z3g303nSk@@r#NO94!Tfv1G;V?3PTvlB+{82e8)x%K+_EfAu#NpgGc=1Oi)@~d8=u9 zyK`EDku*W5z$EaH%@?p(DkGK2!AzOR6$_9g2|REsYj+;KnF$EVh}#>R%gnQ0HtUCo znU7Ypffz9)iGWaoiSNR%OaPYNewh8`xJ00000NkvXX Hu0mjfdXzih literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_garlic_braid.png b/mods_disabled/farming/textures/crops_garlic_braid.png new file mode 100644 index 0000000000000000000000000000000000000000..f5fa269bebedbde2daec135a6933f6b64d3be9db GIT binary patch literal 1346 zcmV-I1-<%-P)`tAT;`&iadVr? zG+SnLagohQHnzktbu;S z_nbrFKP+?4)dd0fh+3SIcRN8*s(qY2)W2=o^us2qeEn9{<^B8K=Mekr37Iny%MTz< zF@0CYoLBa+0?=HyCVu{!y2-)D-66ZFFK5^=rsW{a70ZheoY2E#_aH?jLP|+xg|cwX zjepW&rUEc6EqQV8(UpsHs!nVkKeDkaLdVmyE1rYfM&CUpu_(1-gA3YJ|-D_igSGZ zzKg5>S~(q+4reOOZ5G2}LGi1qtg2cN@FAeB`|*F3ZM=VH=e0xR^Od<|p#37z{c)1q zJ-4@|x9!p|gb+Gfy{Ix^A2Sq?kmq{HV@`Z@s{!)dCtw{lgC`Wi*wsdY!GLDPw(sV% zW&us3#WD0S(d+dgy|5gNK!me32QY3jLy%c=e2U~Ea_9(n#-3UiGNXeTARc;=n zid0ul_Cgyg0P%@wghJqZkt`d*An?N4wFp9p>g{hqlpsbJJaA}ET(lvK$^yHweHP7Q zAW6%IOkDzzvJfwAeGfMCFv1a_?flmkRsoVSifV;%GF-3w0`&(!0K)(YN;Nt)S1{E6 z8~Sy9yP^e%Y7%o{(ajxb7`0>-=_xaFu_1G3xPk@f0ow6Cr;$s*FOso_K4D@QT-dt`+JK4_f6LauI*m?XGdPCRNk1C#C=S~dNsX?9YqSwK;g zofgPyxl9NRhd)L8)f0&2#$s~93)QS;*m39>bglI}Sp#rdd#k9hXQN~IA)c&U3#o)b zXLCI`5jUonRbn#0!0&bNSj#{RPfCfEeAtZb5TwloS6%{}_AYE4jnLm~K+nAaa zs}BI@ZFlVu!^uU2V@0HZwKrK z^tC-eujY3!Tm}NM0MEbnF4A-JF=25vN7FoNfPiOwE)$!GC7V9R!qx8}j>|zf5JqZN zG5r28{1c=#Y@A5d!+VO!q1(yB}NHU8N2!yK( z<~*}yDq2(e842SRGrKjXD~Cs2sToC5BF`#4Jk@{3pX18`P9R^@tpET307*qoM6N<$ Ef@^YQcK`qY literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_garlic_braid_side.png b/mods_disabled/farming/textures/crops_garlic_braid_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ce467b76aef6a6b19e4d5edeb53110a011fb942c GIT binary patch literal 1309 zcmV+&1>*XNP)^ zmKj}KWO0&>nHZxT}0Nb}COV$x4FUG&0rC#Ose`$A4jU*_=On4ShFkf{n0oHWAg^deCsMPgCu z5_SH%+fNFBeH_e4j$hV$YW1?r^0Qm)CpJ9{GttbPB`?C`b|F@k4~J#oh(wh+>M{2W z6Dz@kpEmv|PM#<0e-C{*TW)9_XjxOMNUQG;u3kAc9l$j9A)o>2# zK!^R<`c)N142_ubhLBrQhCbsRKRFZ9!so^ZI^i-kqo(>4d}H0z<~Jle2kg93`9LZ z1D~=HEUp|_1AX1Mpuiz4OhtRcc}!S)@9WMq77+z-S&d%@TvkZrYK$2BK~X%kS|yfm z+y$9jQMmo$kQuxneJOzJ#F~+*t%i?E zDMrZM4L%|cZnq1MnrmP&+(fIcA5~2*if9QKv9emghER9xGj!CSMWi4SQ7Fy602&;3S>+Z-068L%5}A|^Q#15L-_9Be^sTpT2F4Rm$CAgAONtlF`s zv;FodVm_dic`NP)oP+3VYe%o{H?RU0Vwo5(y}1J^S-F_BxtnG$F6W5>1ibcnY-B8! zZ{CB&Yu`tdfCd-fkd$5szn_DDauoaCE7K4I5XqE(dM8F;YOR6K?SRA92k+!0EZr>t z!ypv!UD;cC&P41TaJz@+ho{^+RxF2W+zOuOVKcVEZZVH#6fAisW6rYkM1RGP1Fy@f zw-2=B+4>(qo>quJfUC@#`#jN3_^-)G5}h!sTX&&!c+{PgTA<)n>BYyM#!T`Tys_+? TIEq$$00000NkvXXu0mjf5D-=( literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_garlic_clove.png b/mods_disabled/farming/textures/crops_garlic_clove.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc1cee8224430b7b8a64938c28489bcfc95c8e9 GIT binary patch literal 605 zcmV-j0;2tiP)B}qh$a90qRLa zK~y-)?bE$$6hQ#S;df?dXLfFPFSmM0h@wF}u<)=DB}a@^ECd?~5m69KnNCR1#zqKO ziP$J&6OdSl5&}Xx!GHt{OF{eqF=F9ea>r(GKWAs`L?v2V`2GP;@q-umKLP;Dv!{lc zQ7eS8x*r5D$@8>nT40WeOM3v2y{B36ZcY- z%7UR4=*$3x0klRMMWcBfFNU8s?!SBfw6!C!6>dKc`yn70;Cd(-gT*LxqM&+xB%51E zdfjtzyYukP@`EeucW*R*i8yz>(bzK-ygz)TiTdb%*jzyR5?nf(~SX057P0F1dKrjkYiH%{GK5kz^DWrGUjiYz_kf!W|%o8%6OU8q^j^ zb?|}(053j%EvLqhzNR)GXHxEELZZ+bnM#qX9C;R@C~_!W!jclS;z89$=Eo+dR>;pm zo-E7-lC#^=b6eQAXYrJhT!~gx04sH8%S^w;=C%^8zUEuD+ zCCpZPH!Ucl*Ip{s-^4_Mv$p(b>bl8d35OJp&-B?gY4+|JcSOVEm=7&jVvv5(Xu8+8 zI0Ffe;|szy*Xk9=-?2$vH_bPOgF!{+^WoAd9sJKLGE4XU^f>Q+Wc%q_hBZS*^AAkg-Ib48F1*hazmL$2$>KHy;D!l%{wWB^B&kVIv-*e>DGPb#i23=hmG+oZQ=9r>i$8ziY zcfa4C>nmaLI`rt*wEjIO45Ft^Ikj-1)4Z61+R4s2e|NojvRcF;Z&jfmH5mN$ z4xa1QaVWbjwV0vs_Sdxk*6$sAna@m9^}Jmc2o2GWx3-%_mRHwhhYVhXzFscX2U(r#;a_5a2doJYjl)*kgTe~DWM4fCDN!i literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_garlic_plant_5.png b/mods_disabled/farming/textures/crops_garlic_plant_5.png new file mode 100644 index 0000000000000000000000000000000000000000..8b8c31a401a0e66a4413eb3a0b085c31be05fe05 GIT binary patch literal 462 zcmV;<0WtoGP)%TX(xHfuDUhi;buA9kxfEh2!6`*tyZdjH zy6E6igF{Iq&@9)%JZqvxZ+UmzeLwDagp3&V+8j&+5{BTK-JxAGlm%p+xpZEF%I}_D zx8}871WJ`cqF@>z&N1q>`6vR`nPYb>450|&&;8>Z#I~7rreGQX0Otx5qL7YrP_sKE z3;_y>g(1K?)6dr#&#vC-;1QdB;O4Z#MXi7n|DOE0&r$UQ<)ukAyMu$#?EmMED|tAm ztZfem6?R<7n=@OH205wHmB9Cgix1DF&8N1Y+Q=NHLY{jHz4m?i7R?PF&D4|y840a8EVWB>pF07*qoM6N<$ Ef(GHtbpQYW literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_onion.png b/mods_disabled/farming/textures/crops_onion.png new file mode 100644 index 0000000000000000000000000000000000000000..2099c63c717eaf37a5de6d5a39faadfbd11c5cba GIT binary patch literal 841 zcmV-P1GfB$P)ep2F*p6`&7eSa+%*H4&5YhP91W^P*^bfem2nIn2D7Z13 zCDGl=4eo-p-_NyP9-I!aLYmwEN5bit$18**NTirfu zw_8~3^|07W&`%=V71E;^=M6w->rTBi<&E#YSGmePZm-`YXuS|Xe>X7#{DaxVG{uf5Q_+H4hZTG zEx7cdxrMXGUtzf+M~!Fg$_dnnK-+x~Lg9-PF58AJQxL)shzJC3nONBe01g1sXlgtj zOX2{vk|@)g2(J!c8DJ+PxMB(b@La(15S}U#P|t56FbF&$wFaEhD0K~%T}K2BVrsBP z2c)$K&qBzeK&i}5t|9*+sNp=f8&Xz?7=^B;C`$nwas(m-BODYA1{BIVZ13dxrJ0H6 zI~WzAE2TP@<&}i4q3Z%!Szu-eGDN66N2N5%*%WCy#$S`^(m0oU=4br*!Ua6BG@Dr3 zA~5nW7$JsGC?a4;08k3&EvDmZxHuSKb6kkburD_*kIv8k;G03=_x6)tIrYR4zAQcK zX$xpiP*f7b;TC?|9AGf5k^A6xsm$p=hBt=)8IlvvJ^W0k**esW#C?oLj}sb^A9uN%F&$>-pE;u3wboPEmd7$dN{@)9~hO+%Am`<4$k;+)wN2tv!DOm3Lkh TPCbdO00000NkvXXu0mjfN%nj@ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_onion_plant_1.png b/mods_disabled/farming/textures/crops_onion_plant_1.png new file mode 100644 index 0000000000000000000000000000000000000000..dea2d4b0a2de883160c12faa8e590a7068ae2006 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?btz5wnSk90-g&}($L(V(~ z-MRIhKq21s zKVlRS5Ee|bvUUUtDR{a#hHzX@PFNso(3m79#=$lz;LHJ*qdYuZ0cR8#jxoqgVR)Lu S|1S=xmci52&t;ucLK6T&Y%62{ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_onion_plant_2.png b/mods_disabled/farming/textures/crops_onion_plant_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1f850f13be6daa533b8c5739b871137acadc98b9 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b&7Q{)Sk90-g&}7iL*)tv znVIuIDi}+G{DK)Ap4~_Tagw~Fdh= zh*3m9l1pfVlsZsI%hSa%gyVX0f&!<3v!PfUqll8ku`>c^4xHgR$iXHo%wlYy;b7Rz bAi>Pg=)_bXe_Q+-P#1%ztDnm{r-UW|cwj5X literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_onion_plant_3.png b/mods_disabled/farming/textures/crops_onion_plant_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d9af2394c91fdb6c59add70264d654ff2c0af012 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b&7Q{)Sk90-g&}7iL*)tv znVIuIDi}+G{DK)Ap4~_Tagw~Fdh= zh*3m9ir@45-fWs0gagbo7D}8;NJ}$dNK`m}fT2Z@N5PCCndR^ei6+Sz py^0bC6O5V?*w|P#(gYZi8QM3qZJgo$Wc-8}c18;Bnortfu03 zf%%KgUZjvH+x9JM&#$UrxFGgVdR;}})dj2im=~_s-LtK7ozO)7(92B`^PYCy zWmDkeaEufdSKYrN=g<~~+|MzdZA;}m=6JC;v8&42DC9}RSN8|+TK9!ZC_esS35##u zIdyiQJUP4D6*E4UEHgTe~DWM4f DA0BPA literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_onion_plant_5.png b/mods_disabled/farming/textures/crops_onion_plant_5.png new file mode 100644 index 0000000000000000000000000000000000000000..dfb1f7f8e302134c90477ceb0e2e5b394eae18f0 GIT binary patch literal 652 zcmV;70(1R|P)6G0TmzcZV4>)-&oqeq z_uzOdajozSE$1n|D>raudZAayE>8%d;CO3hj31J1Bgg$Pz~bUdxXkWn)CScut3Asq zCjdZKG(`O85wqJD)J9s%tR7lcc?JMzvBZe3XaLYV^{SL#yoV!Z)7y7mKvy(K{H*0w z(-BV!PPdI5kJdby&ORbPzPY%Xo9};qUjYC}{GG%*f>X)pS*x{oBrg&+|7ylVE?1yT5#* ze|XO2>!koNcTVR3u=!w+EM%7f0C%{UYhd!Kne+$SQ0R8|~l?-(L|9Ia30000+BdQv}VPlbC-pzDs=D$Y0CV@B?&tEpQmmp79xlbkYX jlycQAl_&o5zf%4HhR=GJ;|V8p00000NkvXXu0mjfB@w&s literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_pepper_ground.png b/mods_disabled/farming/textures/crops_pepper_ground.png new file mode 100644 index 0000000000000000000000000000000000000000..d72405a3e95189176aff4ea0fb0701ad76caf3eb GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdBa67QR;1$69tH+RCQlc~5R22v2@V zzucn0h|5g}&s=Lic++hO|}hrphR-&c2h7MG-igam`4QoOwlyVZPP05N#F L`njxgN@xNA@$I3c literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_pepper_plant_1.png b/mods_disabled/farming/textures/crops_pepper_plant_1.png new file mode 100644 index 0000000000000000000000000000000000000000..43ce6ba57bf7da11590fb7dd77a1c09476b7920e GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdBa67O@XaLYa-fj2r;B5V#p&b(3D(640Zi*FdH(Nx zX81=v%vRX!;Qarrk{zZjhZ}M|d3xUTyqB!|C%)v4^{mVz)vY-9*tH9(>-27t-zg z^zm1wGcygGO)g9PyC2nZJIpO+-H)H~6CU0?`JLx_y5Mu)H4O7Fcd~7WP_W{;aPYqT akEe`%bF_B)+}I3qK7*&LpUXO@geCwFuvUlw literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_pepper_plant_3.png b/mods_disabled/farming/textures/crops_pepper_plant_3.png new file mode 100644 index 0000000000000000000000000000000000000000..24e92e16eb024df1f7e415cbbf9ac830d98f1618 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdBa66%oQwKCMxf9RPZ!4!i_>o>8uB$ch`8MMa@O$B zc(caSqKQ*hwtd0D0={#JEwck=S1|TBF1&GJ&3!JWS6qhE{I+l2{5k#q0eO9oY?YNv zGm8QnZ+ywBx-tJx;0w)mwfxW!h3k)F(oGp8mSr2>(UYAor>}J8*~Q6P6SmAN?tXVz ze3F)cZrYRc?S5;G7&^RqNi*n(UY$yE{l18LbZZudkR{n=pL?uoQ) z@pl7IteaA-n+ra&$-pX{D0P`sdUM2{i(T<>#Y6MTFVf`GjkDm-?vTR-jJjau4fa(u zu&w|~4P+)Ju6O`}P5BBk_<~L|cv!%|-+?xXy-)Z~!nh9~59`GtgH@bfA<@LrK#v$# z4v*J!ZexhWx+$F|%9}20X8_IsW@1umAR9Z#)(p{E^xqt;G_(pmE?&+tQ^Al!LM_&H zzJjd2iBJYQyxA}cK>XO_^>(5FGG)Y@?syB?njzZcVCeAqJHHMwTQfu(?|ciXBY3_? z`Ev<9q;1HQ5i1RD%nXdCvA4^|8g-%5T%Y_8`>&->yu2O=00000NkvXXu0mjf>%htY literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/crops_pepper_plant_5.png b/mods_disabled/farming/textures/crops_pepper_plant_5.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c92eb6b4f9f01a84ca834c733efcc840b1a2d8 GIT binary patch literal 492 zcmV5Ud&Y78Wj$#0kDI@c~1t6b64LYa7h|#zQz(=vk&6!nx z1{owW(o2pcTzemldn8jv@)?w$K>*TOBk8P>P=NqWH`*(JytT+Ran!^ShVwhRq1tRJ>g34Oup z!IS_@DoyFaq8?_5#55npCW{+%ndpTP&v&XS*ni&|qH*2s#p6-4zewqJA-)toWlGxRIW_B8@(P36#!V?MdlXZbJQ>qbA8|P i_yeBqppdhnm;C^@x~)XL1yQ5`0000PY_p literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/default_junglegrass.png b/mods_disabled/farming/textures/default_junglegrass.png new file mode 100644 index 0000000000000000000000000000000000000000..5d8cdbca17d37713fb2941f135c402c29128f8ea GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5ptrmd2mhnkt2s-wTA zb*Q#usIF6-v0tK*Z-zx+u3>PgLt>F_WP@9FpL_G%!0l&N&o{o@1=P-1666=m;PC85 z8j#cI>Eak7aXGa&n(wdy2g~%l0|EAve$U?~@O*Jl&dCFB6qwf+?>+IW``s4%!&SGo z{)~Kl$7%n?HM3S;zrFpZ?s@L3UoI>WZeyMQ#@`ViQ4~+wv!Zf@O{5h#P zb9&;DjRMUrhP+vE%&oVaIJRUYGEOw`^=OGY5#hui`1A+kj#JE!W*jv<0CWt4r>mdK II;Vst0OFNmo#s5c-QvbhvnFBV6pi5vjf;1dI z?giEi!nbb4{=axJ{BQP$7!J}rD~$oW?Hg+$ z27qjX8C2uJ@PA4I!~X+4I5fflNC7Bh8+;i4cZD(hZwX-dU+>NEe`YGg)&)5X_@i!9 z9mD@^O%TP4^BMk6OM=iKgK9k)h>LfS29T3MPMw|%!6YZy?r?_x`PO7;Bo_bxNuTQ` TQlETq00000NkvXXu0mjfmmP}=cq|5r2c`2T-@i(}o@EQQ8%QQKP_ s|NLLC$unu;LQS4G|HFM7GMbqg{`W}ypF6)P9%uxEr>mdKI;Vst0QK83@c;k- literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_barley.png b/mods_disabled/farming/textures/farming_barley.png new file mode 100644 index 0000000000000000000000000000000000000000..ca929e0e0cfa7852ad952325191cf22bb215e6eb GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vt8QkVR*;faoT6uuoM(kr zO1XY$gGy9`ZbXA|RHshnEYsXsE)CP{)=ai+K4N`gbKt`>eM`@`MFO=mmIV0)GdMiE zkp|=>db&7tSePLZmF-$ zXkB{w_sm^~RA+u?6=jw_w&a#zK gim|o1v@x(Tuxw?xnXsmG6;KU>r>mdKI;Vst0HOCHn*aa+ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_barley_2.png b/mods_disabled/farming/textures/farming_barley_2.png new file mode 100644 index 0000000000000000000000000000000000000000..96610c2f9f4e98fa44990ef6d947acffe15fc04c GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aH3Ty9nYpI%TF&BQ*eqX@bbU` tfkOw_QWy#qoST`LnRg30FKA|DW-#bt7Ex>w{sq*<;OXk;vd$@?2>^5&Ctd&m literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_barley_3.png b/mods_disabled/farming/textures/farming_barley_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ef14b5b321603ee5d643ab99f571187ab1f8985a GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{@c>!@v~Ez?;R)P|IZ5 z#LGIFFSL%|x|@?>nP6f!ul;;MyH&hdi&=HHaWb6XV!6wZa$#mWP#0rKkY6x^!?PP{ zK#q^6i(`ny<+DA3d<_O1&fLLfZF%?pZ|U3U@|g3<;!54j#`?S8c&Es{)8`er{%on( z$*2F7clNJb#I;dn!&O7Ao>RwuZ!xkE_B$2h{*=wxlQG1&$~_EdE`z75pUXO@geCxA C(Lojf literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_barley_4.png b/mods_disabled/farming/textures/farming_barley_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f7c90544fff9159878eef2d06988e7ffad86f9b4 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{;cAn*#$+AcJZ=19J|G zXcY%XFE7JlZCka&oc;91V{HGd>)EEBd(gaO?w+Ox z%Px0@)J-_>YT3=BCq&(DI=`Qo*X3T^dTNpIl*O*nm%?2wcl!w3W)tK+@c1m-%p+Va a1&j;+F=gf&UE2?|i^0>?&t;ucLK6V)PEErA literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_barley_5.png b/mods_disabled/farming/textures/farming_barley_5.png new file mode 100644 index 0000000000000000000000000000000000000000..68c0d683934b8b164bb092a1bbf61e83d453b49b GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{;drh%|$|4uhH@gT6h3 zsTYG+DsxaCS9CRZYCCsEFGIm}o{GhSWy=|wHZyb|WSDx1p?UhH*+A`#B|(0{3=Yq3 zqyagFo-U3d5|`)pIEo!n;BXGsW?E$M-Tv)@x2IAgKOFMs_)z+YWwZQ)>*v1Q`N6o$ zFM8qzUz!}?^t*>W5IQwj;($Zl9o(Z r6DH)tmv=Yr|a zayO=|{uSMpJDG21lg^7PrRTqS%gHJ}{Jg{EQ}gGVtOE-0HBL7-F7HFLCz(d%UNvHN`jx>Nu3N;S8}{Yop`!|-@qsL?g3~S5 Rw*y_p;OXk;vd$@?2>`@0V5tBA literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_barley_7.png b/mods_disabled/farming/textures/farming_barley_7.png new file mode 100644 index 0000000000000000000000000000000000000000..1c636afbea800b2748fade6f1718ddffc5b375f5 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{;cA8y|y+EQ7Q2S>qlrZtl-D_1cz?qI#JIq>0`zGL6|m4MnAOM?7@862M7 zNCR>vc)B=-NL+U9jTB;0b-o$zCufKIhy-Ad!ofgNPTR&d?y8r9L>$kV2uPIKJ zuXW7((YNx0^&JkwocX&xx8*$TVO<=-X8UmJEFSrTk^Q#}oMQy0 zWlGVl0vCOQwc##YSB{GsURuafxoRQLmgwnm4pz;-8Eu|0Znv7icEgTe~DWM4fHVR=7 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_barley_seed.png b/mods_disabled/farming/textures/farming_barley_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..2f00a20af9e02653dff065ad6897fc40a3cb7ddd GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ%`eK$=rqflXjL-9wrzv^ zgq=at_QsgAU-=7Ez*rLG7tG-B>_!@pqvh%17{YNqIpF})q(mO~5HqfX;s&D`EDwC9 pB?!!9I?|=kwwf`9lX)TogWzmtuh%D{b^>)Vc)I$ztaD0e0svrzE2sbf literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beanbush.png b/mods_disabled/farming/textures/farming_beanbush.png new file mode 100644 index 0000000000000000000000000000000000000000..637e7162d46a9bf193f8b400c076ad7156a2958a GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeXEjDCq&)JYRO?Yba4#fxUPEIkc-Jtz~y58 z?Y`O{dcG z;=kW33gm8XwEOwXJJr+dU2pBCO~;osEtB4(%-+3yQB07poMuJwDS^qE=1Yz-&i={R YZovOR;>fG%KeyY002ovPDHLkV1gyTi>&|v literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beanpole_1.png b/mods_disabled/farming/textures/farming_beanpole_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ef2bd5abe14f6a13a035f901d2ecc7d749335014 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvi2$Dv*Te#b93PQ3ACZ<=iL`0L zISWJzmWh^c5IdzH7YbCvSQ6wH%;50sMjDXQ;pyTSqH(@;;z8bK0|A!r=hS`*WgKW^ z3(#7?GTnjm<$qQtmD`IwJ|3RtW_7m8e^>u%+k*^$SQoflC{AJ9@L#Oypm@~7ScX0B z6P$0cak@`p+w=4P7v>1rBf?x9ItSM0Fa)!zeXHw}mgd`VuYB)Trk>e9V$MgX+zqeF nJ32cltS)7B(we|7^&5;%AK3h5RvMlKx{1Nl)z4*}Q$iB}1btSk literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beanpole_2.png b/mods_disabled/farming/textures/farming_beanpole_2.png new file mode 100644 index 0000000000000000000000000000000000000000..34143e470fa2e7762acddb6d6ec296fe18ef0f3b GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvi2$Dv*Te#b93PQ3ACZ<=iL`0L zISWJzmWh^c5IdzH7YbCvSQ6wH%;50sMjDVa&(p;*MB{wxL_@yA3Oug82UC5cOP8O# zVET%4Ps;Wpp?CJ87gzDcPkqJMss6xTdXc|juP8Hv9rJ>wghSfg4Ik`T54MK;wB8YA z@K?Cxj^qMcWT|5sV*baT(%Nj-0tJp9l*>z23d9tM_gJVym?I+_Dr%HZkh K=d#Wzp$PyKw_sTS literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beanpole_3.png b/mods_disabled/farming/textures/farming_beanpole_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d693f17090f63db73650a55b8691dac267d39b5a GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvi2$Dv*Te#b93PQ3ACZ<=iL`0L zISWJzmWh^c5IdzH7YbCvSQ6wH%;50sMjDW_-_yl0MB{wx#Jzln40u}RUQyGwenJ4$$`Ixl}+Uz z3=-Pb%1_RH$Z_1uS$SSoxSF&|hxnX~K*w1uX(G7?YXfIWOxa(S&TDjDa>r`UqHc%K z37j5F%ul|TX>l{YlI||kG^w%CLh`De+(VG;L^B|S6B st5l*^=(wKmXxfyNe(uB!^}PqVlPtueObpeefL>wnboFyt=akR{0Ota4WdHyG literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beanpole_4.png b/mods_disabled/farming/textures/farming_beanpole_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c779b254c52345ce2dea0642ce8e5243a98b19a0 GIT binary patch literal 355 zcmV-p0i6DcP)g)3qH~!@pMDPF=b)wCZL!P*y-lNS)l1Qq*s88!Ho^lN41K z$D5z-z4wa`;C~FL>3>SE(8Aq;%{^p8?5I_HkWiv1;nbf`R+}tk8-C7NNWI9`6E@%Q zt3&BwS$X}*+WA?A`cdI?Ru@g#a>F+3=;80Kooc?zSj4|mZTmka@E@i)#-dq3x002ovPDHLkV1l^F BlU4u# literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beanpole_5.png b/mods_disabled/farming/textures/farming_beanpole_5.png new file mode 100644 index 0000000000000000000000000000000000000000..910f8a07d54f862539b2877ce6a389c4120c7bcd GIT binary patch literal 353 zcmV-n0iOPeP)00DGTPE!Ct=GbNc008kxL_t(2 z&s~wRPQx$|h8_2gI9m$pZb~b}hLAe28G@x|J0e$g-y%!)Ac0V~sOpf%#X^X?^tSt? z`~CS&slU=nR!*~Q0?_HXx*!%?(T77QfduG`zN;rAV-^k*&{r=;_T6XmKJH~GUcdHU zfZ@&h)g%I+VJ*Q?Z?TkLiKhsaP(@$GB1l!Z9gTKE1FbSU$08vl@Uamh&4WU<8W>at zi53jPuFeS`8FV_PmzLi=vfK_>`y+$Jnev#i7}&2?nHifkHsuw~J%gf8Yju`KBDOgZ zFW|`op>sF?pu`r_efi!N2FVdQ&MBb@0Np=DHvj+t literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beetroot.png b/mods_disabled/farming/textures/farming_beetroot.png new file mode 100644 index 0000000000000000000000000000000000000000..6a601681daa4486f8d66cea8115ee0dfe20b989e GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|tx`g>Y@JRtwTecz zX9C3;OM?7@862M7NCR@LJY5_^IIbrrI57F}1vD87ok)o0O7UDf>%f5tf4MxKFh}zopr0IBIM^8f$< literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beetroot_1.png b/mods_disabled/farming/textures/farming_beetroot_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8b75e10fb825d14ee45b740b356951608db4ad4e GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9Yth$G!4!GE@9`^vB8(+L ze!&b5&u*jvIf9-pjv*Y^lM@t#ObiN&7z7zu#2FU%ezLj?lw|O9^>bP0l+XkKFnt&M literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beetroot_2.png b/mods_disabled/farming/textures/farming_beetroot_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1ce1e730de66cfac5d0b1d576a77b0f8f946f6 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9tC@P3V2XV8z9}p~5yp}r zzhDN3XE)M-90^Ys#}JO|$q5Q9EY=b#=>`Qp2@jqyC@}~xU}9C+F#7^f4TGnvpUXO@ GgeCxz;u#G9 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beetroot_3.png b/mods_disabled/farming/textures/farming_beetroot_3.png new file mode 100644 index 0000000000000000000000000000000000000000..0f28e5e7db2418a884c1090275892ecba2ae234d GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t_%$6tx`gQDe{MmQl0?? z8B2ovf*Bm1-ADs+lssJ=LpZJ{Cn&HQ7@9D4E?dT?(zK9Kzopr0MqOuUH||9 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beetroot_4.png b/mods_disabled/farming/textures/farming_beetroot_4.png new file mode 100644 index 0000000000000000000000000000000000000000..35f211b08a708819f76b851571c2573ddd7bb4d0 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t_%$6tx`gQDe{MmQl0?? z8B2ovf*Bm1-ADs+lssJ=LpZJ{CnyLR7@9D4E?dSX@$klh0}oC-XmHuEi;azeVXhmy UOBsj%8lY+hPgg&ebxsLQ0L>jCGynhq literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beetroot_5.png b/mods_disabled/farming/textures/farming_beetroot_5.png new file mode 100644 index 0000000000000000000000000000000000000000..c4b8957275f7e15a9725aff1ec01d0b3c420267c GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|tx`gQDe|*yol^AK zc!A=KB|(0{3=Yq3qyahFo-U3d9M_W*6nJJx%xZ864rcBt$Vo^jC}25dVPxUJ5qA9m g1KZEv*Vi*J9M9)`d-oKJHc%Ubr>mdKI;Vst04iW52mk;8 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_beetroot_soup.png b/mods_disabled/farming/textures/farming_beetroot_soup.png new file mode 100644 index 0000000000000000000000000000000000000000..4df562e944ef71307c3369f4a8186aa483f515c5 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWP0r5&GFzpDX4yK`M9EFh zRh7$)nFbVMED7=pW^j0RBMr#0^>lFz;kcfhut3Csi;JrvQ&Bb9S-{)F^X7>g0w)AS zm@YLrv}G(%7_!isJMm;DPAHf1t=bz_}yec7=Lpg|0tu6{1-oD!M< D)XOj? literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_blueberries.png b/mods_disabled/farming/textures/farming_blueberries.png new file mode 100644 index 0000000000000000000000000000000000000000..b0c493195c4b46e5196221e5f0c49b7cf16adbe7 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aRRD?FGDuXi$VD)y%x2Nu z%@EKjnzcu)@s{-NqaT5?j3q&S!3+-1ZlnP@=AJH&Asp9}6ArM=;90=a@1mh>BdEnV zmC3VVrUK^%Edl=7S_bwuf;x{FmmEk^Xnkl9TX4I9fuU*%*L>$Uk3)b)FnGH9xvX$ZR|6JHC@W!tw1D8g70 zk;uyklJvl*vMMOe^MMi?9N`j})P-6!J10MrZdH|!oHc%CVr>mdK II;Vst03L!ESpWb4 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_blueberry_2.png b/mods_disabled/farming/textures/farming_blueberry_2.png new file mode 100644 index 0000000000000000000000000000000000000000..308a0caf006a7d617319c7cc98453d7a36d8e55b GIT binary patch literal 223 zcmV<503iQ~P)h@_o(N*kEDlq_MDpfx^<_@_uNhOZC!QT2eMpOHmS^?`&TPXZ(4@sY%cA zl0Ne_9U^u^NIGpFGEo8&0@ojGm;88dLFHYfOeTPFrK;OW-U$p&5#YGGh@MlB^Cmfb zWPd}r$K`-w?vG&d7cJ`L!QKv;LafsNG$q1uSqDGCEqex*5DA=q}lDyOs9=l?9XkQhdkU? zdA_gnC*U(5xxYq^mnc9Hh={sk^>o1k?oN@typvRADj-)A^*RU@C?k)O65!6x8m>ZQ z%K4CDF4_M8w$t0Gaoj2sR}(q@zBeSTvO3K#t7hf60d-Vp|FQ~fYG49Q0!V>s?P^~) hprJiz53o6Y;uowDqLJPOy4wH%002ovPDHLkV1k`AU_Af; literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_blueberry_4.png b/mods_disabled/farming/textures/farming_blueberry_4.png new file mode 100644 index 0000000000000000000000000000000000000000..75fb69a0ee637f2bcfd309bd8b3c1e8ddd049559 GIT binary patch literal 317 zcmV-D0mA-?P)EJl!N5h5>1s;&t8sh>gb_^9sCPZ`kin0Dz*7 zDZR4II2tjpz||JtBIgz8MDBuRn-O_s!MaJP45*ugVG3mevAdCQoPeBAJp>9-8H;l! zQmZXES#*^9BVnoSk)Cc6H%=5f_dRfav)|-i)G^;*J|h5FYH&IQW;5V;=SDgURafPeRJjAo%Jt|_3c=7)EcOTu_VYZn8D%MjWi&q*we)^gyVX0 zLPCOwh)4nhlUrwBpPPVpMD^FSUbh7flh3Vj)-LBT@OWcc{Orlh%e_2@W~KLBn`61= zgu<3*J(p$$PZp6>c{V4qluhNRhVACX$=z9ifz~s4y85}Sb4q9e08e;RLI3~& literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_blueberry_pie.png b/mods_disabled/farming/textures/farming_blueberry_pie.png new file mode 100644 index 0000000000000000000000000000000000000000..21746864837226f9d0b342536c614a11c12495e5 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(ab!1@B)z{JXEJ_O0jZR2P zN=aPU6+V6Dv5930#wFW666=m;PC858jus_>Eal|aXmTV0Mm_2mxK=GkYZ-N)x#bP0l+XkK!4f<_ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_bottle_ethanol.png b/mods_disabled/farming/textures/farming_bottle_ethanol.png new file mode 100644 index 0000000000000000000000000000000000000000..84e6162de837acf5f930477d9c6ee8877d35229f GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(a1=3pR n|JN2JBy_}cg&dM%2;^cA>E}8qRH~5+)Xw1P>gTe~DWM4f_0A|S literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_bread.png b/mods_disabled/farming/textures/farming_bread.png new file mode 100644 index 0000000000000000000000000000000000000000..bd00e3e139782539349ad21ace6796e9d323ec79 GIT binary patch literal 552 zcmV+@0@wYCP)m&!lD{!JP~7dHDYce{k<=MVsk>iBic20p~P(_^K!~ zL-&a;Uf5VD?|otpPlZcMA+>7ELAOQ!1V-uzL|CcCh_)FWLgFA5 zvGq6Vd;H>Y0oE!)wHkBqy+!A!ARXomGs`e9Xf@i*8K_)@%P~Y?81p&P(>O+m7DkwDL%_&g^5`h%3o&rPg)&T*D zfd!Q3AWZGv+0-xTSF`}9;ILR6D0nC;%7ltCacc)*OqlWP_J*oE1%*!D!(v#{5HzB% q18(j#gjsK&T=V!_d-W}!f8i%XZ^E3%vu4Er0000nqd7=&3Gkv8Ul-Z)~fk>p#S1H<_2f_vl0+l%_u{o)*xhS)_sIt3g zaJVY5xvH?as2r%FXFk%ld;ttYc4>INnR%Qz};0aM-3(;Z=(P0mMv5Gv*K1=ZP?4i!kAd)M1M>V2div}KP{XN%Hgi!x!0GG&W02O{<;8}=w$ zo@hE8Y=^_!2Bc z5*>Mxti+S-MUpK_!@pW9RAO7{YNqIe~%6(UHwSz$8ql;gVjT!z@9MX30ZtdU|>a znu(&~D>!-%X0+%zH9X`nW%n^QSmlthU}=IBgVk<+{yW~^Wq>9zc)I$ztaD0e0ste2 BD`)@! literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_carrot_gold.png b/mods_disabled/farming/textures/farming_carrot_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..b817101d7fa8ea04f17ed6ffad175f6e590a5f23 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDURWaby2;tO?=ZuZ!HO~>W zDB~{3;k9e!cJCDMpCu5!RBZ7g_k;VSE?+i&|32&Y?@M18c|is-mIV0)GdMiEkp|@W zdb&7$25|E$vl_U=5cVDjCxgN1oEBVV>8g9xwSQID##Z-53fc)I$ztaD0e0stTJ BMu`9b literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_carrot_juice.png b/mods_disabled/farming/textures/farming_carrot_juice.png new file mode 100644 index 0000000000000000000000000000000000000000..5a032455a8bf10ce7eae00caeb261f7dbea6896e GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ%`eK`o}qHRRN>;~3%Bmv zeDdt^k6+(E95yuqDqt)L@(X5gcy=QV$Z_y=aSY+Oo}6%iy{Wg?*U==KiJ3W?fvZ_p zSC{b&!^vjJo~9bP0l+XkKYRNXV literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_chili_1.png b/mods_disabled/farming/textures/farming_chili_1.png new file mode 100644 index 0000000000000000000000000000000000000000..aa11988de84a9c2b2bf72eda95d0038f03549c75 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt^?o-U3d z7N?UFBv=~#Gf#KgWHr;y?2A6fq~(%p5F0{kV0Xg(F~rhelF{r5}E+OEH^|eZqspM@)vIQVlN6 vjLgBp6Amt9Q{mlVCDM?@&DWqJu|beQOPf@i0aP&0$4tDnm{r-UW|4xc8U literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_chili_7.png b/mods_disabled/farming/textures/farming_chili_7.png new file mode 100644 index 0000000000000000000000000000000000000000..5912c2e1caf223cb15059d1996123e48293638b6 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b1=3clHGs(Fgx>%E|C@rR zTmlL)l?3?(Gcc4*K5GHwF(!GtyRh_U+zbS%_H=O!;gDrL$jHlJz`?vB&0zopr0BgcArT_o{ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_chili_8.png b/mods_disabled/farming/textures/farming_chili_8.png new file mode 100644 index 0000000000000000000000000000000000000000..976eb521c84d74c3d6f93996a543723f7c92c102 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b1=3clHGt?b56}Pq|0g_| zqXiUVDhcunW?(3reAWWUV@&dPcVX$zxETmi?djqe!Xe9gkdc?cfP;BMn#GPLR@NWk z-^CahbQHMeL|AkhEn&;dy0B+i`VBLl$o9!r6Zj@D1vzx_fBDROcDdMtqd-#_JYD@< J);T3K0RT{6F=hY& literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_chili_bowl.png b/mods_disabled/farming/textures/farming_chili_bowl.png new file mode 100644 index 0000000000000000000000000000000000000000..6454ba3e3cb12fd3fdc633cfcf6699673fadce42 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=2GnO7fIE-nv%qaFXQp zt2-a_@cjS(pCj&=AW)8}B*-tAfuU^jSqmVKG0EHAgD-DaIskcNezAv>mlTj*q8{V+e;V>%on@OpZJ(2O_=a z|86;eVL3#^%=6w*~YbEEn~`oD;F*VFuZ>+euBNMpwF8eK4VnkVej4iHHIL|Z{@0du{7%sg@=)F1|2u;yki%fWHt zfSZ)#AZ*{LgV+NMJMkx2kCZSdl?6nyM(3RHfD8~YU9-C{p(YLhHQE?~hz$nF-e3nH zkB4oXW1dKHge0oep@A|{XUGBonUfml9FmwF?Y0280KhEAEffi+N9&xdRfoG1%f5<~ ziSBjeP*%GP{ntgzU3FwQ#NkH$rs{;6}Zn*(S7C2{?1z5*?m2&qR z4($ShzF1}V4hj94C|N^@wKwSWx_#sLgxHWcvcvU6`~Yja46a=ygM+Q6ecH9(!sQNa16E5n*d qPfvj(=?Nl2DG4mxoK6}R3=H$q`CGmUMxOz5*r z?Xl13bDgm%Zjp@19iSSp z?RU?c>{>bBYubjSmC7G^fyx+5g8YIR9G=}s19EgdT^vI=t|uobh>AG8WMkKGc3!}E yC}ERF1DE7M5$OXNj60Gvnnl%)PG~s8!0=-~OVCWWTg!nO89ZJ6T-G@yGywoEeJ!Z~ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_corn_5.png b/mods_disabled/farming/textures/farming_corn_5.png new file mode 100644 index 0000000000000000000000000000000000000000..7b6fb02b707ae653e7b29c5b384271e3e94dd93f GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aRbXK7E;o#9HBD}Hi0?7W zndDwI&$Dhp$kdH-Pt4_R0+lhA1o;IsI6S+N2IQD{x;Tb#Tu)9oz%Qd9BHeTF#sr3` z8ymU|HdvWBMoKXzteW7+tEJ2k93#gNyoSNpl0lo9p}dQYy)kBP0#HALr>mdKI;Vst E0Bim&3jhEB literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_corn_6.png b/mods_disabled/farming/textures/farming_corn_6.png new file mode 100644 index 0000000000000000000000000000000000000000..313697b90653b62819b4df7606ac80e65157911d GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy#sNMduHAMEG?QgK%MC)BO`==v z;@d5wJB?F%>=OGdGA4OtPj)Su>{dS4y>ms#v<*qKHpNZfme@0)dJ0fGV@Z%-FoVOh z8)+a;lDE4HLkFv@2av;A;1OBOz`!jG!i)^F=12eq*-JcqUD@w(3UlgNWwtGQ2NVkO zba4!^IGvmz!McUP=g*YY4;~~WJV-sVys6i*L2|v|nwp9ymNOf;Dn4XBPf1KT`rfU~ zFO6wm!twPC5?pUu4s~`1cog-wskpEzvc|NCENE9@SkuY4r?JYY2xvNkr>mdKI;Vst E0JTIseMktGlFuaxD`!yE1MZqJlm&sj)#`cJ#(O5#*!evUYh7ML)4Ealo zaXvXgBE&&Hw&A5SFVdQ&MBb@0HPvQCjbBd literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_corn_8.png b/mods_disabled/farming/textures/farming_corn_8.png new file mode 100644 index 0000000000000000000000000000000000000000..77e442b09977c3945e4b2cd3aec4cbe34a897e6d GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy#sNMdu8%LS&`y>y$}(Las^eZ^ zU{PxsP-Pm{YLeJto!Dm)JR>M;vU|~F*Zk?8`&%+=7yETBk95DqEeX`lSQ6wH%;50s zMjD8d z^N5Wh^?P>0zf+r-`=@bT-ol5$D=qIum}J7} z`#h|Rc0GF7E>|PmdWZAEe~-_>zmENVvcrGTC04#yKXMNM9m3%0>gTe~DWM4f`<8Ex literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_corn_cob.png b/mods_disabled/farming/textures/farming_corn_cob.png new file mode 100644 index 0000000000000000000000000000000000000000..a2fd9da7d09358e8ac76ea460d817656b5031c12 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUO)OxLiBVE6RA1gEdT=Vk zskyAT*T~%7pSjar_Y6=CV@Z%-FoVOh8)-m}kEe@c2*>s0ga!sijkziu3vc>}DwJep zFwF?eOJZAg(>rDXlWJN5TlG$FDVGCBC3Ox=d&DE?QCMckU_2?dM{(II3uhLIR-OxQ bS{WIpvT*gTe~DWM4f1v4|x literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_cotton.png b/mods_disabled/farming/textures/farming_cotton.png new file mode 100644 index 0000000000000000000000000000000000000000..8aa50e4e38c75bce9f41cbee1ed6535adb7c7f9c GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}U4T!BE09hPlFg1#&W%*gjMFKI z)yPOP%t|uMPBzX>Hpogd&q*`OO*72{lIiC8>1O#E=7l-7uit>c+qZAuy?gieJs5ld zf!Citef;?G!zU2<{Q2{zFCg$02)=#${{8z;Ao%s`HxT>*gTH@QO`CrR=mN%)AirP+ zhi5m^fSepp7sn6@$+-uk`I-zwSPwjA4y;@izA)1_v|}5O@0-{{x55C$p3ov)Lq3BN%fu6j$bxAmcc4> o$>!#pM%J{aRpF1k10Uow$7gUvCD|;E0ou#p>FVdQ&MBb@0CbC+Pyhe` literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_cotton_1.png b/mods_disabled/farming/textures/farming_cotton_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc218078722b9634503146a0fb0d3353c3e5859 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0ENCG36TW*{TIiIzRq! z3jxI$OM?7@862M7NCWBcba4!+U`$>hl)xgG#>vCLxQk&%%X!6lKsg3aS3j3^P6N1~t zT7lw>B|(0{3=Yq3qyafno-U3d6^zLXSPYCdFr0Mfa%j5C=_!@pqwneB7{YNqd4UMW0SP{XHb$ow$z^Sx4T37?j~qC$fI-YC mC8cFmP*}r-9yd1!AqL+pCe=^OGu(k%89ZJ6T-G@yGywoue<@V} literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_cotton_4.png b/mods_disabled/farming/textures/farming_cotton_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f314b07b7e1968592fb8bf3f9fb592f4a6467010 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b1=7hmI;G_XzVTY!9oC1Y zup|P77)yfuf*Bm1-ADs+Og&v3LpZJ{EAVbOAi-zQ#?;oq5F)ymnOS)P%j(3i1g4Y5 q%sbf$~F!A+hX*qB)6klZKoY&;i1vH7l)78&qol`;+0Mzd* A1ONa4 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_cotton_6.png b/mods_disabled/farming/textures/farming_cotton_6.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bd4fb346ec9ee2a71696d9337723d2be7de8dd GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW^~o%3Ot#4jH=kbW9_ejT z5o;-L`KAjf%UBZR7tG-B>_!@pn!GVY2Kz8F^Aq7W=<|h7su7+0_ z%;(jgy1^6crYhviImc{Ej=$HGy^A(l>lC<3yg$co;R#@=OgfrXJV)k$6JL*(mP0PX<{vDId%2_RfQB-7 My85}Sb4q9e07KF(tpET3 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_cotton_8.png b/mods_disabled/farming/textures/farming_cotton_8.png new file mode 100644 index 0000000000000000000000000000000000000000..f835ba5b3f6f2c4d0e6c3f730be01e599dab7b6e GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ1=1BEstJygSFT*~H50Ya z6g2nMH80Iv29#hd3GxeOaCmkj4akZ0ba4#fxSrd&k+;Es=fIpT2I&tPJ~#^SGX#C- zlbP^;{Q{w$icL9n8i96(^{U|s@{S!nx`{Fen{H}v4KbMfXl0lD=7OY*ggmJ~bxxfl+I4L|LH_AoGby85}Sb4q9e09F4!`v3p{ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_cotton_seed.png b/mods_disabled/farming/textures/farming_cotton_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d5b8ab714e2f074b8136aac0d8dab88c0acc2a GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b^~o&sbXJcEvo6REsH=<@ zI$@IslwvFi@(X5gcy=QV$T9VFaSW+oOg_LkL)2l3Fmv-nh7LuY0}32s=^+P}PGejn t#^aEscx$0U1mmeR5eCVl4VN|87&b3ts&D#O@cf4Ux*d*m>!qJ?|+p;0iq>WL5F(thzheea+CfA~;T#88w zQaJ)zopr0F+lb?f?J) literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_cucumber_1.png b/mods_disabled/farming/textures/farming_cucumber_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e008fd12aef55c66f70a05c7d444c0ad69eca6d5 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`cAhSdAr-fh6C_v{Cx{5}-sv;? z!@u{?hxr<}1CrGePVcx!&=f9@W zfh6n0^>eSTXlsc}{J}4zev9EKE5}iVvkJ@;W81DzRq&jV`@fOli2F5$Ny;yzCNQNm z?{x;uhBhM ztpmcH2lO@;Mu!w7fENmcKVfppLLlVSJ8P#?b7PU|5&=+-7MJ7%T9d8jG6{Xerfm_k z><&QdSnTc7ff3MNWjhGSMdb&7t5DehH5SYbw{yxa6%qxsKL&*^d7=;W>u5!bo9JK~eH h(M|0uujc=&W_N00006VoOIv0RI600RN!9r;`8x0t!h) zK~yMHJ<&;S6G0RJ&_7l6V8?M1j06jWI2TvrIGh6(AOs|FoY>tp{DB36E4+uFKYjf2 z^Zxtsl#+z@!+!tnaK{Lb&*j(i%l&d;2ncYa+w1AW-GROxpN^#vQe90Q*VYYecQuX! zmDV{zjU}g??0Qb~O!V+l&Aj#|i5L+8d%)ANl&*Q;P#Y8UVjjcYZr4;P2||#N03Zr6 z;lurTydq2(rktdCAj3FtS&fnDD(68k3AmZMU#bHk5TjC4BcTjo4xpBqy#u{_eY2lt zMhT2)7@>@D`n}E*w_w+(VHjZGOKZ1>iO6Zcoe*Oh1_M{KuKwyUPiZ)8M<&z~^Gr*3 z&UjgrhEcj%Ep{$zL_kD0t)|;uy4lTLaUO=&W0WL7+FTxAo*&MOB}#xmpo)gTM5XnY zr2uwJ0@klL6Bx6ESm06{N2v2S5@@^IkKpk2{^@a95vi_5j757&mWPSll!^SmH{_Y} zTI$28xY_?70#c?hli!aQ?_H8K4`N7!y#_}J!K%preuVLKTCjxduQtcBkWf~yjv}zx zrrVq8STCwQ0#wZrF4f6mM~c(Aw(ja{1VY5QR1g0H XybyEF)T0<%00000NkvXXu0mjf*|Hr( literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_desert_sand_soil_wet.png b/mods_disabled/farming/textures/farming_desert_sand_soil_wet.png new file mode 100644 index 0000000000000000000000000000000000000000..cffa955d6689ad88d675921a3e033256869343f7 GIT binary patch literal 590 zcmV-U0TPe1t@7;T-w)^~?9) zmtV`GsxUjv^Yi&g!Sz=E-0zolB?3Sg4|Dl^JoD#uxz;LRt8RhXyTkXpQVMJ9M3_@k zO3CISjRSePS9fpLR7nv)dSJQM+Iubv^O9iIBg%2VZ)Qv?2&yOmQBv@Fd6XR`NtjW! zJ3y4ex;cg1<(w5s5$@)`wg3SkjLl3`62b#8&t!D)`Fxm%k)k0HT_TKv+sif&)fh%udoanm8FNu{tJNNLivS|JS#_KC z>98BR$(VERQB)PQ=IMIBUmlw)6#>FbT%aPg_4`&K9jfBC9|t(8NFLZ)d-E=Zkan62 z0zY1s*L8dQAyKWTRaBBi3sGR2(%~>HZ8hr%n7Iko>f)Aq<1{Aw&)eWVjO3@M({UW- z{l~+VczT*RmVBBD<=wkQ-C9HxVoC`fZ$BQMvr@^V+?Ue*pZAb;$a!7*m=sliy2+ zH91To`P;3^doPf5RFgz&Hwb0-5XkF|FL5WZbM{o1T|bcQv91-$`Zf>`FwO0KD9J-; zB-?&nha<^nkqvKpA!UHKTc0`RZJD>ZbHKx_A*q4@o_;kYUtGz$>&yBsu+91WO6wAk z&3w!ovLA)wZFM6J2#(K9-tGC`4-`4gsO|zT~Q~``^I4EOL z>7-`Q{JEid)bUTz<7swwX2};X8%KmzY}TPj_G9%(fSt0vZ~9fuNv#fDkSrxDEMb8L zK--uqAik+ctnA0BBTvTm-Ko-|M<%HAI1mP4hSt3bzs|s!o{td!Fmi&WPy!egWDr8& zwhaPVek)<80J>TZJasq$HE25x7GIxS+#x1 z2KIYZ!NA=Enlu0(XCYZwWfLWQ3e}n~e_H2m!L&wzb{oCrmotgm6{H%NP)Yx-Q{f`< zH@JO-3eZ`a@+U&YmBnK_2Q1)?O?ZRdhUZQdDj+yK>Q(Rh3NFdZ=TG7>NIAI_??n!m z_&4Bw=&L%yD+{WZtr9sn0=#FV02K@&nKJ~oIqCbdYF)_k>$#~cas%rKG#CJ|#wxE+ nMIKmUBX=JleSSG%=DPSlp*&w|_r}1_00000NkvXXu0mjfA;%Mv literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_donut.png b/mods_disabled/farming/textures/farming_donut.png new file mode 100644 index 0000000000000000000000000000000000000000..8985299bb01d7abc91a4a81270891b52f0e933fb GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5qYrYT`trw8qt8?kRr z#F2%u2NuVkTpE3JdDPkEVHZ~?Uf&RZbwldq%?USmR*2>u50K%;a(!5;&F3d7)zEetIr{yH9G^m*Xn9Bc^4fBRn&2MuymLFy;*aW(>PKZ z{L+-}Up~daIAiWaDR;m3IlFX39w=DfD&8YybEEFxXI`5HY|cmXe$E3rgu&C*&t;uc GLK6UdziDj% literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_donut_apple.png b/mods_disabled/farming/textures/farming_donut_apple.png new file mode 100644 index 0000000000000000000000000000000000000000..6dfe63d5980364e3abe99d0ec5168b03d247dd93 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vt4g8Q5?0Aw{4$@F^q+=$ zz6y7EloIqbBjav<(!-*H+ZAaK8fx!%w!EJ_<>-p!_w(l6-&-UjlX(EBov|dyFPOpM z*^M+Hr`*%UF+}2WZ;!XoVFQk%GPfHz@Bf~^P32w6rP!^L6XLS}FI>g_AT{YQ&#$~w z*A5@@X<5IhD&nP+v`ER*)8jIBIPrMdhs+sfr`9}*YDnPuVz!EZYSNT|`ghCEMw)Up3a@2buy?yp>x<3T zUB9&}eO{qum=rvvv&Z6~$mJs^JElvTMcn)Se13ee1#9}B-gTe~DWM4f D3aex3 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_flour.png b/mods_disabled/farming/textures/farming_flour.png new file mode 100644 index 0000000000000000000000000000000000000000..b1a97836efa64c2bf3867a9fe9155bd9247bc515 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ1=3%?e*ORd|D#8bUc7km z`}glRZ{FFk$kf zNvk*_90Ec@Bu*r7iin7?bXqWFI!^G|WGGboFyt=akR{ E03*&XKL7v# literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_garlic_bread.png b/mods_disabled/farming/textures/farming_garlic_bread.png new file mode 100644 index 0000000000000000000000000000000000000000..b76000416c740dd60e3a081f955e1b34429c5577 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ%`eIYGTZ&cS0>9HYV&Q_ z8*^zdU!Sn44^Wh`B*-tA!Qt7BG$1F`)5S4_zopr0O8|6UFaa~;&+R(--bz$!#@w@vY jK3HDRG+J)?T<}lVdjaPuD(4D;Rxo(F`njxgN@xNA>nKBy literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_jaffa_cake.png b/mods_disabled/farming/textures/farming_jaffa_cake.png new file mode 100644 index 0000000000000000000000000000000000000000..87cc0036d19e0b29691ed9e383ea87f887fcef84 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bO)b$?m1Xs{QH!(Y-7+a+ z?jn)XKq$$xLc^MQrST1s@L@*r8X4uZu`}cZDfxf)C zyc&06XPw5Gx3iflX8CM>D44(?+_Pzh20w;>bwVDK_J+>|8pPn~>gTe~DWM4f<)<_t literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_melon_1.png b/mods_disabled/farming/textures/farming_melon_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6ea6d8d6e4f801d2479de7d62ed05d755775ae GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeXWw2zhv0+F~W=~7wXl)hV zy<6whDT`C5tgl=#{r^99{R_p@K$VOoL4Lsu4$p3+0Xb5hE{-7_*OL<#=x4MT-jG?q g<5#NDe3iiiD8<95`!?n2cc3Z;Pgg&ebxsLQ04+@^@c;k- literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_melon_2.png b/mods_disabled/farming/textures/farming_melon_2.png new file mode 100644 index 0000000000000000000000000000000000000000..185ed8263087abd2af6704be4a67c4835ad1d438 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUH8Ntbv0;dgW=u|IPfO!y zX%T5{6`nLnZ1--RQ>QFWow7c2#_-A&)A#RvfBf+J|3B7hCqoQSFJnoNUoeBivm0qZ zj=ZOfV+hCfM(|FKecZ~FnYGnNGT1v5B2 zyO9Ru=yx`w!m#{)Sl}dYKQ@%UBZR7tG-B>_!@p zW9;eT7{YNqIpF}eP(n|$!7(0*W^cx08Vwij>%Yg-IWj@@l q;aj-vSx=sr*2e!qIkfJ=U2eX)fsD4sWg9^5WbkzLb6Mw<&;$T^KR~en literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_melon_6.png b/mods_disabled/farming/textures/farming_melon_6.png new file mode 100644 index 0000000000000000000000000000000000000000..b31a5b4c42108dd21eb2bad0bea009707f5f2e6e GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5ptxjAFHpHy@-Lq-Ni zWFA9i4MR~oLuZFT^(2O_#SHUzG3?o`dghGL(`OEE-Z=gH8}?_d>OY`%#*!evU^3zkiFVX<4v0sH;<#nrmV*ttQk2+nN|o-3$(atY{kf&&vYqwCs!=c O1_n=8KbLh*2~7aaq)apb literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_melon_7.png b/mods_disabled/farming/textures/farming_melon_7.png new file mode 100644 index 0000000000000000000000000000000000000000..3aebfdd6d6d9d11483acb45d81b10f914b1d958c GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VYihrtxjAFHpHy@-Lq-Ni zWFA9i4MR~oLuZFT^(2O_#SHUzG3?o`dghGL(`OEE-Z=gH8`gE|vL8@8V@Z%-FoVOh z8)-mJk*AAeh{WaG-ax)X20YH@9-h5Xdb%@PXD&()nygzeNfBt{Ob*zfaDlQ#URWsXMpIAuL$a|56#tmiT?43xT#Xc)I$ztaD0e0ss=dT&@5B literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_melon_side.png b/mods_disabled/farming/textures/farming_melon_side.png new file mode 100644 index 0000000000000000000000000000000000000000..88e40c6a08421585274e41b58ecd19c88cc0a567 GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU4U7?v%ixdBP{=6K$S#$s zZPcu3mhPS?(>qCf#yqX1a}?&xmtVbBcl~DNotss6?NL|JS|ktDJJZv}F@)oK@{YLA z^^yPPZrRLp{n9`G*Y<)^rweqxl z-n}%AK{7bxo$hJ7cV&Hv-LL;A&$B+1W|-4m@m;67`nFx$%gz7uPTSqB6=OIp>~5eJ S&Y}l&B!j1`pUXO@geCyK literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_melon_slice.png b/mods_disabled/farming/textures/farming_melon_slice.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee977577899412a6e1423c94cf160f1037e3c97 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5ptFAGz#fWUEC^^@|l zM^qK}tE=CU(>bHA;TOYO(=7Ub=92AuRNfvx@#XT4|4&c+cz>mT&8kyC?TjTse!&b5 z&u*jvIdPsYjv*44d;4zk9Z=w4`52*9apnL2TUnPQJbzuNyxqtvP^)k>P50}D&(mi1 zzBs7(u2+tMMS0TgGiwa`=lh0XQU88U1;r=|W{BDyd&ujIF1Xv@Ds Z#&hD#3zFP&3xPHQzo(4u{&UX$0PoR*-laKwya4X=gWi+Ly?p?@_+i_~$-7nnRLexK z2pW0Z093n#Zw3<0>;P08eRME7yX*kD5k!(n-7*{i?#d9WV-XZ40Pc7dz@QxcHUPOH zUhwf3&TIg=1Yhy<0=}#O>Dumo?wDxo0NL&7e!H48oB+Q6`?>%8ddUFHySrM;yU*+? WGEAu4rZoWo0000MgGoEpfBZ))7xPh&44FiMkJ8rIBHfP0w P<}!G?`njxgN@xNAQWGum literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_oat.png b/mods_disabled/farming/textures/farming_oat.png new file mode 100644 index 0000000000000000000000000000000000000000..e8d5c230d91c18fea294cfc0bbfc421edb99738d GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Uw}`DE0A7WZM?bJ{Qv*|vt~`6 zU*@>1%4t=d+p1NIf#RDw{eV*2+pV`xj^EkkuxDD-zFA58C%GP*<#+7Z!IMj}PtOm& zxIF&ymgZYq%N{*?V4>`z4K$IZB*+hB1HWV1-2E+MzODmU{@+_F^^>VhFk~6QtqSE8?^VV9jGHqKV QwiVjD zT~-&)`R!e6APAITED7=pW^j0RBMr#W@N{tu;gC&ESfFjda8vETfm06-95|sMaNq!2 m$_4`t2F_^=tY&QuEDVavnAYok@IMRG!{F)a=d#Wzp$P!Z`zq}K literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_oat_3.png b/mods_disabled/farming/textures/farming_oat_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5aba10868276534010d3968af97a5c9663161500 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=5oy>#khkx^9ifu5Dra zcEp@JS#jZL&dmMQJwQ3ek|4ie28U-i(tsRiPZ!4!4%y^{1$G7ul9~q&oO*EJzzGF` z0|)q0HW+X)a86@jEo*CFViOl*WuC^sF4|TyjfJ(0on4qsJ&cuAl$EuVVaa~Blhsd` R{s9`t;OXk;vd$@?2>>6vG)n*g literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_oat_4.png b/mods_disabled/farming/textures/farming_oat_4.png new file mode 100644 index 0000000000000000000000000000000000000000..833b134818ee194a891587600a76fef8cb226a68 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=7>zn9Q4Nv1*;m#tng6 zH-;YEn|$;@=B3k3mrs_i)LLZ@RKZvh}L5F?pqN0LYSqNEA}+Yn$tpij>mH~Gxd4}WOP<1Y4w+&t5)$!Ev$b07-%wsr>mdKI;Vst09>Xx7sn6|*|`T7 z3bq)CxL!QH=2wcV*8znab}txz`mi{&?ufV}&tkmeMlPeMfAE(BmU}Kw`023ZXl6&N zfQ+(Ly*AgB?#olw{y38xda(9!#?r{B89t>az8=rJbYW%sU#(uR$ILT*#qX@+3{?Tz O#^CAd=d#Wzp$P!@kyXe5 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_oat_6.png b/mods_disabled/farming/textures/farming_oat_6.png new file mode 100644 index 0000000000000000000000000000000000000000..847adc56bef774a97578a7b29882a1921067844e GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv5AX?b1=3SH&1bY*&1$n-Imdm? z?63`seKs$S+_N%c|HjmV>v9jRPddITa6(d^F;FRENswPKgTu2MX+Tb~r;B3Vc2j3)vk4jedq`M{Zj3oabk(3I@Rz<;Ib?}S5rJ+xK@$S(SESRr6}U~B_tL>ps; z+&@*BGa(jfGAda{eIXz0td&#mg+0-Xk6U)pOYX-Ft@)pO({*_-P2HTCd%X1g;U(Jw zA8ZPhzv{m0Y~C*O%ZFBSdEeG)%q!;jDDjA2PF~KxWp~CWpmP{JUHx3vIVCg!0H-En Ao&W#< literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_oat_8.png b/mods_disabled/farming/textures/farming_oat_8.png new file mode 100644 index 0000000000000000000000000000000000000000..c7a5540685317e12bbdceed7ea153812d40f218a GIT binary patch literal 310 zcmV-60m=S}P)m& z8dm*l^m442g2lHeHWuTG*wq@wOlQ=Cb3(Tq&XI1XPJDUP-T9$xlov0;xj7SgWmb^- z^lKyqz5GmT4u}eRa*zlmAl{8RsNCb!7+H@3PC4JvtGpuSKgh@jbQc2&ssI2007*qo IM6N<$g28ru6aWAK literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_oat_seed.png b/mods_disabled/farming/textures/farming_oat_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..893c93c0d0b0dcdd44f9563bd532709e322fab37 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ1=7=^oaV;6FG=;;R+Dg~ zx9I$WPTP%UoInZ2k|4ie28U-i(tsRwPZ!4!j_Bls15A?=dED9BL?musWjK`}#1Ndr kx1xsSz$(_8J~j*tLR!q_G3`6~fm#?mUHx3vIVCg!03;(PkN^Mx literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_orange.png b/mods_disabled/farming/textures/farming_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9ec299c67a2690ce219a817b342436025ed1c5 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5qY1UIJ09F?t+Y|~PO z55+KtRTv*h;XIwp(om;+I8WqGHe*V+U1_`dqe9O2B^;0HSQ}&OcLKFDmIV0)GdMiE zkp|?Xd%8G=NL=pi^X6+X;BZ;Vu}#eS&i^fs_8aQWxw~f%k3jA5H>_ft=UF~G==1gE ziQ*Dj{R=D_tCnpKXw>XkDAS;5y4dvDO9s=H8IGcs2d|lxNIj_(SGY5mSH)c6`-~}5 hc3t0_x@>+Vp?wsOMq4~c)I$ztaD0e0sw5wQ{w;t literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pea_1.png b/mods_disabled/farming/textures/farming_pea_1.png new file mode 100644 index 0000000000000000000000000000000000000000..eb48e36398e3ea6b8e30f6835c6b5f7c0c127703 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`lRRA1{1VG<8X6e%!f@h*yOYr|3#68;@M zpi$LdA#PAqm-gfQr{;(Ml^4hJ{Fl5TQ4#MP!1MD{NC-on^3Xa0194S#<8`#|fBwVf2X#I%y?$14<-^M_N%z zQncit*2c)pkJ)Tr2SdpsC-2+m^Lc-Mzu{jZYB3wNnEwq|tKlC2=Asr|?+zIc1->H+ z84m$m0RieS(iD6LqUCrJxCM?(gMJwgE#pg#lWQ4^MG|{oC&&YS?2lzU=_XuR!!&pR zEFdVC26|{bokD-sYOUY`biC;k3a&ElT%BC$J2VYOfIAw_7N}?y?1lB}Dmz~b6oG5u z%Y?~x&7djpWICf30pJq-X%tb>$aIH+U0_hgL!0jfY(O#=Nd(`_{iIwAnCK;^dUmx5 z=hG4TO9v&Ps*OB=0(w6t_)M-siA9|EpcPkDwsit!LwK);Vv&RwIIrGp`{N7WXrNu) zG@szi3-q$!(O-&%Q;uKjz%)qmQa6mFDA1Im# zBL8&)xIz9)ogc?j1gS?vI&^b)p-DVJ3n-9ihlqX(84bHOKLH=Ja}4BLvdwX}4!2kv z^@*VYX+S4eU!j{0$!unw$7kNTHdn-<<|acQLLx09(VYcwJnL25AOJSRV57|XsoQ80 z1{$NPi#7DlBqGvioGt^ef%A@M&F^#o)T&d9XSc_tn)AHqqW6;WSNeoVcHX1+N9YNu zJ{kZdFt(Fm_pw5X`y{tO3!cdJ(p98^$ZbqirxtU-C)L@@KkFi1O2ubbHjl25Yzg#G z&@S|<?vCPj<=fZreHnO1)QEI=3kbOTU)k>(H60XzjR0RupnoNfU`8vDG8Z81vLxNc51 zTl2ZRF0-2#KtlLJDnJ5oa%>{awmmA!ms)|OTyrmzJZ{38n4)sFiTQ@*Q?(~tiKR6h zu8L%GWh1Kqn}8j|b{>&4AqzDD4=Er_N!ktaE7r9}HmbIe`qG)`Vt4;$rs<6d7 zSvhkbMM7!3)*r^nR;8YlqmERCj`-P5;62dn3#lLXf8%7(8*#{KwH2v#P)aB(o%4oH%X>-}G~y6ZjDnzEx)2ma53!)=DQJWmS`R%05r?2Z zK>7 z4lXu%hrhSX6ze%?0097_t6g)(lBym?tIw=&O;S~+=1<+W3lHqXXb1otE}SwO>xawq z7Ct3KGTYH#4+S0{0YEdZI=SEexskR;K2lj$zhp7DuB?kw=c2o!`1xIM_Q_<)HA_Y7 z`+=?-T(#L2F|cMIt<~S`zLkuA`5?`c0Ga?IrK1f70Pa{a(4*7pB_$`b0AS@huQpWo z(g4Z;q)esOic}_Cs?{*p0f4j0AR3dt^egJGyh{_q9d>u7ut%K9i90LNkzU`iVz)sS zn2(r^b&pT9Utt+qzXo8cx%MQ=4VDsz3-&_+01_-?%t2Mt0FnS|03=i(SI2c8Jrp4D z2xv64nwDZL04o3yKul3&W-GKbRSZBC7Mptz=g08-N(=x1002ovPDHLkV1g?%A=&@{ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pea_pod.png b/mods_disabled/farming/textures/farming_pea_pod.png new file mode 100644 index 0000000000000000000000000000000000000000..1c19c9f6e0e51605545f7f81e013cf5c7e9e0cf8 GIT binary patch literal 597 zcmV-b0;>IqP)dH%4x604~qO#$PYiRh&OK6n(jP#no~?5p)0xtvx~B>K8Xobi#O3Z!*@ zr{qn5mbnC?aI|NxYB`yR3`CwLnRK59VZ)MYF|Q4Hv;N9&=~TG>EeIcw2BytG_$Yg| jn_VZ3;QK@Nz2y7^9Q?`98-s(A00000NkvXXu0mjf9?u(N literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pea_soup.png b/mods_disabled/farming/textures/farming_pea_soup.png new file mode 100644 index 0000000000000000000000000000000000000000..03753cf6019f891a9ed85f45e3dfec76d508818b GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWP0r5&GHasbrst~WS7|o( z>gQScP6P@umIV0)GdMiEkp|@0db&7kKTJ|%*@QdxtTGA;cm@-paKR@S3j3^P6s7!{@MQ6QjqLbL>KAxEp*e$LHKsy;cUHx3vIVCg!01PQa0{{R3 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pineapple_7.png b/mods_disabled/farming/textures/farming_pineapple_7.png new file mode 100644 index 0000000000000000000000000000000000000000..22bad23734179fbec0974e61801f43c464898048 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv{s5m4*VGbS|5%-xD7nd@3Da{` zz16PB0;L#Bg8YIR9G=}s19A#HT^vI+&hPC%$lGAR!z>(e;NC)Jg^P>e!Oq-@RtbMw4=goa)q7U5o4BjW# zD;#|q!Ya#E+#WoOqo-eUy5!+Se9}ViHDh#zKH0ou+o{MU%w19W4QMxmr>mdKI;Vst E08h?HmH+?% literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pineapple_8.png b/mods_disabled/farming/textures/farming_pineapple_8.png new file mode 100644 index 0000000000000000000000000000000000000000..5182c4f710f7d6ea733ca7c7e39fc06c7e682160 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@o&cW^*Hqnf|5%-xD7opmst-5Z zy#*9!ED7=pW^j0RBMrz&@pN$vk+__kaDY34WdV<)xJI)nLu^Ym^OS|(*-qWqD}Acs zdmoG7YuNy{`^*~67a6A>JR$Ys07n|@hFxtAOBcKoEN#&$6DZ+nwYu8MsB`QUN2s#G p3n_-rtlYcS1Cf literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pineapple_juice.png b/mods_disabled/farming/textures/farming_pineapple_juice.png new file mode 100644 index 0000000000000000000000000000000000000000..43a54c7057cb73c1538abb57cf4a6218fed69dc7 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ%`eJ5cZ&DUHNlIQFWkCw z^U1TvKYo3$ozxlvRKQpgbJxxta32j0G0tp7{nwl#m8@B9Px^!v7+a$9>HlRbQcXP+IE$86_n#JJh L>gTe~DWM4ftl2j^ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pineapple_ring.png b/mods_disabled/farming/textures/farming_pineapple_ring.png new file mode 100644 index 0000000000000000000000000000000000000000..deb2e6d0f8851c151a5b59aa3f4b1f533c1f4caf GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t_%$6=T7n7xhB{r=ky&Y z$XF8O7tG-B>_!@p&XcUf*b};8E$Tjj2zwp0n&Z literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_porridge.png b/mods_disabled/farming/textures/farming_porridge.png new file mode 100644 index 0000000000000000000000000000000000000000..cd4466fbe3ec2a6baa1290e10e9496a81c6a64c9 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aJ;=aNBPOxYl=1n+$^YN@ z{ePAE?{nwBpV9w*l}@tb(gZ4FED7=pW^j0RBMrz2@pN$v;kcfhaDclfv1Hap#+E$Z zLN+d=>M7H=@34?I;F!6ix};^7h7pI>Yzt{?X-y*ot(6j*lA4?b1{|8&nwpwSrG`wI m6Bq(Glo&*WL_`jxDKhj%@QAXW-4O>gpTX1B&t;ucLK6U$ZaQKB literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pot.png b/mods_disabled/farming/textures/farming_pot.png new file mode 100644 index 0000000000000000000000000000000000000000..d28411d28094053595258726710c0f69e554d996 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|KxS@kZck57&5rI! zAcwIe$S;_|;n|HeAjiei#W95AdU66o^MwF5wrgMiGf6D@_P_p+!q@-*#n~?Y|L-jE z#L0QO!HNITtSbNhJFDIJ|9=*PN}O*(!k_)87?T({7#I#H%T2fZ&i4ms9)qW=pUXO@ GgeCyvkT-V# literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_potato.png b/mods_disabled/farming/textures/farming_potato.png new file mode 100644 index 0000000000000000000000000000000000000000..6e91d6ae8949445d7edba0c3cc8c5f542e93b011 GIT binary patch literal 252 zcmVOT3}^k{ zY@qj3^!${6!l?p2iXCp(TFw{nOg~_7P+p|k`JU7U1VdMGwZ@ri4C4A f`Yxd@-h2#9D@^8Jt}t~38q476>gTe~DWM4f8{R9! literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_potato_2.png b/mods_disabled/farming/textures/farming_potato_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c81830c40bcf17038f5b7e927a2779f9a63f2e6a GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`O`a}}Ar-fh6C_xjIo4Dx`!YYp z_x66Nf9_@rekw5MIWLPB{nLN$xLVs~h6yiSr4`H?ZW!F2klT8)nTKg7$IaFP0kc-d zqbm)X6D8JbPssI(<1l17^6k}u64to02GbR!o8HCFVLM>b$a5f7+b>+fTftg7mTx)Z liEX#8FVbq-$upOi;n>^MqwF@kM}e+k@O1TaS?83{1OWb|L(~8O literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_potato_3.png b/mods_disabled/farming/textures/farming_potato_3.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d7920918e958a2283b9ded3ed89b32830827b3 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`TRdGHLn>}1CoEvU@$c#f`$(zf z@uDo*F&}+8ZI~UTX7d~UQO{toQ*Vl4EavpPzCgNR4abt58O(?4Qw}?&gskyLHuiU!j^1z1-hTX)78&qol`;+05CpP;{X5v literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_potato_4.png b/mods_disabled/farming/textures/farming_potato_4.png new file mode 100644 index 0000000000000000000000000000000000000000..405b7e56d71be2991d1330f58325f12b9c0934ec GIT binary patch literal 283 zcmV+$0p$LPP)^*=N$PMhRY&?KqZD*Oz+Df!n6hu335TY1d8DWxrzX*a0VfVeA znVq*0`DeVeQsh<9)1Szf>sgVPx9)d=@?L06WU`i8fR2KARuA3oHj3=`=KGG~0~wg8 z2;OKNSj!-fa;Y8Q3|A7H#2Nse35JNh3!M0>oJ1gM>m+!NFF^9~bok_K(FjBriY5Ud zQxHJ*AVPQ8Q}p)^XW}f0)^Tt5&>D6c>cO-Tw9iPA>BNe(E!+u`Ads4xbYUCTw%egi=o^~tu%ABX?|002ovPDHLkV1lGBd`18O literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_potato_salad.png b/mods_disabled/farming/textures/farming_potato_salad.png new file mode 100644 index 0000000000000000000000000000000000000000..0028c91e3f7a0d2864df3f289eb48816a25e636f GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvl>na*S0F7T%4emk>}jE{oT8i& zXkcDoUYBIqool|R&g=HIYyUrds6Ki@3#g8{( zh_nUoZ3w-STg~`(aY%`--d!mtmiz^?1@2wA=s0JtQCD{wA7AZsW8ZE$$NxV6k57Nn zYVgfpvg!1n+lijfR<8f>G9ozhjPv)Dj;;*nqj8VUG~3*cELy$u^I~zo%eQVZ3(j=C zr_~(%!feVm3zO|NSDJK9j!pZbHQV!P)yQO0nWgWJ_XxT@@Fj=8O6( z*S~d9S`_5uAX6ofA|%Rn?sCPIUMn#nS8bQS(M?A}`Q#fn8ZdS|{@2p?t3e3veDNJsEn~B$S;_|;n|HeAjinl#W95AdUC=7#)QHKqZzXmrwBLi zWb8=1v?M``A&FzRre%|>gzuE2a}IV*acSX|lwj!8Wmy^d*kvbBH-o3EpUXO@geCyk C%q)Qb literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_2.png b/mods_disabled/farming/textures/farming_pumpkin_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d977e8c22021375b2d19f1e0fdba16ba159bfbe7 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeXWe{W#HDplmV$cs`(vRn{ zC{lK9mPl^o&+OvsUZxymd_xnclCdPnFPOpM*^M+H$Ia8lF@)oKa>4?;gu^%3F>n9? literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_3.png b/mods_disabled/farming/textures/farming_pumpkin_3.png new file mode 100644 index 0000000000000000000000000000000000000000..83f81905173ce0e5c5e113435a0e758b0280416b GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeXWl&@gHDplmV$cs`(vRn{ zC{lK9mPl^o&+OvsUZ%_>?U@c#$ygHP7tG-B>_!@p6YlBa7{YNqIbi{Vfn@Uu0d}^t z0&LS5u1RY81ba)wEYHx|xpFtV;SLuq!yPM^SQ+ftCAPDLa}~qYc9v8%BU8q&7Mjym rb!jw}tmZasTW!f8spY5>Eb7hBlgzKH?>b=~&Ea`*IyjKSvyt?&7$Sjt1 zg`J9q^~6lUfd0uzt5d2D~Dc#Ol8eSv1V+QytvmaO}ND_6-XPCE2J@X^C3w=|Y9 ZFf3jx5kBXP&J>`n44$rjF6*2UngA7SP2B(h literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_5.png b/mods_disabled/farming/textures/farming_pumpkin_5.png new file mode 100644 index 0000000000000000000000000000000000000000..59fa78eb0ebc9e5d8dc3b6989e3eeb22cb31eaec GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUZEWQfHDplmV$cs`(vRn{ zC{lK9mbje2l-$UFDw`p*i|>CiWA`%Ux6>K^Z(;aEpoGJUMCgst%iBYSoiThlDXj%CUQ)lD;i+8IlN{DK)Ap4~_T za+*9{977~7_x1&fF$HosU6o9GvGnP`aOr(f4*woDa;N>j|1fRGy7^H{?AM%@4FZlj*U%tHD7ss+=p9Sqg-4sN=MbFGNbZ3n@HQCr> zqVb&@-sfVYXD=6YjJ$I8?Bu>9TMW$jFSee&a_r$k235P@Tdc})w{qqHUBlq%>gTe~ HDWM4fdKz5H literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_7.png b/mods_disabled/farming/textures/farming_pumpkin_7.png new file mode 100644 index 0000000000000000000000000000000000000000..79190e09ec135158eee1ff6ccff404b3c09eed69 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5oCwkx;TbNTrTaqEyS$I;T)T^NHpy4|Mj|Mzpu>vbYQ|^)hVCM&(t~iHbw0(RbML= zmah3Gt@h`Gi|4L%M=-F@xfeKtWy7R~$2Swo1IjP6&g=HLl(*IF>4wKnd!{A5+gUm{ zeO2c63q7``KVG~!Hj}e9$8>Ya&pUN)FS=&PPvAV>%2j@Hzg29TicRNJ-V9yVJMnV@ RI)ScY@O1TaS?83{1OR`rVs`)l literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_8.png b/mods_disabled/farming/textures/farming_pumpkin_8.png new file mode 100644 index 0000000000000000000000000000000000000000..b941442cc236ebf2b29362ba98433dd05c6f9a0e GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5oCn*+_C z`i?bO?9oT2zJA@Z_tzc=+bvnTM?Hg^x>{FESN3CEJB^3;d&QSkaX!YTv5T@7-nA%Y VQ{5#yV>i%c44$rjF6*2UngHtQU9$iH literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_bread.png b/mods_disabled/farming/textures/farming_pumpkin_bread.png new file mode 100644 index 0000000000000000000000000000000000000000..0dfae08fd83a2c6ee7a88c67adaceb5f2882215f GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=5pT85V>v?8;?1-@tu$ zisZX(_P0(nyg8fu>ewF_r}R1v5B2yO9RugnGI-hHzX@PHam-GLS`c)I$ztaD0e0stQ@K=%Lu literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_dough.png b/mods_disabled/farming/textures/farming_pumpkin_dough.png new file mode 100644 index 0000000000000000000000000000000000000000..62ea7a65ffadc1aac24e9c9fde35a25130509537 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aRbXIvzcu3H!Gcd`y1!gn z{PpUluQ&F6yM6lm{R_f6o7#cO7)yfuf*Bm1-ADs+LOfj@LpZJ{Cmdj(5gW^UprpcM z7iWjyyn7QbzB_Q>fK*^$T%6pq0|`O5xKg$*Gn%o?ZHxPs>1@U`mbC3!w%c0TNMiSn p9ZRgNcN-XJNJ?upt zSecodDm-G9dCc&sLW*P8$K|^|vZx;B)p5&rIM643&|^cT=HE-lU3U7d+N8Qo$gA|H zSY+K|r~8&C8lHFdC)`~uTT$6DEzw7rGke+e$Nzk67JE&qcKy=Pbo7tZqv^5tx92-X zyg1_Ay8ag1O#d+oNvf3iChV#LI+4NC)z4*} HQ$iB}bbn|M literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_face_on.png b/mods_disabled/farming/textures/farming_pumpkin_face_on.png new file mode 100644 index 0000000000000000000000000000000000000000..fa71c9d474c140e8b123c3da04fe468ad6d2846f GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF4e$wZZ3$?r(G2H0m{6C-J(F)E-+c>|UVfcU7{{PEnvHLM=ff{Ffx;Tb#TxXoXkpG{7 zFZ;nkr+4;FRNM&)qp<%wXz! z_TGcLcbpl_&c2n)cnD+&$;vUOEe=y;U`|#uOKLU(`c2TtSXo$*VNJ5p$41TVzktqU N@O1TaS?83{1OVymUPS-^ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_side.png b/mods_disabled/farming/textures/farming_pumpkin_side.png new file mode 100644 index 0000000000000000000000000000000000000000..2d30f203570c434bdb20c0deaa49834c4a2ff3a4 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aZ3$KDxKFNRRa>P%mRikY6x^!?PP{ zK#rHEi(?4K_2h&D+!4(p3R^BsQZP`y6MLFlXUV1~=R4UZ_;}Vnd&B9#Hu>_&+U<@! z$7WUP8#{VQ*yi1Dkx<@f&Uh$c9 A`Tzg` literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_pumpkin_top.png b/mods_disabled/farming/textures/farming_pumpkin_top.png new file mode 100644 index 0000000000000000000000000000000000000000..79283454ef1f0d5ab418e9c6366b49a5783c1579 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU`;dA-N*M-pFDn@;q;uFcjnxzz0I)a=A7GmZ~ooGP&xPHHo@vWL{YYc}}S{MaAoXQ!pi&F}1CrGevVRa8t`9J@1 z@IU`)$7WBf`tN9RvhB?@u^;;*XE3i3bUAEr!l7wac(HMVX%o-Pg9jRt1bk$cKU3A= zNnllIRXD3)cfw&p+6;>`3TxO7h%~+6TfnGL-^|k}$x_UC?L&hmgXX;B3 zV_4a^lcUAZNp^|EGKQOBDbpK|JagRJ{*Y+`(+oueUIQsHyAwHU5*aS_$jv=bGh_9N eX+e%+3=F%)R;U`^(L4!sID@CFpUXO@geCwLQB*h@_o(N*kEDlq_MDpfx^<_@_uNhOZC!QT2eMpOHmS^?`&TPXZ(4@sY%cA zl0Ne_9U^u^NIGpFGEo8&0@ojGm;88dLFHYfOeTPFrK;OW-U$p&5#YGGh@MlB^Cmfb zWPd}r$K`-w?vG&d7cJ`L!QKv;LafsNG$q1uSqDGCEqex*5DA=q}lDyOs9=l?9XkQhdkU? zdA_gnC*U(5xxYq^mnc9Hh={sk^>o1k?oN@typvRADj-)A^*RU@C?k)O65!6x8m>ZQ z%K4CDF4_M8w$t0Gaoj2sR}(q@zBeSTvO3K#t7hf60d-Vp|FQ~fYG49Q0!V>s?P^~) hprJiz53o6Y;uowDqLJPOy4wH%002ovPDHLkV1k`AU_Af; literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_raspberry_4.png b/mods_disabled/farming/textures/farming_raspberry_4.png new file mode 100644 index 0000000000000000000000000000000000000000..32da6b9fb11cb9c6a88566d4b66c4cc1ea7a235f GIT binary patch literal 239 zcmV~)tMMF*!<2lGZ|Ke{5Ga~VrqiGIUOT1y?KgH` zE#s@k{yLBSFpJY|5g#+|E+w|-68HcBWNreOCDPa(%Y>1*AXrsKLb)(zH%7bv6%0#`N>tf{-75Ee|)Ii;1}dZx_t`&rzI{0vRj< p5C!Dg(MAe#Q@ha2uB{L6_XBqktmj>mMT`Id002ovPDHLkV1g?AU84X1 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_raspberry_smoothie.png b/mods_disabled/farming/textures/farming_raspberry_smoothie.png new file mode 100644 index 0000000000000000000000000000000000000000..fe178d114214e7f35ed7bf02d40ddf466237088e GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5qYGz*J)c6Q6`?KeBS z%=Px!;o<31CU7t&?oetlF4stYMu@ilNf4KUKTW%b%HA czx*cqoJQtdn-4@818rmQboFyt=akR{0OU1RPyhe` literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rhubarb.png b/mods_disabled/farming/textures/farming_rhubarb.png new file mode 100644 index 0000000000000000000000000000000000000000..7d416ab21b752b0d4c59c01e5abf428d1d072db1 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aRbXI~gZa+;6dc z_CeQcbLKwSwEpe+vjMHf=Yh%?OM?7@862M7NCR>#JY5_^IIbrrD6lv!Fj>tpWg&-X zqF7mj!6XsIpd7Db3l$Xmo@`+en7{ZY&!PoqdCsIKtj|zLk!F}B#dg-tebFSK84RAT KelF{r5}E+AIyGtl literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rhubarb_1.png b/mods_disabled/farming/textures/farming_rhubarb_1.png new file mode 100644 index 0000000000000000000000000000000000000000..01585b1bee3fcf44ad3e39e1cd562728576e0616 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t{=BCWF7Q;bN+muf!bc6 zAY)08UoeBivm0qZj*O>^V+hCf&XcU{2MGR4Gb(9B>i->`1G_C6y4awT*U;M vC3_rrm^GRYHXM{VX3$_X;~@{53LC>^S?05Qc*Pe1jbQL}^>bP0l+XkK&Zs9( literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rhubarb_3.png b/mods_disabled/farming/textures/farming_rhubarb_3.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_disabled/farming/textures/farming_rhubarb_pie.png b/mods_disabled/farming/textures/farming_rhubarb_pie.png new file mode 100644 index 0000000000000000000000000000000000000000..1f77b535cc6a30729099d3ba2f1cbe7f2c8bdf08 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aElDk2Y;Be0Z@k&rWuvF} z?!ch>6rZmA@M+b_%Y#h|fyx+5g8YIR9G=}s19BogT^vI=t|uoPV83ztH1~m$jT<*w zbg(XI)LFpLVP>Y2@Ib)KjF;CmFX2IkNtvh!537+CQ!g_stF*)nBP**W5msRdi7QrC rQZp_!+?sjCN=iY^SW`1$t02SnRKb}pI-9NnEn)C<^>bP0l+XkKFLyjV literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rice.png b/mods_disabled/farming/textures/farming_rice.png new file mode 100644 index 0000000000000000000000000000000000000000..3d64c7e25533bf3c6770a941d11118929696800d GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}MSxF;E0A8YWXYN}Yqo6JvTfV8 zJ$v@-+qdt~p+iTG965RNC@-W zpTBgTe~DWM4f DHO-t! literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rice_1.png b/mods_disabled/farming/textures/farming_rice_1.png new file mode 100644 index 0000000000000000000000000000000000000000..715bb2e6a5b9cfa17e24ca242018d4c9a7b36db9 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`mYyz-Ar_~T6C_v{Cy4L_32bnE zYH#?eB%Sk5dIAt60r3fo6qf5pPM_@zHZ-~&<=oi_1dI$p)4A5p;+$#?G=#y^)z4*} HQ$iB}qR1kn literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rice_2.png b/mods_disabled/farming/textures/farming_rice_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2662d42bc7f57b4d6b23803fecd613eb2b276c41 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ1=6;?qG5~G<5uZpZ#6C6 zWi{o3Uu{RqTc8AENswPKgTu2MX+VyKr;B30O22WQ%mvv4FO#p+1DmVZD literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rice_3.png b/mods_disabled/farming/textures/farming_rice_3.png new file mode 100644 index 0000000000000000000000000000000000000000..fee87b216a05185646167dd51a675297d624695d GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=2~Ab*opp*01yE+Z8r# zU(D)r6{|1g9AV2i43uLm3GxeOaCmkj4ajl!ba4#fkWEflU}wM}sd?bQsRsuRoKO%r zaDXpmg8>Hv=QIY^vbF{$HgPdl=4lMzopr0CX@i)c^nh literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rice_4.png b/mods_disabled/farming/textures/farming_rice_4.png new file mode 100644 index 0000000000000000000000000000000000000000..97b026f6c2be918dcd3b5441a69023e349a43e4c GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=6W=O!DVhRIGDp-5A)t zHFU3 zU(Jv+>p=ZfN4JIk1}}oQH1sZsnUyeozX%(v)YJtRguWlhIGC%cF0XfaL(jSFV7bDA iu$A7{vorOQ*U4AQ^SXRrJKYv&FoUP7pUXO@geCxA%|e&} literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rice_5.png b/mods_disabled/farming/textures/farming_rice_5.png new file mode 100644 index 0000000000000000000000000000000000000000..c249851ccc34cfe343b1c8de79474da095050ba3 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv5AX?b1=5lI_OVkPllz@Br?}-V z_Agl;TD?5FepN!>w!F!^ibP0l+XkKve-^a literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rice_6.png b/mods_disabled/farming/textures/farming_rice_6.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e7233a5d923b7691fdb37ed78fe9af60faa358 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!S%6Q7E09i@V3R)CzHo_8`Rc&N z6;Ung;`(-FO*j}nac}yhB@L5z$@0_;o@YF3wmh8^t6$a{LED7=p zW^j0RBMr#O^>lFzk&s+_u(Pp6L4TJ`-g6we6`atLYmEgT#nj44Lj2zsJVKIm!|1g#i!Sd?%bNBwsech($eQo r^{)2Et&)$;ud;UEe=hCI>i>*BibP0l+XkK1Rr7K literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rice_7.png b/mods_disabled/farming/textures/farming_rice_7.png new file mode 100644 index 0000000000000000000000000000000000000000..9d251ee264a45fdd9a70ea58e3b514f85d9991e0 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Wq?nJE0B(#=a9I-DSy3x;R=_E zjgc*z6WeyAbR8`0I-WV{P|@@gWz#Pg@4dR}=-ut7AMCyO^w6#MXKsHzt-N9HA)sc) zk|4ie28U-i(tw;QPZ!4!iSX9$i$aGKcv#F`7qD!3^}l{i`PG-Jc{Uf{^nUPucYK9Z zf3d~mt3DpjXS?(2+)Py literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rice_8.png b/mods_disabled/farming/textures/farming_rice_8.png new file mode 100644 index 0000000000000000000000000000000000000000..41b37e03c11d74c7eb2d1ad0a43de0f9bcf54e77 GIT binary patch literal 336 zcmV-W0k8gvP)^zaIHgdu10mTOnIYQdZtQxr%!sg zP<*;TgRftMvtNX;WQ4#}hp%If$Y{aA!NbGD#l^+a($dq@)7IA3+}zyY;NZ^_uJQl? z00DGTPE!Ct=GbNc005XtL_t&-S1pVS5`r)cM4uF;6bM*RK>Tt4OS)m`blz-sH{pfe zj<4el>mhej0~^?(SF%LG(>ymfgw3$*s|Cu7jh~F#uh^!%HkJZgsMRofE=F#d8X7)x zD>i2?9l7DoDR<5XbHzL`5T?o*Nh7_CSjO8sxVgExy1Kf%ySu%;y}rJ_zrVl0z`()5!NS7A!^6YG#KgtL z#m2_Q$H&LW$jHjd%FD~k%*@Qq&CSrz(9_e?)z#J3*4Ee8*Vx$D-rnBg;^O4wgww2>+9_7?CtIC?(XjI@9*&N@bdEV^Yioc^z`-h_4fAm_xJbt z`T6_%`~Lp^|NsAY&-5Yy0004WQchC*o2$l2&4Hz1J#F mUwv8h9e%WG-+7};jPn7f1`M8hjRAuI0000)6~?|*x1%+;=;-L_>FMg~>g((4?Ck9B?(XpL z@bU5S^78WY^Yird^!4@i_V)Jo_xJet`1$$y`uh6({QUj>{r>*`|Ns9r+$stH0004W zQchCo6b8`8dnA!^QF8zPuQX=nv&}j9)!b^lq$Q0M z@rdLMY3pz+oaZ@itL$-6!3MUpbT-3f*hxt?eqoQ38z;paA~#0hl(4Mwx)nxj_~Zaz W*9DoK%SUqn0000l$(7{U>qoN$1N@36!>9-ie2I(}^L zIUTYX1&l-u3jJ~Fo#LDhXVx^#;4~EA5;IU> YW{|qV_2;$c2Q`rCp00i_>zopr0I;S>i2wiq literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rose_water.png b/mods_disabled/farming/textures/farming_rose_water.png new file mode 100644 index 0000000000000000000000000000000000000000..96e546f2a5f90a0c1398b5eeac388a39f84af236 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv5AX?b1=1b4u`?TUS8qLWcJ;}v zThDCSbN1lDD|?SzzPab>u`@T$U%r3o`ojsk5>Eh?GL{7S1v5B2yO9RuSbDlRhHzX@ zPEg=8;B?67ySiN5A)n+a literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rye.png b/mods_disabled/farming/textures/farming_rye.png new file mode 100644 index 0000000000000000000000000000000000000000..ebc5b3795d94b2a8b2ab13316e362c700fee6393 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Q-Dv1E0A8hAbaiFl^Yi4ZCqNs zWmV1g6^T37r0-mtyK`gbu3g*qY_8b5rFH-I?n684j_qwazJKzWBRv-`oV#>-$<=dn zpFe-vHo5Ew&=kg!AirP+hi5m^fSfo_7sn6@$)yJagzopr0Oa0f`Tzg` literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rye_1.png b/mods_disabled/farming/textures/farming_rye_1.png new file mode 100644 index 0000000000000000000000000000000000000000..932b6212a4d9232e8c6206029a74976bd5fe7bc7 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`mYyz-Ar_~T6C_v{Cy4L_U8q)g zU~l;9Q@Pat^aLPC0^%9v3e4*|Cp$7MPfFQlw_B4L1Q@Oh^L%S_pJ5F&gu&C*&t;uc GLK6Ukl_1an literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rye_2.png b/mods_disabled/farming/textures/farming_rye_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b6a69b7026dd08788e09fef98dc2dc57c3a6759d GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ1=8{B&C7Q9)$I)L+Lbn8 zckc3&^}N4TRs$s%OM?7@862M7NCR>-JY5_^IAoI(7HAtV+*CVo;M9Wy2Tmvm95}$1 mvcZ6ZfpZ!It65tE3xnb^ruBLs{LcdQFnGH9xvXox1bv+$nOm+<|h8B|(0{3=Yq3qyah3o-U3d9J0v?3+xOSBsC8lIQ8JbffEV> z2M(~MY%t(p;GD+5YSz}k!X_@p$~=vMU9`<;8WXD-JG(HOdKfFKC@ZTe!;-0NS2D#G R`vZ+*@O1TaS?83{1ONq)G1UM7 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rye_4.png b/mods_disabled/farming/textures/farming_rye_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ea1246eff5cda20eadde4180ed3e9801b2f11444 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=39$qPjOEOx{v7drRGd z?TxDr_HH;janJeL`!6g}(Qvo|RKZvh|zL-q3R{J6Nu; jAZ(?#_3TW&gTe~DWM4fM$kk* literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rye_5.png b/mods_disabled/farming/textures/farming_rye_5.png new file mode 100644 index 0000000000000000000000000000000000000000..b359673cd85630541a06c28b1d09f0a35f365eee GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv5AX?b1=5`><9pYnOk9~fbydcU z4P|pT)hyW9xMWMq`h62NADnvd?EJ$QR%E1ZS^`wcSQ6wH%;50sMjDWl;OXKR!XZ2N z;6lL`0}W#(g zwp4A{*tmIH%bo*$`}R#ZaH!|dp(%$CHCF9sod8tISQ6wH%;50sMjDV);_2cT!XcZS zpui+yU|?(@Vz9x`fYDPSxUq3|BGZJ$8yXwi)0vFbn-8(H&7C7HR3TwDCvC>bnE?lO zCOWAdmO97EX(Ox_V&wDK&*OxT$BD#(=ROe%ksBOlB`T#mH7#*y;&5gOck1F2Ftpgz gF>MRilr0Pl+k+&(S}gf~4ro7vr>mdKI;Vst0HFy~m;e9( literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_rye_7.png b/mods_disabled/farming/textures/farming_rye_7.png new file mode 100644 index 0000000000000000000000000000000000000000..fc78198cd4a986b7f759ae3b45d555f78bf4b4b0 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF3h)VW1=7p6B`n{Tv~E|~rrot$ zcBb##+r0Zw+rE<%_aEsxe75_@sR<{}O*wac@_IAfr$E(=B|(0{3=Yq3qyafio-U3d z9J0Cx7xEr*kZ61OeP2)%%Sn4CW&;;?hbxl>ZY+>$cPm)8O}b!FMA7R9dZsLw4}YmV z;-qsWs40D^c=@TmX00-Z+b451uTS_g@2$qJy+X}r4Q)*>s;K%%i(9rDyquQVWa=NQ zXmn)#FQ35etuH@IzZH6;^L*3S8R6%qu0MNQUb$NJcc9q3??Bfuc)I$ztaD0e0sv?a BYfb(|n zb+f2jv#DdVs&}-eR<^5hxvposrB}eQYRJBPK12)K00001bW%=J06^y0W&i*HkV!;A zR2Ww+i~$mZAP@t$fK@44#jB{;2+U5B3rCO6g|}md=Pj>Lh6Z-)ryC;Cd~O~H z&9LTQqnBgD6wJOwu`wHG#LlZ>jC4lZIRZckM{Riq$7PCVk$XXUkmv>*wk3g;mX+5{K>f{`QJ`kbATEoBg%|#gnZ6 z7e2W3wf#Q`%+I(To^Sh6Ui`o_qdkcQKaVMk%*xO|VDcjC#KH?ItV%{ZO8!2qk7+#7 vp)c!klGE5=vw>mF&tJ0HS}6$$2@DLce%Hk2XUz5hdWFH$)z4*}Q$iB}mYH+= literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_saucepan.png b/mods_disabled/farming/textures/farming_saucepan.png new file mode 100644 index 0000000000000000000000000000000000000000..2625d45dad741d9ba0c1c39ca0356d707829546a GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uBp1|KxS@kZck57&5rI! zAcwIe$S;_|;n|HeAjikk#W95Ada^(wLz9<);&TR-8|n<4$J7<-GBlW(U;p~g$P@JY ze|_SFU;HXA|NrwRPT=N^J*4nI|Edt%xBvgu7&_yHB_#guFJgGjz`*riQhAk~9LN#| MPgg&ebxsLQ0QihFDgXcg literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_scythe_mithril.png b/mods_disabled/farming/textures/farming_scythe_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..17c89c5a38cef3c7af0c5c4cb2449c507c1c0063 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ%`eKeQV~#AZVR-Ov9URw z<0;(McE46j{x47gV@Z%-FoVOh8)-m}tEY=&2*>s0goJ>gpd<#yWm`mdKI;Vst0Nk1~bN~PV literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_skillet.png b/mods_disabled/farming/textures/farming_skillet.png new file mode 100644 index 0000000000000000000000000000000000000000..60d26a1ec92c192c512338d079ecf436f1be1259 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bO)b#{GHasba&vQgdU~Q& zJ(GZZ#*!evUff#G5TSK0Q2R(GJW N44$rjF6*2UngFRnFjoKo literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_soil.png b/mods_disabled/farming/textures/farming_soil.png new file mode 100644 index 0000000000000000000000000000000000000000..5cd3e681c4c3f74943026d67941e1f03a75d8cbe GIT binary patch literal 706 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47&QZYLR^7dkPrg{3z!5FY%qoj zACm|hg9HZyCj$c$SkOyP!ck4oMO)lOT~vaZK}(25f|bEaRhXZV0f>MaIl#*FCAl<2 z*jzM4Ty?~h`4}A)c{PPt?KMP{c^Kt*n1q=bRCrk=xEU0986`OxWVslmco^k*nT44c z#Mwdm`4||0?gk==lYqvmax=(sFz88e+o=nSF))N!Dw)c0i7+sj$_sdC3VG;?gI%2B*-tAL5ssp zg-ugQ=JU=uj`9Nk{{8*_^zOAo%NAzE^8Wkr>FulM&mKK`aOcLA%jZt--?L|7TSI-Y zt)cF}e?Ncx`2PLeVafjvYCCXwRlio7S(M+S^r<9N}ZCe)ikpO+brY zd%8G=NL=n)e-CV|fjjVi!YBt~8j4oBq$NwtYo?c(at-|KQ;Z)*ex=iq0{<>owioXsq z1ik!ouD*J@sM%aW-=!Po+i&^w^w-O$1utxSnvFerlGdfq=U>%&>050@iqkdj*>7K8 zJlePNw(E6UM$dR}myBgQQ(tAd;k@w1$+=w<)GdgYQ#>vo>l>7bDJ MboFyt=akR{09AqB)&Kwi literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_soil_wet.png b/mods_disabled/farming/textures/farming_soil_wet.png new file mode 100644 index 0000000000000000000000000000000000000000..0b4487d8a2460c3d06a49560ca5c5905fba69f30 GIT binary patch literal 677 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47zG1-LR^7dWWa>P5ny3}a5aQk zlzAD&I2c(N7(8_)M41?z)kK^$g=k&_1z9AS7;Myp6}cH@xEVEsScI4u6nU5>SQz9v8BG<0gupt1 zRs)eLH-jt(gNgvFtqQNLnozKXqA&x4u^hh=Ka(O4g9sx-u(`aRB&P;HqZAW^hk>lM zs-U?nueJzhxSgh{s(_IUzpav(z67Tv50eNVv$>LpFgt@N2LlHK13xPxC@dJEPBoO| zc2*a*m*WYkKbr#-k0=T93--^>2ncORO^Q697xMSp<(hy0etmua=>DBkhxYAWKC!1L z=-=Nzzu&!k`}+0E7tfzOzItWP>gkpLfP%k%e);tA!@F0{pFey2=+VQwH*Q?Jc>dJU z1KT#NTRwkg+w`@aM}T&`_H=O!k+^Jn*0t!cgNWZBPMTc0`OG>O8!?2L;U3OjqcUv+ABv;?~9#d{o(b^nay(07R%SGXNIn&nK znOvFwJ}Nf1EPC0^J6hQZUuDye%goDK+%3E|dFq1YmQz){p2r*YUS{8(#M)%2n9=H@ zmn6v&AfenM{N*640LzLG3TIy2d9bs`we7(TyUla%{dlG4ndTo^!uzW1_O!k{@#e$l z;x^diH(34tvgh~rmvwuu<@&2lSCIU~ZJK2JzAAqFsmt5n?&*{zmPJ9FmS}fu#KGe9b zh&FwWw2Y$OMdVUMIF@m12GebmTEioW4{YNWPoFE0>6BHO&ws73ECr`lAXM;oHJqx6 zu#HoyPma0#p~-fma{BcbC`A)pTOyn_g`yH9D^A)~j?c@4i-3! zNHY|BgOrEpRT;aa!S;ZZ>-a;3B2RG4F~LkhYy(=|C5zb_fn+jzSboK&?-};%l-eE! z3H$Ms$%Bu$c`wmwyA0oN=v{QMYjr-{q^!e?e?FFxr9PM6t~l&`TD2HmU1D~?k4>B- z6_KuE7PB261`g~KiZDcTJc=Y@@vx*-H>i3QHp_%odri0+^5QHbo&=no+X&aK5Dfms zamxg=CBf7o+wBqJIm2O0p&j`9_Z-{SNz^LE+GCj-Pz6 zcb{OZ2+sD9t2So3MNvyECnJ{03Q_O&$PO-!J>&M)!j#+W_Ei>fh3TWo%C~vac*@2v zGnqHJ`_JRq%O=Gpq2nru!L^EPJ~HZ0DD;F)G-f&zM0=l`KQ`n{(6R;b-oPK;a@>d* z+)2nKm1@^U1X+YGA937!O)wavOA(5^B?~j0&JIlpDH=9!-rSQ$GSwrKq)0ew&baTZ z2um2O*K0bLHCheOJcC14LsANww!@d-T@ej7l=Xlory*9Q$2RCwv7RCFkpBT>mv7$x S>1I#>0000Pe zeZA1VcPHQAED$AQ2w~`pNxahN(fDZ4WdpOXv-F e^rZ288RH{US@DO#ldc2JXYh3Ob6Mw<&;$VgN=P06 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_toast.png b/mods_disabled/farming/textures/farming_toast.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4524e256f465beaba5defb1449054afd7be319 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bO)b#{GTZ&cS0>9HYV&1U zV)+5cXDkWw3ubV5b|VeQvGa6s4B@z*oWQ{3=*VUu5Mm_Oa7nMvVV0mrv!v50Jv}`I zO+{hx6&yVWSM=yPH9X`nW%n^QnB|bMU}=IBgLgcC#q9Myfk2ZOJYD@<);T3K0RRP= BD*^xj literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_toast_sandwich.png b/mods_disabled/farming/textures/farming_toast_sandwich.png new file mode 100644 index 0000000000000000000000000000000000000000..c60ff5a77dd1968d2d588c2f37c6ee1470c22fa7 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ%`eIYGTZ&c7sbh}OqQEj z9`@qG&gfec{s2W8OM?7@862M7NCR>_JY5_^IIbrrG%z~~FkI@%R8Tl@K%wcBhf7+E z<5QQ|g*=MkD`XZINlXz;k>X-$X<_UM+%E3W24dqz6m}n7$&U^U|`s2D*4?= Sfb$E`Oa@O^KbLh*2~7a)zcokz literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tomato.png b/mods_disabled/farming/textures/farming_tomato.png new file mode 100644 index 0000000000000000000000000000000000000000..586aa56de584ab5f8b9eeb101b430fb075f9c9f9 GIT binary patch literal 488 zcmVP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv00043NklJ3R~Lh!4Iq!i`I%-K~U7Y=v|*PZ?k0!N_!Cu3@^!>nM|^4%>NrJiF7Lj_KN{c3WHmhurOFJ z8&t8_1)&c2W8D1;^E-!oTxo#$rHj4?(-uI@@CvI~WFYK7+`?5(QM(R(?Dv2U)<>xO z5Z3`}M!p0cX+ZEjx*<#yx%d!hV4elx=;>vbs_&uc$(A!J3^R%~wkK!lvI6;>1s;*b z3=DiLK$uZE^yx&PAbW|YuPgg)E*W+$v8qKk&45BuC9V-A!TD(=<%vb93;~Imc_n&& zt|1C##(JiDhKBB+oy>u%EIeHtLoEE0B^(dzi<`%KO6H8iz4$nWQ!=cF*_Y^U`ahrX wNPu3YLT=;T|4$;zo=8vHc0sP6k%xyNK#QN#bJ3nxKr!lvI6;>1s;*b z3=DiLK$uZE^yx&PAbW|YuPgg)E*W+$v8qKk&45BuC9V-A!TD(=<%vb93;~Imc_n&& zt|1C##(JiDhKBB+oy>u%JUm?-LoEE0B^(dzi<`%KO6H8iz4$nWQ!=bq*d)8({CA$Y zr14Vfy8o9?T;*X>IGb{tkLhLi+yBdTH~gM&bGnZyTxZMiWCmtthWm~Zc9Xt@hyu-I N@O1TaS?83{1OSgGMg{-? literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tomato_3.png b/mods_disabled/farming/textures/farming_tomato_3.png new file mode 100644 index 0000000000000000000000000000000000000000..fe3dcf0a1302c0353d2e64930465cb80214af8a4 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DiLK$uZE^yx&PAbW|YuPgg)E*W+$v8qKk&45BuC9V-A!TD(=<%vb93;~Imc_n&& zt|1C##(JiDhKBB+oy>u%l0973YF9D)@w|z zxUlE4_!>>t6_&{p|Nh_7`fZ71(5^FI?N3ZFS@7(OYswA=7Kd4m+njeUY5sE5VY&W> q-~M3|4G#ZL3T(JvD1G1n14E~g#?M+?^V>k{7(8A5T-G@yGywoVyHw}^ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tomato_4.png b/mods_disabled/farming/textures/farming_tomato_4.png new file mode 100644 index 0000000000000000000000000000000000000000..27c32828dce42efbb2933fbf355752f46dc0335f GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DiLK$uZE^yx&PAbW|YuPgg)E*W+$v8qKk&45BuC9V-A!TD(=<%vb93;~Imc_n&& zt|1C##(JiDhKBB+oy>u%$~;{hLoEE0B^(dzi<`%KO6H8iz4$nWQ%m?fqBFkBpHh)k zIlt*Q|DgcA%mtOp^?%NCWJqD)aNe14-C^bt<{6Bd4re91-~3;$yG8x%giERG62g}- znl9H@I?Sq&-fYsG)6O-K?~*w4+zopr09PwkEC2ui literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tomato_5.png b/mods_disabled/farming/textures/farming_tomato_5.png new file mode 100644 index 0000000000000000000000000000000000000000..f369a68f4f864f7868965b3c05bfb649abb69e2b GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DiLK$uZE^yx&PAbW|YuPgg)E*W+$v8qKk&45BuC9V-A!TD(=<%vb93;~Imc_n&& zt|1C##(JiDhKBB+oy>u%R(iTPhFJI~OE@0b7dMaf)DiwaQNI72XBIFB9aigOoD(Iw zb9VW!MH(tm#vCVppXQ#TSNxaXn8l^}$3fvU9mWi74zms|oAsZ6W(wCf+ng@TOtuy# z)5%XtQUs!szuPb14lQ=ruKAIz^7+jF?2=5}?3-elj1TPR6=6&J@2oa!Vw!-CnNtI! zgjFk#ctZ|1<1L>e9);!$E7J~`Fm!sY5XfBcKZS#Fzp()WgX{d%rxFTE1wcnLc)I$z JtaD0e0sub-W`_U( literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tomato_6.png b/mods_disabled/farming/textures/farming_tomato_6.png new file mode 100644 index 0000000000000000000000000000000000000000..0135cb53beaee8d64cf0e39ce57bafabecedd70b GIT binary patch literal 490 zcmV1wBo#8Bznu=<=V)-qia7Mqkx zEdBwpAfciZxAz{4HbpBEi!+^^H|LkGbI2OEjRWWdJZDDu*RP1LLGZoT?fRLU$5i=F44hY9O?q44qdivT}n%bArT#Jg~ z5z=#~0$?SxQVB3hjbp=k=C<|m?v=&8Nd;Kko7Aq(ChELW)1m-OZw)FyA!l>2a3S&S zalOeGa2*#h3N1%;el9$x1QyyP6-9+jPVMx3HDF*~F+0hP;UBBJ(_L#1EG zRt`7Msw$`lI9Ry&^k^m`+B@pU`iM_{h}oz%w3d&{J0jrm3DK1i{Tg9S06-}XkG~GZ zB^YSLN@l%A_P)EKkv0YY^l+Ns8=eSVd$kH8j`v=G09l|0;AD{q_g}PIydph#NF#PH$+i&(I z3YDN2QmJ`57I0t!dL}|qDm71o?huspH3P+-%n3zdcP0o*&k@Ew&b(pf`X#_24RZDS_hy0od5s;07*qo IM6N<$f&{?&$N&HU literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tomato_8.png b/mods_disabled/farming/textures/farming_tomato_8.png new file mode 100644 index 0000000000000000000000000000000000000000..0b490257f0dab5ec4a4d4e67775159ea75594e3d GIT binary patch literal 510 zcmVH;LN@>a0cS}>K~y+TwUWI~!!QuXyD+eI zB8lC^B_VY@GL#9aZvaTBYNrN_RSggs6nn!*{k*7aCyUCq=pQ-T!=N zyY??+{RU)x4#wsnPC~MM+Pw^hH=SMUZsNr9A}WjEA3+;GE#9$9n?NGrBW}SWO5x}( z19@e{*oB-jP}6m>4Ma!O)r7+v&tbtbm7kd%V7YsAQ_70+zEBp)ykr=os%Ep+QC1@VtQ#wbaH8_f0+cnIQk0e^10q&wmu zFC!?%9Ms4hoDF@)pBw!`i?Mb5(5LRSU0LMo+-WzY*(s<=dl89ot$o{E+U08ek!WXK zz=r;YKN8-I8Z&4O%@{W2XZ(?*KEz@i(rsW2i@Z0?29#U{CQAK~lrG@J$TH61**oy9 zxK<1OxblH{iS7nmcaK4`LVqhR`S`x|%j~t>x6IT|NsAQD93B4$Y-V` zV67@(ttsNHFYcx*>Tk*$XepE9DLl=Oe{-z#zGQ`inc9cTbaH8#Np!rNCL4H7c$|j$+0P>l{$UdT;yk4ZInNgqIb78> zYu}}-Yjk0m$MP#&JXbhZNP^&&i9Z^8&VIPf${NS?h3~*4H=s2Pp00i_>zopr0L^e- A+5i9m literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tool_diamondhoe.png b/mods_disabled/farming/textures/farming_tool_diamondhoe.png new file mode 100644 index 0000000000000000000000000000000000000000..093acb821c6a8da2e1ec642f0f0401fa01b3f587 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!M}SX=D}!$7|NsAm%S&}9^cl+W z8Y=RcDG6As3Rr83I4)V_v~;nvzPR(!#csNyUTaqRoAL%)$^>rO5V&Pij;C<$g>wa$ zFP7iD-u3o1`}*2ypqWf1L4H89%O;<-0P-R|T^vIyZpEJQ6l+ira6WiJ!=igZ!T;G- z7xuVq`n{DS#8{)^()8~Y(;rICeR+e$&a1F6n{Aq*?>06bt03Ob_k^_y7HTiQBgS-x lbq5&682o5Fse9oK+o^3#pNh?erT{Hr@O1TaS?83{1OPfLR!RT> literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tool_mesehoe.png b/mods_disabled/farming/textures/farming_tool_mesehoe.png new file mode 100644 index 0000000000000000000000000000000000000000..ffd597a49544f1a65c7ebf8466d9949720badf42 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!eSlAh>xo5q|Ns9tl;bs2WIX+IQxMyB~PQ%96t;@=9}p{tEFG;u~%{E-e4| b@CEzcwM+}0=9Omx&1dj*^>bP0l+XkKCcsp* literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tool_steelhoe.png b/mods_disabled/farming/textures/farming_tool_steelhoe.png new file mode 100644 index 0000000000000000000000000000000000000000..893a6958e4b4d2763513392378c2e1fe92cd2ac8 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!eSlAh>jG=O|Ns9R%JCX1@|h_K zSgQ(HYl=AQi@WKH`kV3wTFT^j3h&*!_sp3yj~+dG{P^*+XV2chfB*UO=kMRY12rlv z`8*G36jMo%AJE9M$!9Hqybw!wLZNn(b-`tCzVFXNC64T9aO~-Gwq^as`jzb~o1v7&mSd9J Z{;g7H>h2IuS_L$p!PC{xWt~$(69CsBRk{EG literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_tool_stonehoe.png b/mods_disabled/farming/textures/farming_tool_stonehoe.png new file mode 100644 index 0000000000000000000000000000000000000000..4f8dade01c39dad208f481013cffc14369eeb91a GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}RDe&2>jqc8|Ns9R%JCX1@|h_K zSgQ(HYl_&Z2srDDyXlJhoAL%)$|NTzr=+B$rKRO~3g_hHeI=6ciN|m6es1 zmzP&mR8&@0R##Wo)YR11*EcjYG&MCXo3?H>&=#hWAU~jOWs}cZfb8^iaSV|Nk3D0~ z)Sw{3axu`bDe2t3|Fgst>h9*nZFJc$c<|cXaQ+7NjOV2jfM3|Ns9R%JCX1@|h_K zSgQ(HYl=AQi@WKH`kV3wTFOM)ibvVh@`s7rMpSxcnX)^z7+~IgsCLR z4`^7~#t_#CmVH Q15Ib}boFyt=akR{0M|c8ZvX%Q literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_trellis.png b/mods_disabled/farming/textures/farming_trellis.png new file mode 100644 index 0000000000000000000000000000000000000000..855b932608cdcc2e22e7751858e4d0014b721735 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)S4Rd07h@SObLkj&)f7LS zj6nVVBHN`6K5N>8n{0mQ0F^P81o;IsI6S+N2IQ1^x;TbtoKH?*U@~LwV-QGbXe`=l z^4+Z8sC-Am>`w0v?+u|!S3j3^P6>;7#+*Z=EaM zw?66EcHjN$UFP>Vu3EMD;^DZZlbjwsdT{x8)Akkdd)7v7THv>8y4&_8*2j(=oHc9m z$z9o7wY5`$rZAQS`2{mLJiCzwlo8NZu>H-brP(K~|(phXOxu6{1-oD!M<;EG@u literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_wheat_1.png b/mods_disabled/farming/textures/farming_wheat_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c16ad94ba4e9989dd795c452559376ea2137d78b GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b1=9Yr1Ue5HHSX6f+M=Q~ zYo{boh_NKdFPOpM*^M+HN8HoJF@)oKvP8xM1|=4W84^4a5|S(;3~VV3TOtB)Z38M{ N@O1TaS?83{1OQMF9ZdiL literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_wheat_2.png b/mods_disabled/farming/textures/farming_wheat_2.png new file mode 100644 index 0000000000000000000000000000000000000000..baddb4c544c6ea55d23c5dec5462e351c0f80c54 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ1=3wxO(*WOis%vDe8I1J zrB3l;b^H6RpMVmKB|(0{3=Yq3qyahVo-U3d9M_W<=yNa#vhn!vF!7w>VdLV_abQz! jW}J`^;*pRTP{6<-pT?xP*61c5Pz!^ntDnm{r-UW|z&Rvh literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_wheat_3.png b/mods_disabled/farming/textures/farming_wheat_3.png new file mode 100644 index 0000000000000000000000000000000000000000..36ebb1929de7851303f7b7da7a46fe831765608f GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=7oRg-u%NdiX-lntjog zlXa)B_1J%|{C~fqJ5Y|XB*-tA!Qt7BG$6;x)5S4_<9hM}Mh^x-Mjjm=CZ07sjC?$2 z9N3hd873r@1SF&t7$gX!gm@&B2n3{Pr0E1ChzWS42qXmt1cU?xurVyGV&j}_c4jru OGzL#sKbLh*2~7aHK`<)- literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_wheat_4.png b/mods_disabled/farming/textures/farming_wheat_4.png new file mode 100644 index 0000000000000000000000000000000000000000..735ed7772e5ed4e8ecf29004ce2fc92fc3001247 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=8yeCePUzxb3x$}4MW-^nS{=7dR2o)#&6-Tm*+8s;xLd_unYEgOKA OF?hQAxvX9s(+5ED7=pW^j0RBMrzY^mK6y;kcfx zz^0S%ASuBkAtC7j!z70^W@heYh6$G+95`@J@4(R$7ZeUWIPqe^fpZT64k?^iG2y@q zg#{-J<`yTY8L2jYFgCPWYsLW_)yD%7EVQ;MLk?xjf`9ed6rv>PMO`bP0l+XkKd0|`D literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_wheat_7.png b/mods_disabled/farming/textures/farming_wheat_7.png new file mode 100644 index 0000000000000000000000000000000000000000..cc26ca96990f96f8fe71d5c3eed9d0eea3bb7c2e GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF3h)VW1=42^r0?G1yl-9Ds>LRk zj^=EhYw_T6>gAKMhqp$qS!#Crc>12re#f@OT}v_e094Ib666=m;PC858j#cI>Eal| zaXqzTBQKMoi1Xix@0<#cx*IU@hS*8nQV|kjb-khBePQ`x+dQTzflFvXs>=mhV;2emCjG1i2d=>Yi4QG+X_?w&uF`J&|NjKx2-V2i> z8I~wss2>uhpfH0;Q;cQ6mTSUj*^G3scIec@IkN4fjwkQ5J3rKu+S3!)(;3JQS_PpA z-;0E(n_uCPBcg(a93^6ni1$PrHQeA-jcoLXQ_goZLEjMb50^^>=YLuCB>(^b07*qo IM6N<$f*<&P1^@s6 literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/farming_wheat_seed.png b/mods_disabled/farming/textures/farming_wheat_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..a9031fba979d5fd323ce9f5200f6ede53b2e733f GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ^~o&Uwme~4v(x#*or@>< z%7V@L&K@&PuV1Rg~;HfM?GGmNJaLK%Y3 kFmc!!9azVD)2D`kVexq;Szopr0Jyg)f&c&j literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/textures/strawberry.png b/mods_disabled/farming/textures/strawberry.png new file mode 100644 index 0000000000000000000000000000000000000000..5b43e6bc99bc21663a9e91440fcc97a2320b5adf GIT binary patch literal 382 zcmV-^0fGLBP)U1tMAsC~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_disabled/farming/textures/vessels_drinking_cup.png b/mods_disabled/farming/textures/vessels_drinking_cup.png new file mode 100644 index 0000000000000000000000000000000000000000..2eba2321a5cf7650e0f3c0ced4896138f1da997e GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b;OkH}&M25w;xW@MN(M*=9wUgGKN z%6^Z7jaSIrGOINgC}ia6;uyklJvm{4fPu8MwzM>Zq>jS8Zl);@4>V0b$Z_Rh5=+P# mg+m7(aF}&mJnGue$jGpSjrr{wFMmy-ZU#?RKbLh*2~7Ypr#ry_ literal 0 HcmV?d00001 diff --git a/mods_disabled/farming/utensils.lua b/mods_disabled/farming/utensils.lua new file mode 100644 index 0000000..f179120 --- /dev/null +++ b/mods_disabled/farming/utensils.lua @@ -0,0 +1,125 @@ + +local S = farming.intllib + +-- saucepan + +minetest.register_craftitem("farming:saucepan", { + description = S("Saucepan"), + inventory_image = "farming_saucepan.png", + groups = {food_saucepan = 1, flammable = 2}, +}) + +minetest.register_craft({ + output = "farming:saucepan", + recipe = { + {"default:steel_ingot", "", ""}, + {"", "group:stick", ""}, + } +}) + +-- cooking pot + +minetest.register_craftitem("farming:pot", { + description = S("Cooking Pot"), + inventory_image = "farming_pot.png", + groups = {food_pot = 1, flammable = 2}, +}) + +minetest.register_craft({ + output = "farming:pot", + recipe = { + {"group:stick", "default:steel_ingot", "default:steel_ingot"}, + {"", "default:steel_ingot", "default:steel_ingot"}, + } +}) + +-- baking tray + +minetest.register_craftitem("farming:baking_tray", { + description = S("Baking Tray"), + inventory_image = "farming_baking_tray.png", + groups = {food_baking_tray = 1, flammable = 2}, +}) + +minetest.register_craft({ + output = "farming:baking_tray", + recipe = { + {"default:clay_brick", "default:clay_brick", "default:clay_brick"}, + {"default:clay_brick", "", "default:clay_brick"}, + {"default:clay_brick", "default:clay_brick", "default:clay_brick"}, + } +}) + +-- skillet + +minetest.register_craftitem("farming:skillet", { + description = S("Skillet"), + inventory_image = "farming_skillet.png", + groups = {food_skillet = 1, flammable = 2}, +}) + +minetest.register_craft({ + output = "farming:skillet", + recipe = { + {"default:steel_ingot", "", ""}, + {"", "default:steel_ingot", ""}, + {"", "", "group:stick"}, + } +}) + +-- mortar and pestle + +minetest.register_craftitem("farming:mortar_pestle", { + description = S("Mortar and Pestle"), + inventory_image = "farming_mortar_pestle.png", + groups = {food_mortar_pestle = 1, flammable = 2}, +}) + +minetest.register_craft({ + output = "farming:mortar_pestle", + recipe = { + {"default:stone", "group:stick", "default:stone"}, + {"", "default:stone", ""}, + } +}) + +-- cutting board + +minetest.register_craftitem("farming:cutting_board", { + description = S("Cutting Board"), + inventory_image = "farming_cutting_board.png", + groups = {food_cutting_board = 1, flammable = 2}, +}) + +minetest.register_craft({ + output = "farming:cutting_board", + recipe = { + {"default:steel_ingot", "", ""}, + {"", "group:stick", ""}, + {"", "", "group:wood"}, + } +}) + +-- glass mixing bowl + +minetest.register_craftitem("farming:mixing_bowl", { + description = S("Glass Mixing Bowl"), + inventory_image = "farming_mixing_bowl.png", + groups = {food_mixing_bowl = 1, flammable = 2}, +}) + +minetest.register_craft({ + output = "farming:mixing_bowl", + recipe = { + {"default:glass", "group:stick", "default:glass"}, + {"", "default:glass", ""}, + } +}) + +minetest.register_craft( { + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "farming:mixing_bowl", + }, +}) diff --git a/mods_disabled/fruit_tools/LICENSE b/mods_disabled/fruit_tools/LICENSE new file mode 100644 index 0000000..32933b1 --- /dev/null +++ b/mods_disabled/fruit_tools/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 ChimneySwift + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/mods_disabled/fruit_tools/README.md b/mods_disabled/fruit_tools/README.md new file mode 100644 index 0000000..6d8de71 --- /dev/null +++ b/mods_disabled/fruit_tools/README.md @@ -0,0 +1,224 @@ +# Fruit Tools +Adds a variety of fruit tools and other fruit-related items to Minetest. + +![alt text](https://github.com/ChimneySwift/fruit_tools/blob/master/screenshot.png "All of the Fruit Tools") + +**Code license:** [MIT](https://opensource.org/licenses/MIT) + +**Textures license:** [MIT](https://opensource.org/licenses/MIT) + +**Dependencies:** farming, default, bucket, vessels + +**Optional Dependencies:** mobs, 3d_armor, toolranks + +## Tools: +Fruit tools will occasionally drop the fruit they are made when used, this fuctionality can be adjusted in init.lua (See "Settings" section of this document). + +- Admin pick (IMPORTANT NOTE: Please see "Settings" section of this document) + - Tool capabilities: + - full_punch_interval: 0.1 + - max_drop_level: 3 + - groupcaps: 0 for everything + - fleshy: 100 + - Note: can break cloud, requires additional privs for use (picklepick/dealer depending on which pick is enabled) +- Corn pick + - Tool capabilities: + - full_punch_interval: 0.9 + - max_drop_level: 3 + - cracky: {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3} + - fleshy: 5 +- Bean hoe + - Tool capabilities: + - uses: 1000 +- Raspberry axe + - Tool capabilities: + - full_punch_interval: 0.9 + - max_drop_level: 1 + - choppy: {times={[1]=1.90, [2]=0.80, [3]=0.40}, uses=50, maxlevel=2} + - fleshy: 7 +- Melon axe + - Tool capabilities: + - full_punch_interval: 0.9 + - max_drop_level: 1 + - choppy: {times={[1]=1.80, [2]=0.70, [3]=0.30}, uses=70, maxlevel=2} + - fleshy: 7 +- Grape shovel + - Tool capabilities: + - full_punch_interval: 1.0 + - max_drop_level: 1 + - crumbly: {times={[1]=1.00, [2]=0.40, [3]=0.20}, uses=50, maxlevel=3} + - fleshy: 4 +- Apple shovel + - Tool capabilities: + - full_punch_interval: 1.0 + - max_drop_level: 1 + - crumbly: {times={[1]=0.9, [2]=0.30, [3]=0.10}, uses=80, maxlevel=3} + - fleshy: 4 +- Chili sword + - Tool capabilities: + - full_punch_interval: 0.5 + - max_drop_level: 1 + - snappy: {times={[1]=1.85, [2]=0.80, [3]=0.25}, uses=60, maxlevel=3} + - fleshy: 8 +- Carrot sword + - Tool capabilities: + - full_punch_interval: 0.5 + - max_drop_level: 1 + - snappy: {times={[1]=1.70, [2]=0.70, [3]=0.20}, uses=80, maxlevel=3} + - fleshy: 9 +- Golden carrot sword + - Tool capabilities: + - full_punch_interval: 0.4 + - max_drop_level: 1 + - snappy: {times={[1]=1.65, [2]=0.60, [3]=0.15}, uses=100, maxlevel=3} + - fleshy: 10 + +### Crafting: +Pick: + +m|m|m +-|-|- +r|s|r +r|s|r + +m = Pick material (Eg: for Corn Pick it would be Corn on the Cob) + +s = Stick + +r = Tool Resin + +Hoe: + +m|m|× +-|-|- +r|s|r +r|s|r + +m = Hoe material (Eg: for Bean Hoe it would be Green Beans) + +s = Stick + +r = Tool Resin + +Axe: + +r|m|m +-|-|- +r|s|m +r|s|r + +m = Axe material (Eg: for Melon Axe it would be Melon Slice) + +s = Stick + +r = Tool Resin + +Shovel: + +×|m|× +-|-|- +r|s|r +r|s|r + +m = Shovel material (Eg: for Apple Shovel it would be Apple) + +s = Stick + +r = Tool Resin + +Sword: + +×|m|× +-|-|- +r|m|r +r|m|r + +m = Sword material (Eg: for Carrot Sword it would be Carrot) + +r = Tool Resin + +## Shields: +Fruit sheilds will occasionally drop the fruit they are made when hit (fruit placed in hitter's inventory), this fuctionality can be adjusted in init.lua (See "Settings" section of this document). + +- Orange Sheild + - Shield Capabilities: + - armor_heal: 16 + - armor_use: 100 + - fleshy: 16 + - cracky: 2 + - snappy: 1 + - level: 3 +- Tomato Sheild + - Shield Capabilities: + - armor_heal: 15 + - armor_use: 150 + - fleshy: 15 + - cracky: 2 + - snappy: 1 + - level: 3 + +### Crafting: + +m|r|m +-|-|- +r|m|r +×|r|× + +m = Sheild material (Eg: for Carrot Sword it would be Carrot) + +r = Tool Resin + +## Throwing Foods: + +Throwing foods can be crafted from regular food. They look like regular food, but instead of being eaten they are thrown. If a throwing food lands on an unprotected dirt block, it may plant the thrown food if the food can be planted (Eg: if you throw a throwing tomato, it may plant a tomato plant) this fuctionality can be adjusted in init.lua (See "Settings" section of this document). Each throwing food does 2 fleshy damage. + +* Throwing donut apple +* Throwing tomato +* Throwing blueberries +* Throwing grapes +* Throwing raspberries +* Throwing melon_slice +* Throwing orange +* Throwing strawberry + +### Crafting + +Throwing food: + +f|f|f +-|-|- +f|s|f +f|f|f + +f = Food material (Eg: for Throwing Tomato it would be Tomato) + +s = Stone + +Regular food (to revert back): + +f|f|f +-|-|- +f|f|f +f|f|f + +f = Throwing food (Eg: for Tomato it would be Throwing Tomato) + +## Settings +### Admin Pick Settings: +By default the admin pick is set to the "Weed Pick", if you do not wish for your world to contain cannabis (aka weed) references, simply set the `say_no_to_cannabis` variable on line 8 of init.lua to `true`, this will replace the "Weed Pick" with the "Pickle Pick" (both tools have the same capabilities), if you do not wish for your world to contain pickle references then we can't help you, sorry. + +### Extra Drops: +By default when a shield is hit, or a fruit tool is used, there is a 1 in 5 chance that between 1 and 5 of the shield/tool's food is also dropped. To enable/disable this set `extra_drops` on line 12 of `init.lua` to `false`. To change the drop chance change `extra_drop_chance` on line 14 of `init.lua`, to change the drop maximum change `extra_drop_max` on line 16 of `init.lua` and to change the drop minimum change `extra_drop_min` on line 18 of `init.lua`. + +### Throwable Food Planting: +By default, when a throwable food hits an unprotected dirt node, it will place a fully grown plant of the throwable food's origin (Eg: Throwing Tomato plants a fully grown tomato plant) on top of the dirt 1 out of 5 times. To enable/disable this set `plant` on line 22 of `init.lua` to `false`. To make the mod first hoe the dirt, then place a new plant on top (instead of a fully grown one), set `plant_whole` on line 24 of `init.lua` to `false`. To change the chance of a plant being planted change `plant_chance` on line 26 of `init.lua` + +## Notes +* This mod is a work in progress, tool capabilities etc. are subject to change, the code is still slightly messy, if you have any suggestions for improvements, start a GitHub issue, comment on the minetest forums (forum.minetest.net) or modify the code and create a pull request. + +* Satisfy optional dependency "mobs" for throwing foods and optional dependency "3darmor" for sheilds. + +* The dependancy "farming" refers to TenPlus1's farming_redo, not the farming mod from minetest_game. + +## Changelog +* No changes yet! diff --git a/mods_disabled/fruit_tools/depends.txt b/mods_disabled/fruit_tools/depends.txt new file mode 100644 index 0000000..06893b3 --- /dev/null +++ b/mods_disabled/fruit_tools/depends.txt @@ -0,0 +1,6 @@ +farming +default +bucket +vessels +mobs? +3d_armor? \ No newline at end of file diff --git a/mods_disabled/fruit_tools/description.txt b/mods_disabled/fruit_tools/description.txt new file mode 100644 index 0000000..e9991fc --- /dev/null +++ b/mods_disabled/fruit_tools/description.txt @@ -0,0 +1,10 @@ +Adds a variety of fruit tools and other fruit-related items to Minetest. + +Satisfy optional dependency "mobs" for throwing foods and optional dependency "3darmor" for sheilds. + +Modify settings in init.lua to disable/enable cannabis references, modify fruit drop settings and modify throwing fruit planting settings, etc. + +Version: +1.0 + +The dependancy "farming" refers to TenPlus1's farming_redo, not the farming mod from minetest_game. \ No newline at end of file diff --git a/mods_disabled/fruit_tools/init.lua b/mods_disabled/fruit_tools/init.lua new file mode 100644 index 0000000..71406c9 --- /dev/null +++ b/mods_disabled/fruit_tools/init.lua @@ -0,0 +1,718 @@ +----------------- +-- Fruit Tools -- +----------------- + +-- Settings: + +-- Replace weed pick with pickle pick when set to true - capabilities of both picks have the same capabilities +local say_no_to_cannabis = true + +-- Every time the tool is used, it will randomly also drop the fruit the tool is made out of, configure quantities of fruit and chance here: +-- Enable or disable extra drops (default is true) +local extra_drops = true +-- Every one in x drops the fruit the tool is made out of will also drop, lower is more likely (default is 5) +local extra_drop_chance = 20 +-- Maximum amount of extra drops (default is 5) +local extra_drop_max = 3 +-- Minimum amount of extra drops (default is 1) +local extra_drop_min = 1 + +-- When a throwing food lands, there is a chance they plant the plant they are made of, adjust this functionality here: +-- Enable or disable planting (default is true) +local plant = true +-- Set to true to plant just a whole fully-grown plant, set to false to enable hoeing of dirt and planting a new plant (default is true) +local plant_whole = false +-- Adjust the plant chance (1 in every x node hits will plant a plant) +local plant_chance = 20 + + +-- Code: + +if farming.mod ~= "redo" then + minetest.log("error", "[fruit_tools]: This mod requires TenPlus1's farming redo, not the default minetest_game farming mod.") +end + +fruit_tools = {} +fruit_tools.version = "1.0" +fruit_tools.path = minetest.get_modpath("fruit_tools") + +-- Sound effect function (unused as of now): +local function play_sound_effect(player, name) + if player then + local pos = player:getpos() + if pos then + minetest.sound_play({ + pos = pos, + name = name, + max_hear_distance = 10, + gain = 0.5, + }) + end + end +end + +-- custom particle effects (from TenPlus1's mobs_redo) +local effect = function(pos, amount, texture, min_size, max_size, radius, gravity, glow) + + radius = radius or 2 + min_size = min_size or 0.5 + max_size = max_size or 1 + gravity = gravity or -10 + glow = glow or 0 + + minetest.add_particlespawner({ + amount = amount, + time = 0.25, + minpos = pos, + maxpos = pos, + minvel = {x = -radius, y = -radius, z = -radius}, + maxvel = {x = radius, y = radius, z = radius}, + minacc = {x = 0, y = gravity, z = 0}, + maxacc = {x = 0, y = gravity, z = 0}, + minexptime = 0.1, + maxexptime = 1, + minsize = min_size, + maxsize = max_size, + texture = texture, + glow = glow, + }) +end + +-- Fruit tools occasionally drop the fruit they are made of +local tool_item_pairs = { + {tool = "fruit_tools:hoe_bean", fruit = "farming:beans"}, + {tool = "fruit_tools:sword_chili", fruit = "farming:chili_pepper"}, + {tool = "fruit_tools:sword_carrot", fruit = "farming:carrot"}, + {tool = "fruit_tools:sword_carrot_gold", fruit = "farming:carrot_gold"}, + {tool = "fruit_tools:pick_corn", fruit = "farming:corn"}, + {tool = "fruit_tools:axe_raspberry", fruit = "farming:raspberries"}, + {tool = "fruit_tools:axe_melon", fruit = "farming:melon_slice"}, + {tool = "fruit_tools:shovel_grape", fruit = "farming:grapes"}, + {tool = "fruit_tools:shovel_apple", fruit = "default:apple"}, +} + +-- checks if user is holding a fruit tool, if they are returns the fruit pair name, else returns false +local function is_holding_fruit_tool(player) + local tool = player:get_wielded_item():get_name() + local fruit_pair_name = false + + for i, p in ipairs(tool_item_pairs) do + if tool == p.tool then + fruit_pair_name = p.fruit + end + end + + return fruit_pair_name +end + +local function get_random_drop_quantity() + local drop_quantity = false + if extra_drops and math.random(1, extra_drop_chance) == 1 then + drop_quantity = math.random(extra_drop_min, extra_drop_max) + end + return drop_quantity +end + +local old_handle_node_drops = minetest.handle_node_drops + +function minetest.handle_node_drops(pos, drops, digger) + -- Check if fruit tool, if fruit tool save fruit pair for later, if not fruit tool proceed as normal + local fruit_drop_name = is_holding_fruit_tool(digger) + if not fruit_drop_name then + return old_handle_node_drops(pos, drops, digger) + end + + local new_drops = drops + local drop_quantity = get_random_drop_quantity() + + if drop_quantity then + table.insert(new_drops, + ItemStack({ + name = fruit_drop_name, + count = drop_quantity, + }) + ) + end + + return old_handle_node_drops(pos, new_drops, digger) +end + +-- Do the same for hoes when they are used +local old_hoe_on_use = farming.hoe_on_use + +function farming.hoe_on_use(itemstack, user, pointed_thing, uses) + local fruit_drop_name = is_holding_fruit_tool(user) + if not fruit_drop_name then + return old_hoe_on_use(itemstack, user, pointed_thing, uses) + end + + local drops = {} + local drop_quantity = get_random_drop_quantity() + + if drop_quantity then + table.insert(drops, + ItemStack({ + name = fruit_drop_name, + count = drop_quantity, + }) + ) + if pointed_thing.type == "node" then + old_handle_node_drops(pointed_thing.above, drops, user) + end + end + + return old_hoe_on_use(itemstack, user, pointed_thing, uses) +end + +-- Register craftitems: +minetest.register_craftitem("fruit_tools:resin", { + description = "Tool Resin (Use to craft fruit tools)", + inventory_image = "resin_bottle.png", +}) + +minetest.register_craft({ + output = "fruit_tools:resin", + recipe = { + {"default:diamond", "default:gold_ingot", "default:diamond"}, + {"default:mese_crystal", "vessels:glass_bottle", "default:mese_crystal"}, + {"default:diamond", "bucket:bucket_water", "default:diamond"} + }, +}) + +-- Register sheilds: +if minetest.get_modpath("3d_armor") then + armor:register_armor("fruit_tools:shield_orange", { + description = "Orange Shield", + inventory_image = "fruit_tools_inv_shield_orange.png", + groups = {armor_shield=1, armor_heal=16, armor_use=100}, + armor_groups = {fleshy=16}, + damage_groups = {cracky=2, snappy=1, level=3}, + reciprocate_damage = true, + on_punched = function(player, hitter, time_from_last_punch, tool_capabilities) + if type(hitter) == "userdata" then + if extra_drops then + local drops = {} + local drop_quantity = get_random_drop_quantity() + + if drop_quantity then + table.insert(drops, + ItemStack({ + name = "ethereal:orange", + count = drop_quantity, + }) + ) + old_handle_node_drops(player:get_pos(), drops, hitter) + end + end + end + end, + }) + + minetest.register_craft({ + output = "fruit_tools:shield_orange", + recipe = { + {"ethereal:orange", "fruit_tools:resin", "ethereal:orange"}, + {"fruit_tools:resin", "ethereal:orange", "fruit_tools:resin"}, + {"", "fruit_tools:resin", ""} + }, + }) + + armor:register_armor("fruit_tools:shield_tomato", { + description = "Tomato Shield", + inventory_image = "fruit_tools_inv_shield_tomato.png", + groups = {armor_shield=1, armor_heal=14, armor_use=150}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, level=3}, + reciprocate_damage = true, + on_punched = function(player, hitter, time_from_last_punch, tool_capabilities) + if type(hitter) == "userdata" then + if extra_drops then + local drops = {} + local drop_quantity = get_random_drop_quantity() + + if drop_quantity then + table.insert(drops, + ItemStack({ + name = "farming:tomato", + count = drop_quantity, + }) + ) + old_handle_node_drops(player:get_pos(), drops, hitter) + end + end + end + end, + }) + + minetest.register_craft({ + output = "fruit_tools:shield_tomato", + recipe = { + {"farming:tomato", "fruit_tools:resin", "farming:tomato"}, + {"fruit_tools:resin", "farming:tomato", "fruit_tools:resin"}, + {"", "fruit_tools:resin", ""} + }, + }) +end + +-- Register hoe: +farming.register_hoe(":fruit_tools:hoe_bean", { + description = "Bean Hoe", + inventory_image = "hoe_bean.png", + max_uses = 1000, + recipe = { + {"farming:beans", "farming:beans", ""}, + {"fruit_tools:resin", "group:stick", "fruit_tools:resin"}, + {"fruit_tools:resin", "group:stick", "fruit_tools:resin"} + } +}) + +-- Register swords: +minetest.register_tool("fruit_tools:sword_chili", { + description = "Chili Sword", + inventory_image = "sword_chili.png", + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.85, [2]=0.80, [3]=0.25}, uses=60, maxlevel=3}, + }, + damage_groups = {fleshy=8}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_craft({ + output = "fruit_tools:sword_chili", + recipe = { + {"", "farming:chili_pepper", ""}, + {"fruit_tools:resin", "farming:chili_pepper", "fruit_tools:resin"}, + {"fruit_tools:resin", "farming:chili_pepper", "fruit_tools:resin"} + }, +}) + +minetest.register_tool("fruit_tools:sword_carrot", { + description = "Carrot Sword", + inventory_image = "sword_carrot.png", + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.70, [2]=0.70, [3]=0.20}, uses=80, maxlevel=3}, + }, + damage_groups = {fleshy=9}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_craft({ + output = "fruit_tools:sword_carrot", + recipe = { + {"", "farming:carrot", ""}, + {"fruit_tools:resin", "farming:carrot", "fruit_tools:resin"}, + {"fruit_tools:resin", "farming:carrot", "fruit_tools:resin"} + }, +}) + +minetest.register_tool("fruit_tools:sword_carrot_gold", { + description = "Golden Carrot Sword", + inventory_image = "sword_carrot_gold.png", + tool_capabilities = { + full_punch_interval = 0.4, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.65, [2]=0.60, [3]=0.15}, uses=100, maxlevel=3}, + }, + damage_groups = {fleshy=10}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_craft({ + output = "fruit_tools:sword_carrot_gold", + recipe = { + {"", "farming:carrot_gold", ""}, + {"fruit_tools:resin", "farming:carrot_gold", "fruit_tools:resin"}, + {"fruit_tools:resin", "farming:carrot_gold", "fruit_tools:resin"} + }, +}) + +-- Register Picks: +local pick_name = "fruit_tools:pick_weed" +local pick_image = "pick_weed.png" +local pick_description = "Weed Pickaxe" +local pick_priv = "dealer" + +if say_no_to_cannabis == false then + minetest.register_alias("fruit_tools:pick_pickle", "fruit_tools:pick_weed") + + minetest.register_privilege("dealer", { + description = "Players can use the Weed Pick with this priv.", + give_to_singleplayer = false, + }) +else + minetest.register_alias("fruit_tools:pick_weed", "fruit_tools:pick_pickle") + + minetest.register_privilege("picklepick", { + description = "Players can use the Pickle Pick with this priv.", + give_to_singleplayer = false, + }) + + pick_name = "fruit_tools:pick_pickle" + pick_image = "pick_pickle.png" + pick_description = "Pickle Pickaxe" + pick_priv = "picklepick" +end + +minetest.register_tool(pick_name, { + description = pick_description, + inventory_image = pick_image, + range = 20, + tool_capabilities = { + full_punch_interval = 0.1, + max_drop_level = 3, + groupcaps = { + unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + dig_immediate = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3} + }, + damage_groups = {fleshy = 100} + }, + after_use = function(itemstack, user, pointed_thing) + if not minetest.check_player_privs(user:get_player_name(), {[pick_priv] = true}) then + minetest.log("action", "[fruit_tools] "..user:get_player_name().." just tried to use a "..pick_description.."!") + minetest.chat_send_player(user:get_player_name(), "You are not authorised to use the mighty "..pick_description.."!") + itemstack:take_item() + return itemstack + end + end, +}) + +-- Make cloud removable with admin picks +minetest.register_node(":default:cloud", { + description = "Cloud", + tiles = {"default_cloud.png"}, + drop = "", + groups = {unbreakable = 1}, + is_ground_content = false, + sounds = default.node_sound_defaults(), +}) + +minetest.register_tool("fruit_tools:pick_corn", { + description = "Corn Pickaxe", + inventory_image = "pick_corn.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_craft({ + output = "fruit_tools:pick_corn", + recipe = { + {"farming:corn_cob", "farming:corn_cob", "farming:corn_cob"}, + {"fruit_tools:resin", "default:stick", "fruit_tools:resin"}, + {"fruit_tools:resin", "default:stick", "fruit_tools:resin"} + }, +}) + +-- Register axes: +minetest.register_tool("fruit_tools:axe_raspberry", { + description = "Raspberry Axe", + inventory_image = "axe_raspberry.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=1.90, [2]=0.80, [3]=0.40}, uses=50, maxlevel=2}, + }, + damage_groups = {fleshy=7}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_craft({ + output = "fruit_tools:axe_raspberry", + recipe = { + {"fruit_tools:resin", "farming:raspberries", "farming:raspberries"}, + {"fruit_tools:resin", "default:stick", "farming:raspberries"}, + {"fruit_tools:resin", "default:stick", "fruit_tools:resin"} + }, +}) + +minetest.register_tool("fruit_tools:axe_melon", { + description = "Melon Axe", + inventory_image = "axe_melon.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=1.80, [2]=0.70, [3]=0.30}, uses=70, maxlevel=2}, + }, + damage_groups = {fleshy=7}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_craft({ + output = "fruit_tools:axe_melon", + recipe = { + {"fruit_tools:resin", "farming:melon_slice", "farming:melon_slice"}, + {"fruit_tools:resin", "default:stick", "farming:melon_slice"}, + {"fruit_tools:resin", "default:stick", "fruit_tools:resin"} + }, +}) + +-- Register shovels: +minetest.register_tool("fruit_tools:shovel_grape", { + description = "Grape Shovel", + inventory_image = "shovel_grape.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.00, [2]=0.40, [3]=0.20}, uses=50, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_craft({ + output = "fruit_tools:shovel_grape", + recipe = { + {"", "farming:grapes", ""}, + {"fruit_tools:resin", "default:stick", "fruit_tools:resin"}, + {"fruit_tools:resin", "default:stick", "fruit_tools:resin"} + }, +}) + +minetest.register_tool("fruit_tools:shovel_apple", { + description = "Apple Shovel", + inventory_image = "shovel_apple.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=0.9, [2]=0.30, [3]=0.10}, uses=80, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_craft({ + output = "fruit_tools:shovel_apple", + recipe = { + {"", "default:apple", ""}, + {"fruit_tools:resin", "default:stick", "fruit_tools:resin"}, + {"fruit_tools:resin", "default:stick", "fruit_tools:resin"} + }, +}) + +if minetest.get_modpath("mobs") then + function fruit_tools:register_throwing_food(modname, foodname, plantname, final_stage, toplant, plantwhole) + local food + local f = string.find(foodname, ":") + if f then + food = foodname:sub(f + 1) + else + food = foodname + foodname = foodname + end + + if not plantname then + toplant = false + else + local p = string.find(plantname, ":") + if not p then + plantname = "farming:"..plantname + end + end + + if modname ~= "fruit_tools" and modname:sub(1,1) ~= ":" then + modname = ":"..modname + end + + local description + if minetest.registered_craftitems[foodname] then + description = minetest.registered_craftitems[foodname].description + else + -- If failed to get description, do our best to capitalise the food name so it looks right and log a warning + description = food:sub(1,1):upper()..food:sub(2) + minetest.log("warning", "[fruit_tools]: failed to get description for food: "..foodname) + end + + mobs:register_arrow(modname..":"..food.."_entity", { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = {food..".png"}, + velocity = 6, + + hit_player = function(self, player) + if player:get_player_name() == self.playername then + return + end + + local pos = player:get_pos() + pos.y = pos.y + ((-player:get_properties().collisionbox[2] + player:get_properties().collisionbox[5]) * .5) + 0.5 + effect(pos, 5, food.."_splat.png", 1, 3, 2, -10, 0) + + player:punch(minetest.get_player_by_name(self.playername) or self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 2}, + }, nil) + end, + + hit_mob = function(self, player) + local pos = player:get_pos() + pos.y = pos.y + ((-player:get_properties().collisionbox[2] + player:get_properties().collisionbox[5]) * .5) + 0.5 + effect(pos, 5, food.."_splat.png", 1, 3, 2, -10, 0) + + player:punch(minetest.get_player_by_name(self.playername) or self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 2}, + }, nil) + end, + + hit_node = function(self, pos, node) + local under = {x=pos.x,y=pos.y-1,z=pos.z} + + local above = {x=pos.x,y=pos.y+1,z=pos.z} + + local landed_thing = {type="node", under=pos, above=above} + + effect(above, 5, food.."_splat.png", 1, 3, 2, -10, 0) + + if not plant + or not toplant + or math.random(1, plant_chance) ~= 1 + or minetest.get_node_or_nil(above).name ~= "air" + or minetest.get_item_group(node, "soil") ~= 1 + then + return + end + + if plantwhole then + if minetest.is_protected(above, self.playername)then + return + end + + local final_plant + if not final_stage then + final_plant = plantname + else + final_plant = plantname.."_"..tostring(final_stage) + end + + minetest.set_node(above, {name = final_plant}) + else + if minetest.is_protected(above, self.playername) or minetest.is_protected(pos, self.playername) then + return + end + + minetest.set_node(pos, {name = "farming:soil_wet"}) + + farming.place_seed(nil, minetest.get_player_by_name(self.playername), landed_thing, plantname.."_1") + end + end, + }) + + local food_GRAVITY = 9 + local food_VELOCITY = 19 + + local shoot_food = function (item, player, pointed_thing) + local playerpos = player:get_pos() + + play_sound_effect(player, "default_place_node_hard") + + local obj = minetest.add_entity({ + x = playerpos.x, + y = playerpos.y +1.5, + z = playerpos.z + }, modname..":"..food.."_entity") + + local ent = obj:get_luaentity() + local dir = player:get_look_dir() + + ent.velocity = food_VELOCITY -- needed for api internal timing + ent.switch = 1 -- needed so that food doesn't despawn straight away + + obj:setvelocity({ + x = dir.x * food_VELOCITY, + y = dir.y * food_VELOCITY, + z = dir.z * food_VELOCITY + }) + + obj:setacceleration({ + x = dir.x * -3, + y = -food_GRAVITY, + z = dir.z * -3 + }) + + local ent2 = obj:get_luaentity() + ent2.playername = player:get_player_name() + + item:take_item() + + return item + end + + minetest.register_craftitem(":"..modname..":throwing_"..food, { + description = "Throwing "..description, + inventory_image = food..".png", + on_use = shoot_food, + }) + + minetest.register_craft({ + output = modname..":throwing_"..food.." 9", + recipe = { + {foodname, foodname, foodname}, + {foodname, "default:stone", foodname}, + {foodname, foodname, foodname} + }, + }) + + minetest.register_craft({ + output = foodname.." 9", + recipe = { + {modname..":throwing_"..food, modname..":throwing_"..food, modname..":throwing_"..food}, + {modname..":throwing_"..food, modname..":throwing_"..food, modname..":throwing_"..food}, + {modname..":throwing_"..food, modname..":throwing_"..food, modname..":throwing_"..food}, + }, + }) + end + + -- Register throwing foods: + fruit_tools:register_throwing_food("fruit_tools", "farming:donut_apple", nil, nil, false, nil) + + fruit_tools:register_throwing_food("fruit_tools", "farming:tomato", "tomato", 8, true, plant_whole) + fruit_tools:register_throwing_food("fruit_tools", "default:blueberries", "blueberry", 4, true, plant_whole) + fruit_tools:register_throwing_food("fruit_tools", "farming:grapes", "grapebush", nil, true, true) + fruit_tools:register_throwing_food("fruit_tools", "farming:raspberries", "raspberry", 4, true, plant_whole) + fruit_tools:register_throwing_food("fruit_tools", "farming:melon_slice", "melon", 8, true, plant_whole) + + fruit_tools:register_throwing_food("fruit_tools", "ethereal:orange", nil, nil, false, nil) + fruit_tools:register_throwing_food("fruit_tools", "ethereal:strawberry", nil, nil, false, nil) +end + +-- Add toolranks support if found +if minetest.get_modpath("toolranks") then + for i, p in ipairs(tool_item_pairs) do + local original_description = minetest.registered_tools[p.tool].description + minetest.override_item(p.tool, { + original_description = original_description, + description = toolranks.create_description(original_description, 0, 1), + after_use = toolranks.new_afteruse + }) + end +end diff --git a/mods_disabled/fruit_tools/textures/axe_melon.png b/mods_disabled/fruit_tools/textures/axe_melon.png new file mode 100644 index 0000000000000000000000000000000000000000..d8b2c6a19d5cbdd841ca149e16663fcf9fdbbfb5 GIT binary patch literal 505 zcmVj)6mKYfFnw=hD*D*w`Ml*bq3$ zSV?Q4*1y=)a*fjDz27(GCGA67=IlW3#uxgHW0hDfFGCeL^n?Y8B2c6My9K~m{Qn~I( z*AoQDm;qTfCc5tR!hQq+QidkYNUbw#?Hla|{R*ZGO=kRWT$Gz!+&(M){s4-bSXb~r v*f;RMm;-bJ>ws=yor;J35)b=bdCuPf=Gweq6`@`900000NkvXXu0mjfv+Ueh literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/axe_raspberry.png b/mods_disabled/fruit_tools/textures/axe_raspberry.png new file mode 100644 index 0000000000000000000000000000000000000000..c1b7fc254006fd806133c753cd32b59323618907 GIT binary patch literal 649 zcmV;40(Sk0P)MZ5Nr{$RkJ&pG2s0YLD#hKqAYy38`Ew#DGJB_zN45F%xguSmq-;L)j=K4nh5a|B&85RqZL~_ zDcSnEM=L%6H=8lzaZX(eg23~A4E|Y87*6#j^@$jInnKQNz>FvQRJO-OePj3C5<>@ zVSXMV#L1hzx;*sfXL8m*RNT#KI-L$mDbh5>7=sW3XD!!0?HtYaB*@zPL_7fT^2?t8 zxN^lCWAJrNRaJQJ)zmFsT^{<|H~RkSr5XRr_iorb)jb{yInFkgE{dtw|9dBdEnV zmC3VVrUK^%Edl=7S_bwuf;x{FmmEk^Xnkl9TX4I9fuU*%*L>$Uk3)b)FnGH9xvX_rr`KhyO_y7K7 b%MS7|EVGtq-p!_w(l6-&-UjlX(EBov|dyFPOpM z*^M+Hr`*%UF+}2WZ;!XoVFQk%GPfHz@Bf~^P32w6rP!^L6XLS}FI>g_AT{YQ&#$~w z*A5@@X<5IhD&nP+v`Eak-ar$hqwfErw30w26Nm9RN#CUBLUFbYrX|Bj} zA4YY>2mAu{4rL1;#94J^l!iVPJzX9@_9v-JKHp`I)3oEUpwcs z?Yo@^_BW+wY~XntK4Z8FnrVH~)N` zX)npk_@29NF{@Q6<`pOw|Q{-oY( o&77KRa>=Ms+-7IRkJzPScG@BszBr>mdKI;Vst06aFuiU0rr literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/fruit_tools_inv_shield_orange.png b/mods_disabled/fruit_tools/textures/fruit_tools_inv_shield_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9ec299c67a2690ce219a817b342436025ed1c5 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5qY1UIJ09F?t+Y|~PO z55+KtRTv*h;XIwp(om;+I8WqGHe*V+U1_`dqe9O2B^;0HSQ}&OcLKFDmIV0)GdMiE zkp|?Xd%8G=NL=pi^X6+X;BZ;Vu}#eS&i^fs_8aQWxw~f%k3jA5H>_ft=UF~G==1gE ziQ*Dj{R=D_tCnpKXw>XkDAS;5y4dvDO9s=H8IGcs2d|lxNIj_(SGY5mSH)c6`-~}5 hc3t0_x@>+Vp?wsOMq4~c)I$ztaD0e0sw5wQ{w;t literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/fruit_tools_inv_shield_tomato.png b/mods_disabled/fruit_tools/textures/fruit_tools_inv_shield_tomato.png new file mode 100644 index 0000000000000000000000000000000000000000..586aa56de584ab5f8b9eeb101b430fb075f9c9f9 GIT binary patch literal 488 zcmVP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv00043NklJ3R~Lh!4Iq!i`I%-K~U7Y=v|*PZ?k0!N_!Cu3@^!>nM|^4%>NrJiF7Lj_KN{c3WHmhurOFJ z8&t8_1)&c2W8D1;^E-!oTxo#$rHj4?(-uI@@CvI~WFYK7+`?5(QM(R(?Dv2U)<>xO z5Z3`}M!p0cX+ZEjx*<#yx%d!hV4elx=;>vbs_&uc$(A!J3^R%~wkKuJ@VVD_UC<6{NG_fI~0ue<-1QkJoA_k0xBC#Thg@9ne9*`iQ#9$Or zQF$}6R&?d%y_c8YA7_1QpS|}zXYYO1x&V;8{kgn!SPFnNo`4_X6{c}T{8k*B#$jdxfFg<9uYy1K45IaYvHg`_dOZM)Sy63ve6hvv z1)yUy0P^?0*fb9UASvow`@mQCp^4`uNg&9uGcn1|&Nk+9SjOUl{-OWr@Hh0;_l(8q z{wNRKos+;6rV8ldy0Owz(}jF`W(JeRp&R{qi2rfmU!TJ;gp(Kmm5I1s5m_f-n#TRsj}B0%?E`vOzxB2#P=n*a3EfYETOrKoe*ICqM@{4K9Go;5xVgZi5G4 z1dM~{UdP6d+Yd3o?MrAqM0Kc|iV92owdyL5UC#5<>aVCa44|hpM4E zs0sQWIt5*Tu0n&*J!lk~f_{hI!w5`*sjxDv4V%CW*ah~3!{C*0BD@;TgA3v9a1~q+ zAA{TB3-ERLHar49hi4Ih5D^-ph8Q6X#0?2VqLBoIkE}zAkxHZUgRb+f=nat zP#6>iMMoK->`~sRLq)(kHo*Vn{;LcG6+edD1=7D>9j^O?D{Qg|tCDK{ym)H7&wDr6*;uGTJg8GHjVbnL{!cWyUB7MT6o-VNo_w8Yq`2<5Ub)hw4L3rj}5@qxMs0 zWMyP6Wy582WNT#4$d1qunl{acmP#w5ouJ*Jy_Zv#bCKi7ZIf$}8d zZdVy&)LYdbX%I9R8VMQ|8r>Q*nyQ)sn)#Z|n)kKvS`4iu ztvy=3T65Yu+7a4Yv^%sXb>ww?bn(=Yu(!=O6^iuTp>)p_Y^{w=i z^lS773}6Fm1Fpe-gF!>Ip{*g$u-szvGhed;vo5pW&GpS$<~8QGEXWp~7V9lKEnZq0SaK{6Sl+dwSOr*Z zvFf(^Xl-N7w{EeXveC4Ov)N}e%%C!Y7^RFWwrE>d+x51mZQt2h+X?JW*!^a2WS?Sx z)P8cQ&Qi|OhNWW;>JChYI)@QQx?`Nj^#uJBl~d&PK+RZLOLos~K(b5>qmrMN0})tOkySZ3_W zICNY@+|jrX%s^&6b2i>5eqa0y%Z;^%^_=a@u3%4b9605ii3Ep)@`TAmhs0fpQ%O!q zl}XcFH*PieWwLj2ZSq`7V9Mc?h17`D)-+sNT-qs~3@?S(ldh7UlRlVXkWrK|vf6I- z?$tAVKYn8-l({mqQ$Q8{O!WzMg`0(=S&msXS#Pt$vrpzo=kRj+a`kh!z=6$;c zwT88(J6|n-WB%w`m$h~4pmp)YIh_ z3ETV2tjiAU!0h1dxU-n=E9e!)6|Z;4?!H=SSy{V>ut&IOq{_dl zbFb#!9eY1iCsp6Bajj|Hr?hX|zPbJE{X++w546-O*Ot`2Kgd0Jx6Z4syT zu9enWavU5N9)I?I-1m1*_?_rJ$vD~agVqoG+9++s?NEDe`%Fht$4F;X=in*dQ{7$m zU2Q)a|9JSc+Uc4zvS-T963!N$T{xF_ZuWe}`RNOZ7sk3{yB}PPym+f8xTpV;-=!;; zJuhGEb?H5K#o@~7t9DmUU1MD9xNd#Dz0azz?I)|B+WM{g+Xrk0I&awC=o(x)cy`EX z=)z6+o0o6-+`4{y+3mqQ%kSJBju{@g%f35#FZJHb`&swrA8dGtepviS>QUumrN{L@ z>;2q1Vm)$Z)P1z?N$8UYW2~{~zhwUMVZ87u`Dx{Z>O|9|`Q+&->FRy-Sjp7DHs zy69KwU-!MxeeuI@&cF4|M9z%AfP?@5 z`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9J+u00v@9M??T@07(E7UUb%?00009a7bBm z000ie000ie0hKEb8vpzT9uEmli z5q$v1^HnqFO!I$pVL;u^`nkcpOY| z;m?v>&H&J?w*k01yH`qr{!@5>$@T|_`o~y!fQthwP*wnd<7t$tE~{yijd+Vi$Buf_ zR+1ZQ1tkRxcRytWWM=$m!CvJ#8aL~0j8=nuZc~|4V2)1iUVXL~bSe!U=wtT`*3%~E z{U-oQRS$rfoGIam*}oiU2!bF8f*=TjAP9mW2*RJ|3nur38m`I2 QrT_o{07*qoM6N<$g5cEyoB#j- literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/fruit_tools_shield_orange_preview.png b/mods_disabled/fruit_tools/textures/fruit_tools_shield_orange_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..aa43afb6ffd3866e8f2021e8478bb82f4c59fff1 GIT binary patch literal 493 zcmV!%!5)@qb=gTeQ}iMXIQS;Gmra5hpjlhAvJnU5mIV=wZJyVhHB^e8%=ow~( zX822%r(G%y9lz_T+XGfI3@_OqQEe#`&S`fI9M3>c#DBkm`9oKWTV@nI2>sefrx*VE zjq{GCYz4jt5AKUqcQhwqxeyBgQf&jr3qSw#+UNcyoPPhx*G6&_mkY4~$E4PDd1>ox jU-Xq_2_b|KLi}x?SM`J%hH}d300000NkvXXu0mjfkg3V< literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/fruit_tools_shield_tomato.png b/mods_disabled/fruit_tools/textures/fruit_tools_shield_tomato.png new file mode 100644 index 0000000000000000000000000000000000000000..0eda7e3c9898199f8db8758a79d477c327e82cfc GIT binary patch literal 3192 zcmV-;42ScHP)uJ@VVD_UC<6{NG_fI~0ue<-1QkJoA_k0xBC#Thg@9ne9*`iQ#9$Or zQF$}6R&?d%y_c8YA7_1QpS|}zXYYO1x&V;8{kgn!SPFnNo`4_X6{c}T{8k*B#$jdxfFg<9uYy1K45IaYvHg`_dOZM)Sy63ve6hvv z1)yUy0P^?0*fb9UASvow`@mQCp^4`uNg&9uGcn1|&Nk+9SjOUl{-OWr@Hh0;_l(8q z{wNRKos+;6rV8ldy0Owz(}jF`W(JeRp&R{qi2rfmU!TJ;gp(Kmm5I1s5m_f-n#TRsj}B0%?E`vOzxB2#P=n*a3EfYETOrKoe*ICqM@{4K9Go;5xVgZi5G4 z1dM~{UdP6d+Yd3o?MrAqM0Kc|iV92owdyL5UC#5<>aVCa44|hpM4E zs0sQWIt5*Tu0n&*J!lk~f_{hI!w5`*sjxDv4V%CW*ah~3!{C*0BD@;TgA3v9a1~q+ zAA{TB3-ERLHar49hi4Ih5D^-ph8Q6X#0?2VqLBoIkE}zAkxHZUgRb+f=nat zP#6>iMMoK->`~sRLq)(kHo*Vn{;LcG6+edD1=7D>9j^O?D{Qg|tCDK{ym)H7&wDr6*;uGTJg8GHjVbnL{!cWyUB7MT6o-VNo_w8Yq`2<5Ub)hw4L3rj}5@qxMs0 zWMyP6Wy582WNT#4$d1qunl{acmP#w5ouJ*Jy_Zv#bCKi7ZIf$}8d zZdVy&)LYdbX%I9R8VMQ|8r>Q*nyQ)sn)#Z|n)kKvS`4iu ztvy=3T65Yu+7a4Yv^%sXb>ww?bn(=Yu(!=O6^iuTp>)p_Y^{w=i z^lS773}6Fm1Fpe-gF!>Ip{*g$u-szvGhed;vo5pW&GpS$<~8QGEXWp~7V9lKEnZq0SaK{6Sl+dwSOr*Z zvFf(^Xl-N7w{EeXveC4Ov)N}e%%C!Y7^RFWwrE>d+x51mZQt2h+X?JW*!^a2WS?Sx z)P8cQ&Qi|OhNWW;>JChYI)@QQx?`Nj^#uJBl~d&PK+RZLOLos~K(b5>qmrMN0})tOkySZ3_W zICNY@+|jrX%s^&6b2i>5eqa0y%Z;^%^_=a@u3%4b9605ii3Ep)@`TAmhs0fpQ%O!q zl}XcFH*PieWwLj2ZSq`7V9Mc?h17`D)-+sNT-qs~3@?S(ldh7UlRlVXkWrK|vf6I- z?$tAVKYn8-l({mqQ$Q8{O!WzMg`0(=S&msXS#Pt$vrpzo=kRj+a`kh!z=6$;c zwT88(J6|n-WB%w`m$h~4pmp)YIh_ z3ETV2tjiAU!0h1dxU-n=E9e!)6|Z;4?!H=SSy{V>ut&IOq{_dl zbFb#!9eY1iCsp6Bajj|Hr?hX|zPbJE{X++w546-O*Ot`2Kgd0Jx6Z4syT zu9enWavU5N9)I?I-1m1*_?_rJ$vD~agVqoG+9++s?NEDe`%Fht$4F;X=in*dQ{7$m zU2Q)a|9JSc+Uc4zvS-T963!N$T{xF_ZuWe}`RNOZ7sk3{yB}PPym+f8xTpV;-=!;; zJuhGEb?H5K#o@~7t9DmUU1MD9xNd#Dz0azz?I)|B+WM{g+Xrk0I&awC=o(x)cy`EX z=)z6+o0o6-+`4{y+3mqQ%kSJBju{@g%f35#FZJHb`&swrA8dGtepviS>QUumrN{L@ z>;2q1Vm)$Z)P1z?N$8UYW2~{~zhwUMVZ87u`Dx{Z>O|9|`Q+&->FRy-Sjp7DHs zy69KwU-!MxeeuI@&cF4|M9z%AfP?@5 z`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9J+u00v@9M??T@07(E7UUb%?00009a7bBm z000ie000ie0hKEb8vp0X60W}1kZuudR|;|%_cv$a*nV0zbe#TzK= zNgDd2gLCSm3!3Inj|RVz%t7zDWbXFnPVd7ITz&SrWF8LY!6hHX=+|8|_jQ+QOfzhD;a3tdM%E!vPXRW| z5J*5qY$XdI~uC$8a(IJ-KorZ>i)b*Z~;WmcmEDWyHiL zNn=CCi0xQZD(1Mh0um5`gxE-Q<2!)fyRgR+TN{nDRNFN;3&E2Z0T?8%meZX#S>h+K zvB`#|3%5#9RR!!y*j;Ty?C3A7Ni2m=E*NpUlJI{OaOzpmxa^#5L2bdCrfHg{X_}^K enx<)*|J5&12D_8GVvj%o0000 z@7W8q7D?=|U0J48Pqpe6yK8%H*FJyWp@R2MC)X~$fikX5jRFRCrSM5`6*0Bxq;W!H#BMCw6?0O%KnG-?Lu@6QaSx#N5OyN5 zv(b3g)qaNalswHDfQiKQ;y?G(OZ)=1Hoalx!rf9-wZKqfcv_R((EhdG0J#)CyI{n< uF}!+#GcS_H%Rc{0E(eDYLI@#*Grs}dEW48e0MS&XcY3~p)~x=Jbv3`rdl*4ENZu5)^OeI1;7 z90c7vrgR#*oH}xYMdzqO&k~6>ZH_l?Na`>L@g^ELnKZU6P~z!nGWadpAi*&43dhd! T=tKX3CNp@t`njxgN@xNA6R|Z; literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/grapes_splat.png b/mods_disabled/fruit_tools/textures/grapes_splat.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8364fa7125e850964c5a80a05fdd67bc002a94 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPtj}U`4-~J~D{s4t!GeaUuobz*YQ}arITm}Z`qSVBa z)D(sC%#sWRcTeAd6une-p!i)+7sn8b(^n^L{x{e)myM0SZgYVzz^RasW|CV$95lymp_Wr!rLv~T@f~AqG zjO>}E6L{A&=opaAv1+56ixT- zo2&cHc=gharR&bg6n%d{?J;t>H O6at>EelF{r5}E*Ii;+?Q literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/hoe_bean.png b/mods_disabled/fruit_tools/textures/hoe_bean.png new file mode 100644 index 0000000000000000000000000000000000000000..01932dd1738205fff0c97730efaf363d478a9c45 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPt55KsHh{-YD^+2J$o-U3d7N?UF7Kp7llk{VLrO{{m z!*y&NYC;A|#Zvxe|I!l@5>}+INKg2|CR%guzyX2QReZ}C4JLpTGBYzDE@^uy(3mgK z%%pzWpyuzV$%)sWUhi?K*8QCFtiEk>K)!DBkNmY-ALc*#z`13LW6OD?D<2Y-+%|7H zP~PUvxmwa_r;((DN+$<%$=T(3|57bV-!m&;Z1h-@Hiu1Mwd88XB^k#I8bZ!$uuWJj rna8km*24ono)7lV6q3~Jkz!y-d!6lQF15N4=n)1_S3j3^P6bHA;TOYO(=7Ub=92AuRNfvx@#XT4|4&c+cz>mT&8kyC?TjTse!&b5 z&u*jvIdPsYjv*44d;4zk9Z=w4`52*9apnL2TUnPQJbzuNyxqtvP^)k>P50}D&(mi1 zzBs7(u2+tMMS0TgGiwa`=lh0XQU88U1;r=|W{BDyd&ujIF1Xv@Ds Z#&hD#3zFP&3xPHr_IDUrsv)gceq zETr;*{DdDT4;(mfPH{!^Woexgb6#@CDSc#;0D>E~vF{%6GK(;q>Hh3l^TYnIhJ+FW YLrJ}+xAxLCA|SVVy85}Sb4q9e0LFJ=;s5{u literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/orange.png b/mods_disabled/fruit_tools/textures/orange.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9ec299c67a2690ce219a817b342436025ed1c5 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs|5qY1UIJ09F?t+Y|~PO z55+KtRTv*h;XIwp(om;+I8WqGHe*V+U1_`dqe9O2B^;0HSQ}&OcLKFDmIV0)GdMiE zkp|?Xd%8G=NL=pi^X6+X;BZ;Vu}#eS&i^fs_8aQWxw~f%k3jA5H>_ft=UF~G==1gE ziQ*Dj{R=D_tCnpKXw>XkDAS;5y4dvDO9s=H8IGcs2d|lxNIj_(SGY5mSH)c6`-~}5 hc3t0_x@>+Vp?wsOMq4~c)I$ztaD0e0sw5wQ{w;t literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/orange_splat.png b/mods_disabled/fruit_tools/textures/orange_splat.png new file mode 100644 index 0000000000000000000000000000000000000000..7a8db8aaca7d1424b6c5a977e460d354ede7ffdc GIT binary patch literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPtj}U_a%QyB%6+j``%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6_|fq^l>)5S5w;`G)@hW>{FL|XT6Ti>MQlxoO#Y~eA+89l3o zXYa0e5Ef4Nog?-5fl~M4!1VuZg$0U*f!qC5%q%8cVrbg-)Y8NAs#`~Add>T~=X1;7 zxBkC$?j@V`a_QvPQ#^Z=V&(4qv+NDJEmripAh(98+@9AUeRt#a^G`H=OBpI^=BwV# z4GbP{ zJYvPofsRKv)-qfcV91c|S6)45&VzTA3=6F0d2RmQ_LfcLbC5m%Jcb*hu7_^US!407 zL$I*V5F#()|BY_{J8YMry?edzJvrwYe9-uvqKEN2k8&C8Htv+wrx6zh6JJg9yL(Ca vz0%{2+R~DLxm0Qu_pS0iZg<%2-+DWS?N{oqUyR;$0~86Ku6{1-oD!M<+(geL literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/pick_corn.png b/mods_disabled/fruit_tools/textures/pick_corn.png new file mode 100644 index 0000000000000000000000000000000000000000..3932f13920cedd3fd17b52a067888efbe3cc3c93 GIT binary patch literal 479 zcmV<50U-W~P)!#v}Bxq?7r)a5BkU(g#(Qs)j8k*`O2u%)wi_q#9 zkQTwMK`SUk&=X2hOica_a)+ttY5m4`czE6)?+XLbj@JbdK|SDa*mP4sX{nh6B3 zakeQ^+b;lk+&j7r)u#avJ#Vn; zb#ebNZ0Q&U(!(XmeOaO{Z;^~ zKZfd$SwMjJiPK(3{R!%_NZv*OC_g4B*Oi`OT_JK|NVZnn-|-2r+~p{GXU$A2fYh}j zCW1l%O>C*(yj3Cp`f05RSXL7|3I#N=Cb!5xbuEa#mypa;Fd?eju&f;8Alc%_uMSO^ zX$5d;EDx7G4l;PK00-G6+D2#CB!0LeMjhL@n2#<^V>0&F{sRIqSFJUu*7y?y;0NMX Vo}2Uz3&{Wg002ovPDHLkV1kU&!Ycp( literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/pick_pickle.png b/mods_disabled/fruit_tools/textures/pick_pickle.png new file mode 100644 index 0000000000000000000000000000000000000000..68f5b934d016c4a9b1f25497527976a9bb3a191c GIT binary patch literal 628 zcmV-)0*n2LP)Y6*I*R}R03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00G!ZL_t(I%dL^YYtv91 z$3HJgv#w2RU}}d8SSLlcOA!Sba|jL(9t1sm^6o+K;6X1UqJoEwq4@VGI}b043I$8U zoD&+`B~6;-Jr7Yg+0rWR3qN>2c;CmRw+<~@wcGy^}t z5Ww~}^m<^LAOzIw5XWd64^Y}D(A#Gu^5qeuV1TZJl&IklY&$F8hi(@+cB18GO<88Z zH&179%OeUw{fyXkp;m)di%>V1%AM%Of}`e6B(%T6`X^7EyMP}0P_06_42}bZ0yqxE z*;Du;4>Ds9SbsNU<8%LyJ4>r56a)dZS}=PW`mfQne}Mof$>f_m2+M-``D}wT*O=G` zxqWp?ojqAmd0$>y+0AwN1%-X%UR) zX{6%+#WiO?N*!tP4+;*R>=+n0(J>(4!~dtr>Jlxkl@izF>koCTX`47fJM8@HAO9a8 z=Wmm>E;BHwsXSEh`CodQ@ppS8pgz=XI< zM}K^OAI}yX9DL~9xsM|M@)w=xH|E;?+UQ?0uS<^EW9FVI8E%FRGG_~zPh92kKehf| jO=88@w#JmRA&d;wo<$xCKA+8i-evG~^>bP0l+XkKiur+9 literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/raspberries.png b/mods_disabled/fruit_tools/textures/raspberries.png new file mode 100644 index 0000000000000000000000000000000000000000..ab96e1bf9b381610a90efeef0d7964808e413d9b GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ydu{YLn>}1CrGevVRa8t`9J@1 z@IU`)$7WBf`tN9RvhB?@u^;;*XE3i3bUAEr!l7wac(HMVX%o-Pg9jRt1bk$cKU3A= zNnllIRXD3)cfw&p+6;>`3TxO7h%~+6TfnGL-^|k}$x_UC?L&hmgXX;B3 zV_4a^lcUAZNp^|EGKQOBDbpK|JagRJ{*Y+`(+oueUIQsHyAwHU5*aS_$jv=bGh_9N eX+e%+3=F%)R;U`^(L4!sID@CFpUXO@geCwLQB*-bIP3Tt*JODV9u;*iNC|mRc1G~~y*cw^A{3{I?U{JglKsFpqwcKM%oknen`&m8 zd%t2>{yR9tbw=B|i0n>7rUhHm?C&4(=R3A9H^}R`gtBFNkXMVq4!N?WyN+zkw|Do_ qEIKE1c=0}u{3m~&o&B|={s8w{McvzB^^0>sF86fxb6Mw<&;$VES8Le- literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/resin_bottle.png b/mods_disabled/fruit_tools/textures/resin_bottle.png new file mode 100644 index 0000000000000000000000000000000000000000..5014127390ccf0e7dbe4ef8017d9837968775b46 GIT binary patch literal 425 zcmV;a0apHrP){@uOtIDWkM?g9T3I2Y*@9j7)Z=!WxJ<_ac7 z2L}+1L=X~qIKM7By&jh2DUJyM0FNb$O!W-kjV9JM4-lW7;QErUswJW)(8=cqmCYAl z8+;%oc8ENhUhm_>;Y*k<>G8D}qCJW`|Lxig$9&{b2J1#Eg6VMY`_6*{8duWUR zwR|4Qtvb4fh?Un>_7^IeL75DQh^O6Jh1S(9`Gv>@^-2qA&TPrKvULIC&!XX<<> TV#xsC00000NkvXXu0mjfLs+N3 literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/shovel_apple.png b/mods_disabled/fruit_tools/textures/shovel_apple.png new file mode 100644 index 0000000000000000000000000000000000000000..4e733ff6cf787ede7ccbb06fe8d8637a0668ab19 GIT binary patch literal 487 zcmVWZ)^Yn0dz@3 zK~y-)rIEcaLs1xqpZA>8_Tr-Pk+jjt(8Wi>W-}R$7DkJiKf^y^wMfJ)=0*%gB7%g9 zk7~7b>)vyZp`lcz!f!n1eV+5a?-72Hagbh!El>q@1@8S$y1^5W8h~IzKnoONs6qM! z%3TGEkTCGNpdk(PXvJj|vll}NQU!SZQLwI%N5|cqFg%;mjNmZ7&u!4);-$e(1T|2m z9o*E&hQ*Bv@r=NXmmuBm6PX0D(qxpv6CwK?aP5dyyI{k%7KG7MdwL0z9?7vBDmO-G zEh-4`Y3@Y*G{U5%?>@A}{ZgGmUq7KSXr(ckET;%nfh~uaPH=7&we0aSbV+9VAS8KT zCZ9^6wdS_;L@{(^6b3+d5>$?GLwTGx1!o%Ok84OHpdMLnu8R-GF}UWi9ltTRir9eI z&qH(w=ey0CZE&K&SQGCPiHBawUNFuV970l8pt`JfHBOxH@o;84N%y6*@0kWRW+B)_&* z&nYc3>WgByhFcb@P^LA*KO%;yrUu>B>Eey_d-KdT<6;(Ti3y*D-=zlg2UmQS{isq! zA}J7se39d&;-RnZZD5jex~?99%bgl*d06$VCX+A(-%c9RHvgA$Nd&*+0_$1gdUA!{l4eJrwts6KvsHg}8NA(lj%w1=TXdpK7nMUit zEMr!}R?i*r!FsE`Pxt8GS7uNxm1?DiGO>mVrIOZMGch@Yp4G^A15>830!>`<6?%%y z)7D|RV8Ui!yG(?Wl&Gal$~ZPQd$hegwjWTd*7H8sgEA^f+v%dqoc;Fut}-8}n>v-T z9eJCK%>*gMM;@QtUL=y&&MUSm+X;$d{=^o&@*|}GT5T``a4Q|7J$Hj$`fgq&p0h=1 zNOUJVi@w@%y;u)BGj$jI!^S#A-0_xWN_>K`q$Fuik#lo6j*XMF+2Pa%o5ZEaMcHKk z{(}ov9`lyE(E@|MVTYYPtqe~MOa#XZ2|C4;`O5(a>EZZ%yK}&O4Xb6ez@Vq!;bmV^ zxY~FB?!>l;nKOAZ`jDZ_005_~L+*T_SPbJoMl2`x6I?C~KrAN)piNAsnV4i*Fn}N3 WV?N#C@%7OF0000U1tMAsC~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_disabled/fruit_tools/textures/strawberry_splat.png b/mods_disabled/fruit_tools/textures/strawberry_splat.png new file mode 100644 index 0000000000000000000000000000000000000000..9bc02339d9c2a989992533fe5bfc7127ea6dac60 GIT binary patch literal 491 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPtj}U{Ao_v?54p2xoGbEzKIX^cyHLnE7WngeFN=+=qa)F34!XV|`r?+<4)=Y=-&F>6OOJ z^}I7f&xl?=t-sxW_TIiU+nBAZH}Wd8nXK!VH4Wa{weD4f{KnD=QM!`LPKjO??&Xf} zvhN!Y(*gu4W-i=_jL7hS?83{1OSQ{XE)7O>#ArHTpv7w=(DoDt~)5S4_<9c#} z1FH{XfK?h}i(svY6Z_jr)`>T2`PMw~`7&>LLSyl*=Xs5iJ%;Iuvu?I7QmEqMjdxCI mkt}PL{LQl9T29gdMuylIf@QDoeD4C9$>8bg=d#Wzp$P!6c}%VV literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/sword_chili.png b/mods_disabled/fruit_tools/textures/sword_chili.png new file mode 100644 index 0000000000000000000000000000000000000000..841ab376d1a864ac1a66776cc488a015ad9abff1 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uK)l4w_2@nfQ#!f4^Pn& z|9+r2V@Z%-FoVOh8)+a;lDE4HLkFv@2av;A;1OBOz`!jG!i)^F=12eq*-JcqUD+S< z@QbNwiq43R0t%UUx;Tb#Tu)ADU`P`<$gZU0aD;!t1!jeV{AyASEw&vSm_5B3I|LNc kco>B4@HsSbXYnvId=6yYa_CRr6`+0wPgg&ebxsLQ0RG1^{Qv*} literal 0 HcmV?d00001 diff --git a/mods_disabled/fruit_tools/textures/tomato.png b/mods_disabled/fruit_tools/textures/tomato.png new file mode 100644 index 0000000000000000000000000000000000000000..586aa56de584ab5f8b9eeb101b430fb075f9c9f9 GIT binary patch literal 488 zcmVP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv00043NklJ3R~Lh!4Iq!i`I%-K~U7Y=v|*PZ?k0!N_!Cu3@^!>nM|^4%>NrJiF7Lj_KN{c3WHmhurOFJ z8&t8_1)&c2W8D1;^E-!oTxo#$rHj4?(-uI@@CvI~WFYK7+`?5(QM(R(?Dv2U)<>xO z5Z3`}M!p0cX+ZEjx*<#yx%d!hV4elx=;>vbs_&uc$(A!J3^R%~wkKWFU8GbZ8()Nlj2>E@cM*00D1FL_t(I%iWUCE(1{* z#ZPZrGhtAFN`>0eg+y%h33vkW0up;G?;w$Q3Lz4akg%{3LkTuQBk^A`(&$_>)7-gJ zozFrdp`C^PR!ePC5J^WV37g