From c9e36c42d6baf81cbcb0d0848256ed95081eb473 Mon Sep 17 00:00:00 2001 From: sys4-fr Date: Sat, 20 Jan 2018 23:09:55 +0100 Subject: [PATCH] Update plantlife_modpack, moretrees and biome_lib as submodules --- .gitmodules | 16 +- mods/biome_lib | 1 + mods/biome_lib/API.txt | 579 -------------- mods/biome_lib/README.md | 30 - mods/biome_lib/depends.txt | 3 - mods/biome_lib/description.txt | 1 - mods/biome_lib/init.lua | 737 ------------------ mods/biome_lib/locale/de.txt | 5 - mods/biome_lib/locale/fr.txt | 5 - mods/biome_lib/locale/template.txt | 5 - mods/biome_lib/locale/tr.txt | 5 - mods/biome_lib/mod.conf | 1 - mods/farming | 2 +- mods/moretrees | 1 + mods/moretrees/.gitignore | 1 - mods/moretrees/LICENSE | 392 ---------- mods/moretrees/README.md | 11 - mods/moretrees/biome_defs.lua | 188 ----- mods/moretrees/crafts.lua | 154 ---- mods/moretrees/default_settings.txt | 68 -- mods/moretrees/depends.txt | 6 - mods/moretrees/description.txt | 1 - mods/moretrees/init.lua | 300 ------- mods/moretrees/locale/de.txt | 73 -- mods/moretrees/locale/template.txt | 73 -- mods/moretrees/mod.conf | 1 - mods/moretrees/node_defs.lua | 437 ----------- mods/moretrees/saplings.lua | 93 --- mods/moretrees/textures/moretrees_acorn.png | Bin 398 -> 0 bytes .../textures/moretrees_acorn_muffin.png | Bin 765 -> 0 bytes .../moretrees_acorn_muffin_batter.png | Bin 602 -> 0 bytes .../textures/moretrees_apple_tree_leaves.png | Bin 351 -> 0 bytes .../textures/moretrees_apple_tree_sapling.png | Bin 178 -> 0 bytes .../textures/moretrees_apple_tree_trunk.png | Bin 1066 -> 0 bytes .../moretrees_apple_tree_trunk_top.png | Bin 503 -> 0 bytes .../textures/moretrees_apple_tree_wood.png | Bin 464 -> 0 bytes .../textures/moretrees_beech_leaves.png | Bin 201 -> 0 bytes .../textures/moretrees_beech_sapling.png | Bin 177 -> 0 bytes .../textures/moretrees_beech_trunk.png | Bin 964 -> 0 bytes .../textures/moretrees_beech_trunk_top.png | Bin 926 -> 0 bytes .../textures/moretrees_beech_wood.png | Bin 170 -> 0 bytes .../textures/moretrees_birch_leaves.png | Bin 459 -> 0 bytes .../textures/moretrees_birch_sapling.png | Bin 204 -> 0 bytes .../textures/moretrees_birch_trunk.png | Bin 959 -> 0 bytes .../textures/moretrees_birch_trunk_top.png | Bin 811 -> 0 bytes .../textures/moretrees_birch_wood.png | Bin 1075 -> 0 bytes .../textures/moretrees_cedar_cone.png | Bin 315 -> 0 bytes .../textures/moretrees_cedar_leaves.png | Bin 205 -> 0 bytes .../textures/moretrees_cedar_nuts.png | Bin 369 -> 0 bytes .../textures/moretrees_cedar_sapling.png | Bin 202 -> 0 bytes .../textures/moretrees_cedar_trunk.png | Bin 1074 -> 0 bytes .../textures/moretrees_cedar_trunk_top.png | Bin 451 -> 0 bytes .../textures/moretrees_cedar_wood.png | Bin 648 -> 0 bytes mods/moretrees/textures/moretrees_coconut.png | Bin 963 -> 0 bytes .../textures/moretrees_coconut_milk.png | Bin 211 -> 0 bytes .../textures/moretrees_coconut_milk_inv.png | Bin 199 -> 0 bytes .../moretrees/textures/moretrees_fir_cone.png | Bin 227 -> 0 bytes .../textures/moretrees_fir_leaves.png | Bin 205 -> 0 bytes .../textures/moretrees_fir_leaves_bright.png | Bin 205 -> 0 bytes .../moretrees/textures/moretrees_fir_nuts.png | Bin 361 -> 0 bytes .../textures/moretrees_fir_sapling.png | Bin 161 -> 0 bytes .../textures/moretrees_fir_trunk.png | Bin 753 -> 0 bytes .../textures/moretrees_fir_trunk_top.png | Bin 924 -> 0 bytes .../moretrees/textures/moretrees_fir_wood.png | Bin 1039 -> 0 bytes .../moretrees_jungletree_leaves_green.png | Bin 201 -> 0 bytes .../moretrees_jungletree_leaves_red.png | Bin 201 -> 0 bytes .../moretrees_jungletree_leaves_yellow.png | Bin 201 -> 0 bytes .../textures/moretrees_oak_leaves.png | Bin 730 -> 0 bytes .../textures/moretrees_oak_sapling.png | Bin 172 -> 0 bytes .../textures/moretrees_oak_trunk.png | Bin 982 -> 0 bytes .../textures/moretrees_oak_trunk_top.png | Bin 519 -> 0 bytes .../moretrees/textures/moretrees_oak_wood.png | Bin 599 -> 0 bytes .../textures/moretrees_palm_leaves.png | Bin 902 -> 0 bytes .../textures/moretrees_palm_sapling.png | Bin 122 -> 0 bytes .../textures/moretrees_palm_trunk.png | Bin 295 -> 0 bytes .../textures/moretrees_palm_trunk_top.png | Bin 400 -> 0 bytes .../textures/moretrees_palm_wood.png | Bin 580 -> 0 bytes .../textures/moretrees_raw_coconut.png | Bin 466 -> 0 bytes .../textures/moretrees_rubber_tree_leaves.png | Bin 201 -> 0 bytes .../moretrees_rubber_tree_sapling.png | Bin 151 -> 0 bytes .../textures/moretrees_rubber_tree_trunk.png | Bin 693 -> 0 bytes .../moretrees_rubber_tree_trunk_empty.png | Bin 1091 -> 0 bytes .../moretrees_rubber_tree_trunk_top.png | Bin 534 -> 0 bytes .../textures/moretrees_rubber_tree_wood.png | Bin 435 -> 0 bytes .../textures/moretrees_sequoia_leaves.png | Bin 205 -> 0 bytes .../textures/moretrees_sequoia_sapling.png | Bin 199 -> 0 bytes .../textures/moretrees_sequoia_trunk.png | Bin 620 -> 0 bytes .../textures/moretrees_sequoia_trunk_top.png | Bin 594 -> 0 bytes .../textures/moretrees_sequoia_wood.png | Bin 1021 -> 0 bytes .../textures/moretrees_spruce_cone.png | Bin 478 -> 0 bytes .../textures/moretrees_spruce_leaves.png | Bin 205 -> 0 bytes .../textures/moretrees_spruce_nuts.png | Bin 365 -> 0 bytes .../textures/moretrees_spruce_sapling.png | Bin 151 -> 0 bytes .../textures/moretrees_spruce_trunk.png | Bin 753 -> 0 bytes .../textures/moretrees_spruce_trunk_top.png | Bin 414 -> 0 bytes .../textures/moretrees_spruce_wood.png | Bin 536 -> 0 bytes .../textures/moretrees_willow_leaves.png | Bin 409 -> 0 bytes .../textures/moretrees_willow_sapling.png | Bin 168 -> 0 bytes .../textures/moretrees_willow_trunk.png | Bin 620 -> 0 bytes .../textures/moretrees_willow_trunk_top.png | Bin 513 -> 0 bytes .../textures/moretrees_willow_wood.png | Bin 565 -> 0 bytes mods/moretrees/tree_biomes.txt | 37 - mods/moretrees/tree_models.lua | 246 ------ mods/plantlife_modpack | 1 + mods/plantlife_modpack/.gitignore | 1 - .../plantlife_modpack/3dmushrooms/depends.txt | 2 - mods/plantlife_modpack/3dmushrooms/init.lua | 46 -- .../3dmushrooms/models/3dmushrooms.obj | 329 -------- .../textures/3dmushrooms_brown.png | Bin 2747 -> 0 bytes .../textures/3dmushrooms_brown_inv.png | Bin 4166 -> 0 bytes .../3dmushrooms/textures/3dmushrooms_red.png | Bin 1643 -> 0 bytes .../textures/3dmushrooms_red_inv.png | Bin 5005 -> 0 bytes mods/plantlife_modpack/LICENSE | 336 -------- mods/plantlife_modpack/README | 72 -- .../plantlife_modpack/along_shore/depends.txt | 3 - mods/plantlife_modpack/along_shore/init.lua | 9 - .../textures/along_shore_seaweed_1Darker.png | Bin 227 -> 0 bytes .../along_shore/textures/credit_textures.txt | 30 - .../along_shore/textures/old/LillyPad3x16.png | Bin 439 -> 0 bytes .../textures/old/MultiLilly16x.png | Bin 305 -> 0 bytes .../textures/old/along_shore_empty.png | Bin 74 -> 0 bytes .../textures/old/along_shore_lilypads_1.png | Bin 305 -> 0 bytes .../textures/old/along_shore_lilypads_2.png | Bin 382 -> 0 bytes .../textures/old/along_shore_lilypads_3.png | Bin 314 -> 0 bytes .../textures/old/along_shore_lilypads_4.png | Bin 208 -> 0 bytes .../textures/old/along_shore_pondscum_1.png | Bin 543 -> 0 bytes .../textures/old/along_shore_seaweed_1.png | Bin 213 -> 0 bytes .../textures/old/along_shore_seaweed_2.png | Bin 217 -> 0 bytes .../textures/old/along_shore_seaweed_3.png | Bin 215 -> 0 bytes .../textures/old/along_shore_seaweed_4.png | Bin 178 -> 0 bytes .../textures/old/flowers_seaweed.png | Bin 213 -> 0 bytes .../textures/old/flowers_waterlily.png | Bin 404 -> 0 bytes .../textures/old/flowers_waterlily_22.5.png | Bin 429 -> 0 bytes .../textures/old/flowers_waterlily_45.png | Bin 424 -> 0 bytes .../textures/old/flowers_waterlily_67.5.png | Bin 427 -> 0 bytes .../along_shore/textures/old/lillyPad5x16.png | Bin 308 -> 0 bytes .../textures/old/lillypad3Flower16x.png | Bin 411 -> 0 bytes .../along_shore/textures/old/pondscum16xc.png | Bin 543 -> 0 bytes mods/plantlife_modpack/bushes/depends.txt | 4 - mods/plantlife_modpack/bushes/init.lua | 258 ------ .../textures/bushes_branches_center_1.png | Bin 305 -> 0 bytes .../textures/bushes_branches_center_2.png | Bin 305 -> 0 bytes .../textures/bushes_branches_left_1.png | Bin 577 -> 0 bytes .../textures/bushes_branches_left_2.png | Bin 598 -> 0 bytes .../textures/bushes_branches_right_1.png | Bin 592 -> 0 bytes .../textures/bushes_branches_right_2.png | Bin 632 -> 0 bytes .../bushes/textures/bushes_leaves_1.png | Bin 205 -> 0 bytes .../bushes/textures/bushes_leaves_2.png | Bin 205 -> 0 bytes .../textures/bushes_youngtree2trunk.png | Bin 1074 -> 0 bytes .../textures/bushes_youngtree2trunk_inv.png | Bin 872 -> 0 bytes .../textures/old & unused/BlockBranch1.png | Bin 70150 -> 0 bytes .../textures/old & unused/BlockBranch1L.png | Bin 32475 -> 0 bytes .../textures/old & unused/BlockBranch1R.png | Bin 38289 -> 0 bytes .../textures/old & unused/BushBranches1.png | Bin 48878 -> 0 bytes .../textures/old & unused/BushBranches1sm.png | Bin 609 -> 0 bytes .../old & unused/BushBranches1sm2.png | Bin 620 -> 0 bytes .../old & unused/BushBranches1sm3.png | Bin 396 -> 0 bytes .../old & unused/BushBranches1sm4.png | Bin 540 -> 0 bytes .../old & unused/BushBranchesCenter.png | Bin 285 -> 0 bytes .../old & unused/BushBranchesSide1.png | Bin 657 -> 0 bytes .../old & unused/BushBranchesSide2.png | Bin 693 -> 0 bytes .../bushes/textures/old & unused/blank.png | Bin 83 -> 0 bytes .../old & unused/moretrees_pine_leaves3.png | Bin 525 -> 0 bytes .../bushes_classic/cooking.lua | 130 --- .../bushes_classic/depends.txt | 3 - .../bushes_classic/image_credits.txt | 5 - .../plantlife_modpack/bushes_classic/init.lua | 59 -- .../bushes_classic/locale/de.txt | 43 - .../bushes_classic/locale/fr.txt | 43 - .../bushes_classic/locale/template.txt | 43 - .../bushes_classic/locale/tr.txt | 44 -- .../models/bushes_basket_empty.obj | 46 -- .../models/bushes_basket_full.obj | 330 -------- .../bushes_classic/models/bushes_bush.obj | 329 -------- .../bushes_classic/nodes.lua | 214 ----- .../bushes_classic/textures/bushes_basket.png | Bin 1298 -> 0 bytes .../textures/bushes_basket_pie_blackberry.png | Bin 2389 -> 0 bytes .../textures/bushes_basket_pie_blueberry.png | Bin 2405 -> 0 bytes .../textures/bushes_basket_pie_gooseberry.png | Bin 2431 -> 0 bytes .../bushes_basket_pie_mixed_berry.png | Bin 2688 -> 0 bytes .../textures/bushes_basket_pie_raspberry.png | Bin 2409 -> 0 bytes .../textures/bushes_basket_pie_strawberry.png | Bin 2386 -> 0 bytes .../textures/bushes_blackberry.png | Bin 1133 -> 0 bytes .../textures/bushes_blackberry_pie_cooked.png | Bin 601 -> 0 bytes .../textures/bushes_blackberry_pie_raw.png | Bin 612 -> 0 bytes .../textures/bushes_blackberry_pie_slice.png | Bin 341 -> 0 bytes .../textures/bushes_blueberry.png | Bin 1589 -> 0 bytes .../textures/bushes_blueberry_pie_cooked.png | Bin 602 -> 0 bytes .../textures/bushes_blueberry_pie_raw.png | Bin 606 -> 0 bytes .../textures/bushes_blueberry_pie_slice.png | Bin 347 -> 0 bytes .../textures/bushes_bush_blackberry.png | Bin 6462 -> 0 bytes .../textures/bushes_bush_blueberry.png | Bin 6518 -> 0 bytes .../textures/bushes_bush_fruitless.png | Bin 6419 -> 0 bytes .../textures/bushes_bush_gooseberry.png | Bin 6600 -> 0 bytes .../textures/bushes_bush_raspberry.png | Bin 6565 -> 0 bytes .../textures/bushes_bush_strawberry.png | Bin 6511 -> 0 bytes .../textures/bushes_gooseberry.png | Bin 979 -> 0 bytes .../textures/bushes_gooseberry_pie_cooked.png | Bin 607 -> 0 bytes .../textures/bushes_gooseberry_pie_raw.png | Bin 597 -> 0 bytes .../textures/bushes_gooseberry_pie_slice.png | Bin 348 -> 0 bytes .../bushes_mixed_berry_pie_cooked.png | Bin 565 -> 0 bytes .../textures/bushes_mixed_berry_pie_raw.png | Bin 585 -> 0 bytes .../textures/bushes_mixed_berry_pie_slice.png | Bin 337 -> 0 bytes .../textures/bushes_raspberry.png | Bin 1307 -> 0 bytes .../textures/bushes_raspberry_pie_cooked.png | Bin 613 -> 0 bytes .../textures/bushes_raspberry_pie_raw.png | Bin 610 -> 0 bytes .../textures/bushes_raspberry_pie_slice.png | Bin 352 -> 0 bytes .../textures/bushes_strawberry.png | Bin 1961 -> 0 bytes .../textures/bushes_strawberry_pie_cooked.png | Bin 577 -> 0 bytes .../textures/bushes_strawberry_pie_raw.png | Bin 606 -> 0 bytes .../textures/bushes_strawberry_pie_slice.png | Bin 339 -> 0 bytes .../bushes_classic/textures/bushes_sugar.png | Bin 2013 -> 0 bytes mods/plantlife_modpack/cavestuff/depends.txt | 3 - mods/plantlife_modpack/cavestuff/init.lua | 12 - mods/plantlife_modpack/cavestuff/mapgen.lua | 52 -- .../cavestuff/models/cavestuff_pebble.obj | 279 ------- mods/plantlife_modpack/cavestuff/nodes.lua | 145 ---- .../textures/undergrowth_desert_pebble.png | Bin 303 -> 0 bytes .../cavestuff/textures/undergrowth_pebble.png | Bin 362 -> 0 bytes mods/plantlife_modpack/copyright.txt | 10 - mods/plantlife_modpack/dryplants/crafting.lua | 360 --------- mods/plantlife_modpack/dryplants/depends.txt | 3 - mods/plantlife_modpack/dryplants/init.lua | 203 ----- mods/plantlife_modpack/dryplants/juncus.lua | 133 ---- .../dryplants/meadowvariation.lua | 26 - .../dryplants/models/plantlike.obj | 28 - .../plantlife_modpack/dryplants/moregrass.lua | 33 - mods/plantlife_modpack/dryplants/reed.lua | 380 --------- mods/plantlife_modpack/dryplants/reedmace.lua | 411 ---------- mods/plantlife_modpack/dryplants/settings.txt | 52 -- .../dryplants/textures/default_grass_1.png | Bin 212 -> 0 bytes .../dryplants/textures/default_grass_2.png | Bin 315 -> 0 bytes .../dryplants/textures/default_grass_3.png | Bin 428 -> 0 bytes .../dryplants/textures/default_grass_4.png | Bin 525 -> 0 bytes .../dryplants/textures/default_grass_5.png | Bin 611 -> 0 bytes .../dryplants/textures/dryplants_grass.png | Bin 486 -> 0 bytes .../textures/dryplants_grass_short.png | Bin 771 -> 0 bytes .../textures/dryplants_grass_short_side.png | Bin 396 -> 0 bytes .../dryplants/textures/dryplants_hay.png | Bin 512 -> 0 bytes .../textures/dryplants_juncus_02.png | Bin 670 -> 0 bytes .../textures/dryplants_juncus_03.png | Bin 720 -> 0 bytes .../textures/dryplants_juncus_inv.png | Bin 600 -> 0 bytes .../dryplants/textures/dryplants_reed.png | Bin 685 -> 0 bytes .../dryplants/textures/dryplants_reed_wet.png | Bin 672 -> 0 bytes .../dryplants/textures/dryplants_reedmace.png | Bin 615 -> 0 bytes .../textures/dryplants_reedmace_bottom.png | Bin 708 -> 0 bytes .../textures/dryplants_reedmace_height_2.png | Bin 1220 -> 0 bytes .../textures/dryplants_reedmace_height_3.png | Bin 1848 -> 0 bytes .../dryplants_reedmace_height_3_spikes.png | Bin 2063 -> 0 bytes .../textures/dryplants_reedmace_sapling.png | Bin 455 -> 0 bytes .../textures/dryplants_reedmace_spikes.png | Bin 491 -> 0 bytes .../textures/dryplants_reedmace_top.png | Bin 329 -> 0 bytes .../textures/dryplants_reedmace_water.png | Bin 588 -> 0 bytes .../dryplants/textures/dryplants_sickle.png | Bin 146 -> 0 bytes .../textures/not_in_use/big_pic_8.png | Bin 1960 -> 0 bytes .../textures/not_in_use/big_pic_9.png | Bin 2178 -> 0 bytes .../not_in_use/dryplants_cattailsG_m2.png | Bin 1471 -> 0 bytes .../not_in_use/dryplants_juncus_02_left.png | Bin 352 -> 0 bytes .../not_in_use/dryplants_juncus_02_right.png | Bin 393 -> 0 bytes .../not_in_use/dryplants_juncus_02_whole2.png | Bin 621 -> 0 bytes .../not_in_use/dryplants_juncus_03_left.png | Bin 414 -> 0 bytes .../not_in_use/dryplants_juncus_03_right.png | Bin 387 -> 0 bytes .../not_in_use/dryplants_juncus_03_whole2.png | Bin 665 -> 0 bytes .../not_in_use/dryplants_reedmace_01.png | Bin 362 -> 0 bytes .../not_in_use/dryplants_reedmace_02.png | Bin 708 -> 0 bytes .../not_in_use/dryplants_reedmace_03.png | Bin 1148 -> 0 bytes .../not_in_use/dryplants_reedmace_04.png | Bin 1329 -> 0 bytes .../dryplants_reedmace_bottom_left.png | Bin 122 -> 0 bytes .../dryplants_reedmace_bottom_right.png | Bin 189 -> 0 bytes .../not_in_use/dryplants_reedmace_left.png | Bin 185 -> 0 bytes .../not_in_use/dryplants_reedmace_right.png | Bin 196 -> 0 bytes .../dryplants_reedmace_top_left.png | Bin 102 -> 0 bytes .../dryplants_reedmace_top_right.png | Bin 147 -> 0 bytes .../textures/not_in_use/reedmace2.png | Bin 2328 -> 0 bytes .../textures/not_in_use/reedmace3.png | Bin 2828 -> 0 bytes .../textures/not_in_use/reedmace4.png | Bin 2914 -> 0 bytes .../textures/not_in_use/reedtest.png | Bin 333 -> 0 bytes .../textures/not_in_use/texturing.png | Bin 2886 -> 0 bytes .../old/dryplants_grass_short_old3.png | Bin 823 -> 0 bytes .../old/dryplants_grass_short_old4.png | Bin 335 -> 0 bytes .../old/dryplants_juncus_02_left_old.png | Bin 371 -> 0 bytes .../old/dryplants_juncus_02_right_old.png | Bin 389 -> 0 bytes .../old/dryplants_juncus_03_left_old.png | Bin 414 -> 0 bytes .../old/dryplants_juncus_03_right_old.png | Bin 400 -> 0 bytes .../dryplants_reedmace_bottom_left_old2.png | Bin 143 -> 0 bytes .../old/dryplants_reedmace_bottom_old4.png | Bin 734 -> 0 bytes .../dryplants_reedmace_bottom_right_old2.png | Bin 186 -> 0 bytes .../old/dryplants_reedmace_left_old2.png | Bin 191 -> 0 bytes .../textures/old/dryplants_reedmace_old8.png | Bin 698 -> 0 bytes .../old/dryplants_reedmace_right_old2.png | Bin 200 -> 0 bytes .../old/dryplants_reedmace_spikes_old3.png | Bin 556 -> 0 bytes .../old/dryplants_reedmace_top_left_old2.png | Bin 99 -> 0 bytes .../old/dryplants_reedmace_top_old3.png | Bin 404 -> 0 bytes .../old/dryplants_reedmace_top_right_old2.png | Bin 120 -> 0 bytes .../old/dryplants_reedmace_water_old2.png | Bin 569 -> 0 bytes mods/plantlife_modpack/ferns/crafting.lua | 104 --- mods/plantlife_modpack/ferns/depends.txt | 2 - mods/plantlife_modpack/ferns/fern.lua | 196 ----- .../plantlife_modpack/ferns/gianttreefern.lua | 335 -------- mods/plantlife_modpack/ferns/horsetail.lua | 156 ---- mods/plantlife_modpack/ferns/init.lua | 69 -- mods/plantlife_modpack/ferns/settings.lua | 43 - .../ferns/textures/ferns_5.png | Bin 550 -> 0 bytes .../ferns/textures/ferns_6.png | Bin 666 -> 0 bytes .../ferns/textures/ferns_7.png | Bin 669 -> 0 bytes .../ferns/textures/ferns_8.png | Bin 510 -> 0 bytes .../ferns/textures/ferns_fern.png | Bin 362 -> 0 bytes .../ferns/textures/ferns_fern_big.png | Bin 1141 -> 0 bytes .../ferns/textures/ferns_fern_mid.png | Bin 699 -> 0 bytes .../ferns/textures/ferns_fern_tree.png | Bin 1312 -> 0 bytes .../ferns/textures/ferns_fern_tree_giant.png | Bin 3004 -> 0 bytes .../ferns/textures/ferns_fern_tree_inv.png | Bin 391 -> 0 bytes .../ferns/textures/ferns_fern_tree_tl.png | Bin 264 -> 0 bytes .../ferns/textures/ferns_fern_tree_tr.png | Bin 256 -> 0 bytes .../ferns/textures/ferns_fern_trunk.png | Bin 765 -> 0 bytes .../ferns/textures/ferns_fern_trunk_big.png | Bin 684 -> 0 bytes .../textures/ferns_fern_trunk_big_top.png | Bin 398 -> 0 bytes .../ferns/textures/ferns_fern_trunk_top.png | Bin 233 -> 0 bytes .../ferns/textures/ferns_ferntuber.png | Bin 438 -> 0 bytes .../textures/ferns_ferntuber_roasted.png | Bin 428 -> 0 bytes .../ferns/textures/ferns_fiddlehead.png | Bin 327 -> 0 bytes .../textures/ferns_fiddlehead_roasted.png | Bin 521 -> 0 bytes .../ferns/textures/ferns_horsetail_01.png | Bin 150 -> 0 bytes .../ferns/textures/ferns_horsetail_02.png | Bin 166 -> 0 bytes .../ferns/textures/ferns_horsetail_03.png | Bin 199 -> 0 bytes .../ferns/textures/ferns_horsetail_04.png | Bin 224 -> 0 bytes .../textures/ferns_sapling_tree_fern.png | Bin 168 -> 0 bytes .../ferns_sapling_tree_fern_giant.png | Bin 224 -> 0 bytes .../textures/ferns_tree_fern_leave_big.png | Bin 560 -> 0 bytes .../ferns_tree_fern_leave_big_cross.png | Bin 724 -> 0 bytes .../ferns_tree_fern_leave_big_end.png | Bin 456 -> 0 bytes .../not_in_use/archaeplantae_horsetails.png | Bin 308 -> 0 bytes .../textures/not_in_use/big picture 3.png | Bin 1951 -> 0 bytes .../not_in_use/ferns_fern_big_left.png | Bin 640 -> 0 bytes .../not_in_use/ferns_fern_big_right.png | Bin 623 -> 0 bytes .../not_in_use/ferns_fern_mid_left.png | Bin 393 -> 0 bytes .../not_in_use/ferns_fern_mid_right.png | Bin 414 -> 0 bytes .../not_in_use/ferns_fern_tree_bl.png | Bin 554 -> 0 bytes .../not_in_use/ferns_fern_tree_br.png | Bin 544 -> 0 bytes .../not_in_use/ferns_fern_trunk_big_crown.png | Bin 681 -> 0 bytes .../textures/old/archaeplantae_fern_old4.png | Bin 368 -> 0 bytes .../ferns/textures/old/comb.png | Bin 112 -> 0 bytes .../ferns/textures/old/ferns_5_old.png | Bin 461 -> 0 bytes .../ferns/textures/old/ferns_6_old.png | Bin 700 -> 0 bytes .../ferns/textures/old/ferns_7_old.png | Bin 677 -> 0 bytes .../ferns/textures/old/ferns_fern_big_old.png | Bin 1135 -> 0 bytes .../ferns/textures/old/ferns_fern_mid_old.png | Bin 664 -> 0 bytes .../textures/old/ferns_fern_tree_old.png | Bin 1283 -> 0 bytes .../old/ferns_fern_trunk_big_old2.png | Bin 669 -> 0 bytes .../old/ferns_fern_trunk_big_top_old.png | Bin 814 -> 0 bytes .../old/ferns_fern_trunk_big_top_old2.png | Bin 714 -> 0 bytes .../textures/old/ferns_fern_trunk_top_old.png | Bin 230 -> 0 bytes .../textures/old/ferns_horsetail_01_old2.png | Bin 177 -> 0 bytes .../textures/old/ferns_horsetail_02_old2.png | Bin 204 -> 0 bytes .../textures/old/ferns_horsetail_03_old2.png | Bin 251 -> 0 bytes .../textures/old/ferns_horsetail_04_old2.png | Bin 279 -> 0 bytes .../ferns_tree_fern_leave_big_cross_old.png | Bin 712 -> 0 bytes .../old/ferns_tree_fern_leave_big_end_old.png | Bin 457 -> 0 bytes .../old/ferns_tree_fern_leave_big_old.png | Bin 518 -> 0 bytes mods/plantlife_modpack/ferns/treefern.lua | 227 ------ .../flowers_plus/depends.txt | 2 - .../flowers_plus/flowers-changelog.txt | 24 - mods/plantlife_modpack/flowers_plus/init.lua | 479 ------------ .../flowers_plus/locale/de.txt | 13 - .../flowers_plus/locale/fr.txt | 13 - .../flowers_plus/locale/template.txt | 13 - .../flowers_plus/models/flowers_sunflower.obj | 73 -- .../flowers_plus/textures/flowers_seaweed.png | Bin 227 -> 0 bytes .../textures/flowers_seaweedLight.png | Bin 213 -> 0 bytes .../textures/flowers_seaweed_2.png | Bin 217 -> 0 bytes .../textures/flowers_seaweed_3.png | Bin 215 -> 0 bytes .../textures/flowers_seaweed_4.png | Bin 178 -> 0 bytes .../textures/flowers_sunflower.png | Bin 355 -> 0 bytes .../textures/flowers_sunflower_inv.png | Bin 217 -> 0 bytes .../textures/flowers_waterlily.png | Bin 412 -> 0 bytes .../textures/flowers_waterlily_22.5.png | Bin 409 -> 0 bytes .../textures/flowers_waterlily_45.png | Bin 421 -> 0 bytes .../textures/flowers_waterlily_67.5.png | Bin 435 -> 0 bytes .../textures/flowers_waterlily_small_1.png | Bin 468 -> 0 bytes .../textures/flowers_waterlily_small_2.png | Bin 472 -> 0 bytes .../textures/flowers_waterlily_small_3.png | Bin 422 -> 0 bytes .../textures/flowers_waterlily_small_4.png | Bin 219 -> 0 bytes .../flowers_plus/textures/tr.txt | 14 - mods/plantlife_modpack/junglegrass/init.lua | 3 - mods/plantlife_modpack/modpack.txt | 0 mods/plantlife_modpack/molehills/depends.txt | 2 - mods/plantlife_modpack/molehills/init.lua | 91 --- .../molehills/models/molehill_molehill.obj | 197 ----- .../molehills/molehills_settings.txt | 6 - .../molehills/textures/molehills_dirt.png | Bin 806 -> 0 bytes .../molehills/textures/molehills_side.png | Bin 308 -> 0 bytes .../textures/old & unused/molehill_side.png | Bin 110 -> 0 bytes .../textures/old & unused/molehill_top.png | Bin 162 -> 0 bytes .../nature_classic/blossom.lua | 75 -- .../nature_classic/config.lua | 6 - .../nature_classic/depends.txt | 2 - .../nature_classic/global_function.lua | 82 -- .../plantlife_modpack/nature_classic/init.lua | 41 - .../textures/nature_blossom.png | Bin 115 -> 0 bytes mods/plantlife_modpack/poisonivy/depends.txt | 2 - mods/plantlife_modpack/poisonivy/init.lua | 103 --- .../plantlife_modpack/poisonivy/locale/de.txt | 7 - .../plantlife_modpack/poisonivy/locale/fr.txt | 7 - .../poisonivy/locale/template.txt | 7 - .../plantlife_modpack/poisonivy/locale/tr.txt | 7 - .../poisonivy/textures/poisonivy_climbing.png | Bin 227 -> 0 bytes .../poisonivy/textures/poisonivy_seedling.png | Bin 179 -> 0 bytes .../textures/poisonivy_sproutling.png | Bin 237 -> 0 bytes mods/plantlife_modpack/trunks/crafting.lua | 133 ---- mods/plantlife_modpack/trunks/depends.txt | 6 - mods/plantlife_modpack/trunks/generating.lua | 554 ------------- mods/plantlife_modpack/trunks/init.lua | 17 - mods/plantlife_modpack/trunks/nodes.lua | 368 --------- .../trunks/textures/credit_textures.txt | 34 - .../textures/old & unused/comboSticks.png | Bin 228 -> 0 bytes .../textures/old & unused/comboSticks_2.png | Bin 359 -> 0 bytes .../old & unused/trunks_root_mask_old.png | Bin 135 -> 0 bytes .../textures/old & unused/trunks_twig_1e.png | Bin 131 -> 0 bytes .../textures/old & unused/trunks_twig_1n.png | Bin 147 -> 0 bytes .../textures/old & unused/trunks_twig_2n.png | Bin 142 -> 0 bytes .../textures/old & unused/trunks_twig_3n.png | Bin 131 -> 0 bytes .../textures/old & unused/trunks_twig_4n.png | Bin 152 -> 0 bytes .../textures/old & unused/trunks_twig_5-8.png | Bin 161 -> 0 bytes .../old & unused/trunks_twig_9-12.png | Bin 197 -> 0 bytes .../trunks/textures/trunks_moss.png | Bin 192 -> 0 bytes .../trunks/textures/trunks_moss_fungus.png | Bin 221 -> 0 bytes .../trunks/textures/trunks_root_mask.png | Bin 191 -> 0 bytes .../trunks/textures/trunks_twig_1.png | Bin 131 -> 0 bytes .../trunks/textures/trunks_twig_10.png | Bin 149 -> 0 bytes .../trunks/textures/trunks_twig_11.png | Bin 122 -> 0 bytes .../trunks/textures/trunks_twig_12.png | Bin 115 -> 0 bytes .../trunks/textures/trunks_twig_13.png | Bin 105 -> 0 bytes .../trunks/textures/trunks_twig_2.png | Bin 141 -> 0 bytes .../trunks/textures/trunks_twig_3.png | Bin 136 -> 0 bytes .../trunks/textures/trunks_twig_4.png | Bin 126 -> 0 bytes .../trunks/textures/trunks_twig_5.png | Bin 110 -> 0 bytes .../trunks/textures/trunks_twig_6.png | Bin 74 -> 0 bytes .../trunks/textures/trunks_twig_7.png | Bin 104 -> 0 bytes .../trunks/textures/trunks_twig_8.png | Bin 118 -> 0 bytes .../trunks/textures/trunks_twig_9.png | Bin 110 -> 0 bytes .../trunks/textures/trunks_twigs.png | Bin 759 -> 0 bytes .../trunks/textures/trunks_twigs_corner.png | Bin 641 -> 0 bytes .../trunks/textures/trunks_twigs_top.png | Bin 471 -> 0 bytes .../trunks/trunks_settings.txt | 70 -- mods/plantlife_modpack/vines/LICENSE.md | 4 - mods/plantlife_modpack/vines/README.md | 56 -- mods/plantlife_modpack/vines/aliases.lua | 11 - mods/plantlife_modpack/vines/crafts.lua | 14 - mods/plantlife_modpack/vines/depends.txt | 3 - mods/plantlife_modpack/vines/functions.lua | 132 ---- mods/plantlife_modpack/vines/init.lua | 14 - mods/plantlife_modpack/vines/nodes.lua | 83 -- mods/plantlife_modpack/vines/recipes.lua | 13 - mods/plantlife_modpack/vines/shear.lua | 15 - .../vines/textures/vines_item.png | Bin 167 -> 0 bytes .../vines/textures/vines_jungle_end.png | Bin 220 -> 0 bytes .../vines/textures/vines_jungle_middle.png | Bin 212 -> 0 bytes .../vines/textures/vines_root_end.png | Bin 162 -> 0 bytes .../vines/textures/vines_root_middle.png | Bin 201 -> 0 bytes .../vines/textures/vines_rope.png | Bin 106 -> 0 bytes .../vines/textures/vines_rope_end.png | Bin 118 -> 0 bytes .../vines/textures/vines_shears.png | Bin 186 -> 0 bytes .../vines/textures/vines_side_end.png | Bin 179 -> 0 bytes .../vines/textures/vines_side_middle.png | Bin 225 -> 0 bytes .../vines/textures/vines_vine_end.png | Bin 202 -> 0 bytes .../vines/textures/vines_vine_middle.png | Bin 183 -> 0 bytes .../vines/textures/vines_willow_end.png | Bin 171 -> 0 bytes .../vines/textures/vines_willow_middle.png | Bin 196 -> 0 bytes mods/plantlife_modpack/vines/vines.lua | 104 --- mods/plantlife_modpack/woodsoils/depends.txt | 7 - .../woodsoils/generating.lua | 151 ---- mods/plantlife_modpack/woodsoils/init.lua | 29 - mods/plantlife_modpack/woodsoils/nodes.lua | 79 -- .../woodsoils/textures/credit_textures.txt | 16 - .../textures/not in use/woodsoils.png | Bin 110 -> 0 bytes .../woodsoils/textures/woodsoils_ground.png | Bin 693 -> 0 bytes .../textures/woodsoils_ground_cover.png | Bin 775 -> 0 bytes .../textures/woodsoils_ground_cover2.png | Bin 684 -> 0 bytes .../textures/woodsoils_ground_cover_side.png | Bin 353 -> 0 bytes .../textures/woodsoils_ground_cover_side2.png | Bin 325 -> 0 bytes .../textures/woodsoils_ground_side.png | Bin 368 -> 0 bytes mods/plantlife_modpack/youngtrees/depends.txt | 2 - mods/plantlife_modpack/youngtrees/init.lua | 146 ---- .../youngtrees/textures/bamboo.png | Bin 112 -> 0 bytes .../youngtrees/textures/unused/sapling.png | Bin 13436 -> 0 bytes .../youngtrees/textures/unused/sapling16x.png | Bin 1020 -> 0 bytes .../youngtrees/textures/youngtree16xa.png | Bin 420 -> 0 bytes .../youngtrees/textures/youngtree16xb.png | Bin 314 -> 0 bytes .../youngtrees/textures/youngtree16xc.png | Bin 142 -> 0 bytes .../youngtrees/textures/youngtree2branch.png | Bin 119 -> 0 bytes worlds/minetestforfun/world.mt | 1 + 491 files changed, 18 insertions(+), 12427 deletions(-) create mode 160000 mods/biome_lib delete mode 100755 mods/biome_lib/API.txt delete mode 100755 mods/biome_lib/README.md delete mode 100755 mods/biome_lib/depends.txt delete mode 100644 mods/biome_lib/description.txt delete mode 100755 mods/biome_lib/init.lua delete mode 100755 mods/biome_lib/locale/de.txt delete mode 100755 mods/biome_lib/locale/fr.txt delete mode 100755 mods/biome_lib/locale/template.txt delete mode 100755 mods/biome_lib/locale/tr.txt delete mode 100644 mods/biome_lib/mod.conf create mode 160000 mods/moretrees delete mode 100755 mods/moretrees/.gitignore delete mode 100755 mods/moretrees/LICENSE delete mode 100755 mods/moretrees/README.md delete mode 100755 mods/moretrees/biome_defs.lua delete mode 100755 mods/moretrees/crafts.lua delete mode 100755 mods/moretrees/default_settings.txt delete mode 100755 mods/moretrees/depends.txt delete mode 100644 mods/moretrees/description.txt delete mode 100755 mods/moretrees/init.lua delete mode 100755 mods/moretrees/locale/de.txt delete mode 100755 mods/moretrees/locale/template.txt delete mode 100644 mods/moretrees/mod.conf delete mode 100755 mods/moretrees/node_defs.lua delete mode 100755 mods/moretrees/saplings.lua delete mode 100755 mods/moretrees/textures/moretrees_acorn.png delete mode 100755 mods/moretrees/textures/moretrees_acorn_muffin.png delete mode 100755 mods/moretrees/textures/moretrees_acorn_muffin_batter.png delete mode 100755 mods/moretrees/textures/moretrees_apple_tree_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_apple_tree_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_apple_tree_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_apple_tree_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_apple_tree_wood.png delete mode 100755 mods/moretrees/textures/moretrees_beech_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_beech_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_beech_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_beech_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_beech_wood.png delete mode 100755 mods/moretrees/textures/moretrees_birch_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_birch_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_birch_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_birch_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_birch_wood.png delete mode 100644 mods/moretrees/textures/moretrees_cedar_cone.png delete mode 100644 mods/moretrees/textures/moretrees_cedar_leaves.png delete mode 100644 mods/moretrees/textures/moretrees_cedar_nuts.png delete mode 100644 mods/moretrees/textures/moretrees_cedar_sapling.png delete mode 100644 mods/moretrees/textures/moretrees_cedar_trunk.png delete mode 100644 mods/moretrees/textures/moretrees_cedar_trunk_top.png delete mode 100644 mods/moretrees/textures/moretrees_cedar_wood.png delete mode 100755 mods/moretrees/textures/moretrees_coconut.png delete mode 100755 mods/moretrees/textures/moretrees_coconut_milk.png delete mode 100755 mods/moretrees/textures/moretrees_coconut_milk_inv.png delete mode 100755 mods/moretrees/textures/moretrees_fir_cone.png delete mode 100755 mods/moretrees/textures/moretrees_fir_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_fir_leaves_bright.png delete mode 100755 mods/moretrees/textures/moretrees_fir_nuts.png delete mode 100755 mods/moretrees/textures/moretrees_fir_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_fir_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_fir_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_fir_wood.png delete mode 100755 mods/moretrees/textures/moretrees_jungletree_leaves_green.png delete mode 100755 mods/moretrees/textures/moretrees_jungletree_leaves_red.png delete mode 100755 mods/moretrees/textures/moretrees_jungletree_leaves_yellow.png delete mode 100755 mods/moretrees/textures/moretrees_oak_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_oak_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_oak_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_oak_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_oak_wood.png delete mode 100755 mods/moretrees/textures/moretrees_palm_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_palm_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_palm_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_palm_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_palm_wood.png delete mode 100755 mods/moretrees/textures/moretrees_raw_coconut.png delete mode 100755 mods/moretrees/textures/moretrees_rubber_tree_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_rubber_tree_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_rubber_tree_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_rubber_tree_trunk_empty.png delete mode 100755 mods/moretrees/textures/moretrees_rubber_tree_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_rubber_tree_wood.png delete mode 100755 mods/moretrees/textures/moretrees_sequoia_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_sequoia_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_sequoia_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_sequoia_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_sequoia_wood.png delete mode 100755 mods/moretrees/textures/moretrees_spruce_cone.png delete mode 100755 mods/moretrees/textures/moretrees_spruce_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_spruce_nuts.png delete mode 100755 mods/moretrees/textures/moretrees_spruce_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_spruce_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_spruce_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_spruce_wood.png delete mode 100755 mods/moretrees/textures/moretrees_willow_leaves.png delete mode 100755 mods/moretrees/textures/moretrees_willow_sapling.png delete mode 100755 mods/moretrees/textures/moretrees_willow_trunk.png delete mode 100755 mods/moretrees/textures/moretrees_willow_trunk_top.png delete mode 100755 mods/moretrees/textures/moretrees_willow_wood.png delete mode 100755 mods/moretrees/tree_biomes.txt delete mode 100755 mods/moretrees/tree_models.lua create mode 160000 mods/plantlife_modpack delete mode 100755 mods/plantlife_modpack/.gitignore delete mode 100755 mods/plantlife_modpack/3dmushrooms/depends.txt delete mode 100755 mods/plantlife_modpack/3dmushrooms/init.lua delete mode 100755 mods/plantlife_modpack/3dmushrooms/models/3dmushrooms.obj delete mode 100644 mods/plantlife_modpack/3dmushrooms/textures/3dmushrooms_brown.png delete mode 100644 mods/plantlife_modpack/3dmushrooms/textures/3dmushrooms_brown_inv.png delete mode 100644 mods/plantlife_modpack/3dmushrooms/textures/3dmushrooms_red.png delete mode 100644 mods/plantlife_modpack/3dmushrooms/textures/3dmushrooms_red_inv.png delete mode 100755 mods/plantlife_modpack/LICENSE delete mode 100755 mods/plantlife_modpack/README delete mode 100755 mods/plantlife_modpack/along_shore/depends.txt delete mode 100755 mods/plantlife_modpack/along_shore/init.lua delete mode 100755 mods/plantlife_modpack/along_shore/textures/along_shore_seaweed_1Darker.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/credit_textures.txt delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/LillyPad3x16.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/MultiLilly16x.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_empty.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_1.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_2.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_3.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_4.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_pondscum_1.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_1.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_2.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_3.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_4.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/flowers_seaweed.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_22.5.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_45.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_67.5.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/lillyPad5x16.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/lillypad3Flower16x.png delete mode 100755 mods/plantlife_modpack/along_shore/textures/old/pondscum16xc.png delete mode 100755 mods/plantlife_modpack/bushes/depends.txt delete mode 100755 mods/plantlife_modpack/bushes/init.lua delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_branches_center_1.png delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_branches_center_2.png delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_branches_left_1.png delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_branches_left_2.png delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_branches_right_1.png delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_branches_right_2.png delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_leaves_1.png delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_leaves_2.png delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk.png delete mode 100755 mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk_inv.png delete mode 100644 mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1.png delete mode 100644 mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1L.png delete mode 100644 mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1R.png delete mode 100644 mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1.png delete mode 100755 mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm.png delete mode 100755 mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm2.png delete mode 100755 mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm3.png delete mode 100755 mods/plantlife_modpack/bushes/textures/old & unused/BushBranches1sm4.png delete mode 100755 mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesCenter.png delete mode 100755 mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesSide1.png delete mode 100755 mods/plantlife_modpack/bushes/textures/old & unused/BushBranchesSide2.png delete mode 100755 mods/plantlife_modpack/bushes/textures/old & unused/blank.png delete mode 100755 mods/plantlife_modpack/bushes/textures/old & unused/moretrees_pine_leaves3.png delete mode 100755 mods/plantlife_modpack/bushes_classic/cooking.lua delete mode 100755 mods/plantlife_modpack/bushes_classic/depends.txt delete mode 100755 mods/plantlife_modpack/bushes_classic/image_credits.txt delete mode 100755 mods/plantlife_modpack/bushes_classic/init.lua delete mode 100755 mods/plantlife_modpack/bushes_classic/locale/de.txt delete mode 100755 mods/plantlife_modpack/bushes_classic/locale/fr.txt delete mode 100755 mods/plantlife_modpack/bushes_classic/locale/template.txt delete mode 100755 mods/plantlife_modpack/bushes_classic/locale/tr.txt delete mode 100755 mods/plantlife_modpack/bushes_classic/models/bushes_basket_empty.obj delete mode 100755 mods/plantlife_modpack/bushes_classic/models/bushes_basket_full.obj delete mode 100755 mods/plantlife_modpack/bushes_classic/models/bushes_bush.obj delete mode 100755 mods/plantlife_modpack/bushes_classic/nodes.lua delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_basket.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_basket_pie_blackberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_basket_pie_blueberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_basket_pie_gooseberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_basket_pie_mixed_berry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_basket_pie_raspberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_basket_pie_strawberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_cooked.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_raw.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_blackberry_pie_slice.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_cooked.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_raw.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_blueberry_pie_slice.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_bush_blackberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_bush_blueberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_bush_fruitless.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_bush_gooseberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_bush_raspberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_bush_strawberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_cooked.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_raw.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_gooseberry_pie_slice.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_raw.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_mixed_berry_pie_slice.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_cooked.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_raw.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_raspberry_pie_slice.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_cooked.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_raw.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_strawberry_pie_slice.png delete mode 100755 mods/plantlife_modpack/bushes_classic/textures/bushes_sugar.png delete mode 100755 mods/plantlife_modpack/cavestuff/depends.txt delete mode 100755 mods/plantlife_modpack/cavestuff/init.lua delete mode 100755 mods/plantlife_modpack/cavestuff/mapgen.lua delete mode 100755 mods/plantlife_modpack/cavestuff/models/cavestuff_pebble.obj delete mode 100755 mods/plantlife_modpack/cavestuff/nodes.lua delete mode 100755 mods/plantlife_modpack/cavestuff/textures/undergrowth_desert_pebble.png delete mode 100755 mods/plantlife_modpack/cavestuff/textures/undergrowth_pebble.png delete mode 100755 mods/plantlife_modpack/copyright.txt delete mode 100755 mods/plantlife_modpack/dryplants/crafting.lua delete mode 100755 mods/plantlife_modpack/dryplants/depends.txt delete mode 100755 mods/plantlife_modpack/dryplants/init.lua delete mode 100755 mods/plantlife_modpack/dryplants/juncus.lua delete mode 100755 mods/plantlife_modpack/dryplants/meadowvariation.lua delete mode 100755 mods/plantlife_modpack/dryplants/models/plantlike.obj delete mode 100755 mods/plantlife_modpack/dryplants/moregrass.lua delete mode 100755 mods/plantlife_modpack/dryplants/reed.lua delete mode 100755 mods/plantlife_modpack/dryplants/reedmace.lua delete mode 100755 mods/plantlife_modpack/dryplants/settings.txt delete mode 100755 mods/plantlife_modpack/dryplants/textures/default_grass_1.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/default_grass_2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/default_grass_3.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/default_grass_4.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/default_grass_5.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_grass.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_grass_short.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_grass_short_side.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_hay.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_juncus_02.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_juncus_03.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_juncus_inv.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reed.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reed_wet.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reedmace.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_bottom.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_3.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_height_3_spikes.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_sapling.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_spikes.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_top.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_reedmace_water.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/dryplants_sickle.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/big_pic_8.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/big_pic_9.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_cattailsG_m2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_left.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_right.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_left.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_right.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_01.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_02.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_03.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_04.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_bottom_left.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_bottom_right.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_left.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_right.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_top_left.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/dryplants_reedmace_top_right.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace3.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/reedmace4.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/reedtest.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/not_in_use/texturing.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_grass_short_old3.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_grass_short_old4.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_02_left_old.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_02_right_old.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_03_left_old.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_juncus_03_right_old.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_left_old2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_old4.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_bottom_right_old2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_left_old2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_old8.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_right_old2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_spikes_old3.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_left_old2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_old3.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_top_right_old2.png delete mode 100755 mods/plantlife_modpack/dryplants/textures/old/dryplants_reedmace_water_old2.png delete mode 100755 mods/plantlife_modpack/ferns/crafting.lua delete mode 100755 mods/plantlife_modpack/ferns/depends.txt delete mode 100755 mods/plantlife_modpack/ferns/fern.lua delete mode 100755 mods/plantlife_modpack/ferns/gianttreefern.lua delete mode 100755 mods/plantlife_modpack/ferns/horsetail.lua delete mode 100755 mods/plantlife_modpack/ferns/init.lua delete mode 100755 mods/plantlife_modpack/ferns/settings.lua delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_5.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_6.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_7.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_8.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_big.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_mid.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_tree.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_tree_giant.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_tree_inv.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_tree_tl.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_tree_tr.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_trunk.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_big.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_big_top.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fern_trunk_top.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_ferntuber.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_ferntuber_roasted.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fiddlehead.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_fiddlehead_roasted.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_horsetail_01.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_horsetail_02.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_horsetail_03.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_horsetail_04.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_sapling_tree_fern_giant.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_cross.png delete mode 100755 mods/plantlife_modpack/ferns/textures/ferns_tree_fern_leave_big_end.png delete mode 100755 mods/plantlife_modpack/ferns/textures/not_in_use/archaeplantae_horsetails.png delete mode 100755 mods/plantlife_modpack/ferns/textures/not_in_use/big picture 3.png delete mode 100755 mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_left.png delete mode 100755 mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_big_right.png delete mode 100755 mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_left.png delete mode 100755 mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_mid_right.png delete mode 100755 mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_bl.png delete mode 100755 mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_tree_br.png delete mode 100755 mods/plantlife_modpack/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/archaeplantae_fern_old4.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/comb.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_5_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_6_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_7_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_fern_big_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_fern_mid_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_fern_tree_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_old2.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_big_top_old2.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_fern_trunk_top_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_01_old2.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_02_old2.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_03_old2.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_horsetail_04_old2.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png delete mode 100755 mods/plantlife_modpack/ferns/textures/old/ferns_tree_fern_leave_big_old.png delete mode 100755 mods/plantlife_modpack/ferns/treefern.lua delete mode 100755 mods/plantlife_modpack/flowers_plus/depends.txt delete mode 100755 mods/plantlife_modpack/flowers_plus/flowers-changelog.txt delete mode 100755 mods/plantlife_modpack/flowers_plus/init.lua delete mode 100755 mods/plantlife_modpack/flowers_plus/locale/de.txt delete mode 100755 mods/plantlife_modpack/flowers_plus/locale/fr.txt delete mode 100755 mods/plantlife_modpack/flowers_plus/locale/template.txt delete mode 100755 mods/plantlife_modpack/flowers_plus/models/flowers_sunflower.obj delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_seaweedLight.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_2.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_3.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_seaweed_4.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_sunflower.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_sunflower_inv.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_22.5.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_45.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_67.5.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_1.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_2.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_3.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/flowers_waterlily_small_4.png delete mode 100755 mods/plantlife_modpack/flowers_plus/textures/tr.txt delete mode 100755 mods/plantlife_modpack/junglegrass/init.lua delete mode 100755 mods/plantlife_modpack/modpack.txt delete mode 100755 mods/plantlife_modpack/molehills/depends.txt delete mode 100755 mods/plantlife_modpack/molehills/init.lua delete mode 100755 mods/plantlife_modpack/molehills/models/molehill_molehill.obj delete mode 100755 mods/plantlife_modpack/molehills/molehills_settings.txt delete mode 100755 mods/plantlife_modpack/molehills/textures/molehills_dirt.png delete mode 100755 mods/plantlife_modpack/molehills/textures/molehills_side.png delete mode 100755 mods/plantlife_modpack/molehills/textures/old & unused/molehill_side.png delete mode 100755 mods/plantlife_modpack/molehills/textures/old & unused/molehill_top.png delete mode 100755 mods/plantlife_modpack/nature_classic/blossom.lua delete mode 100755 mods/plantlife_modpack/nature_classic/config.lua delete mode 100755 mods/plantlife_modpack/nature_classic/depends.txt delete mode 100755 mods/plantlife_modpack/nature_classic/global_function.lua delete mode 100755 mods/plantlife_modpack/nature_classic/init.lua delete mode 100755 mods/plantlife_modpack/nature_classic/textures/nature_blossom.png delete mode 100755 mods/plantlife_modpack/poisonivy/depends.txt delete mode 100755 mods/plantlife_modpack/poisonivy/init.lua delete mode 100755 mods/plantlife_modpack/poisonivy/locale/de.txt delete mode 100755 mods/plantlife_modpack/poisonivy/locale/fr.txt delete mode 100755 mods/plantlife_modpack/poisonivy/locale/template.txt delete mode 100755 mods/plantlife_modpack/poisonivy/locale/tr.txt delete mode 100755 mods/plantlife_modpack/poisonivy/textures/poisonivy_climbing.png delete mode 100755 mods/plantlife_modpack/poisonivy/textures/poisonivy_seedling.png delete mode 100755 mods/plantlife_modpack/poisonivy/textures/poisonivy_sproutling.png delete mode 100755 mods/plantlife_modpack/trunks/crafting.lua delete mode 100755 mods/plantlife_modpack/trunks/depends.txt delete mode 100755 mods/plantlife_modpack/trunks/generating.lua delete mode 100755 mods/plantlife_modpack/trunks/init.lua delete mode 100755 mods/plantlife_modpack/trunks/nodes.lua delete mode 100755 mods/plantlife_modpack/trunks/textures/credit_textures.txt delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/comboSticks.png delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/comboSticks_2.png delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/trunks_root_mask_old.png delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1e.png delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1n.png delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_2n.png delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_3n.png delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_4n.png delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_5-8.png delete mode 100755 mods/plantlife_modpack/trunks/textures/old & unused/trunks_twig_9-12.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_moss.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_moss_fungus.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_root_mask.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_1.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_10.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_11.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_12.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_13.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_2.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_3.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_4.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_5.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_6.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_7.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_8.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twig_9.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twigs.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twigs_corner.png delete mode 100755 mods/plantlife_modpack/trunks/textures/trunks_twigs_top.png delete mode 100755 mods/plantlife_modpack/trunks/trunks_settings.txt delete mode 100755 mods/plantlife_modpack/vines/LICENSE.md delete mode 100755 mods/plantlife_modpack/vines/README.md delete mode 100755 mods/plantlife_modpack/vines/aliases.lua delete mode 100755 mods/plantlife_modpack/vines/crafts.lua delete mode 100755 mods/plantlife_modpack/vines/depends.txt delete mode 100755 mods/plantlife_modpack/vines/functions.lua delete mode 100755 mods/plantlife_modpack/vines/init.lua delete mode 100755 mods/plantlife_modpack/vines/nodes.lua delete mode 100755 mods/plantlife_modpack/vines/recipes.lua delete mode 100755 mods/plantlife_modpack/vines/shear.lua delete mode 100755 mods/plantlife_modpack/vines/textures/vines_item.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_jungle_end.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_jungle_middle.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_root_end.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_root_middle.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_rope.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_rope_end.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_shears.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_side_end.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_side_middle.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_vine_end.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_vine_middle.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_willow_end.png delete mode 100755 mods/plantlife_modpack/vines/textures/vines_willow_middle.png delete mode 100755 mods/plantlife_modpack/vines/vines.lua delete mode 100755 mods/plantlife_modpack/woodsoils/depends.txt delete mode 100755 mods/plantlife_modpack/woodsoils/generating.lua delete mode 100755 mods/plantlife_modpack/woodsoils/init.lua delete mode 100755 mods/plantlife_modpack/woodsoils/nodes.lua delete mode 100755 mods/plantlife_modpack/woodsoils/textures/credit_textures.txt delete mode 100755 mods/plantlife_modpack/woodsoils/textures/not in use/woodsoils.png delete mode 100755 mods/plantlife_modpack/woodsoils/textures/woodsoils_ground.png delete mode 100755 mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover.png delete mode 100755 mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover2.png delete mode 100755 mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover_side.png delete mode 100755 mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_cover_side2.png delete mode 100755 mods/plantlife_modpack/woodsoils/textures/woodsoils_ground_side.png delete mode 100755 mods/plantlife_modpack/youngtrees/depends.txt delete mode 100755 mods/plantlife_modpack/youngtrees/init.lua delete mode 100755 mods/plantlife_modpack/youngtrees/textures/bamboo.png delete mode 100755 mods/plantlife_modpack/youngtrees/textures/unused/sapling.png delete mode 100755 mods/plantlife_modpack/youngtrees/textures/unused/sapling16x.png delete mode 100755 mods/plantlife_modpack/youngtrees/textures/youngtree16xa.png delete mode 100755 mods/plantlife_modpack/youngtrees/textures/youngtree16xb.png delete mode 100755 mods/plantlife_modpack/youngtrees/textures/youngtree16xc.png delete mode 100755 mods/plantlife_modpack/youngtrees/textures/youngtree2branch.png diff --git a/.gitmodules b/.gitmodules index ad9feff7..d676b92c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -147,9 +147,6 @@ path = minetest_game url = https://github.com/minetest/minetest_game.git branch = backport-0.4 -[submodule "mods/farming"] - path = mods/farming - url = https://github.com/tenplus1/farming.git [submodule "mods/unifieddyes"] path = mods/unifieddyes url = https://github.com/minetest-mods/unifieddyes.git @@ -174,3 +171,16 @@ [submodule "mods/sea"] path = mods/sea url = https://github.com/H4mlet/sea.git +[submodule "mods/plantlife_modpack"] + path = mods/plantlife_modpack + url = https://github.com/minetest-mods/plantlife_modpack.git +[submodule "mods/biome_lib"] + path = mods/biome_lib + url = https://github.com/minetest-mods/biome_lib.git +[submodule "mods/moretrees"] + path = mods/moretrees + url = https://github.com/minetest-mods/moretrees.git +[submodule "mods/farming"] + path = mods/farming + url = https://github.com/sys4-fr/farming.git + branch = nalc diff --git a/mods/biome_lib b/mods/biome_lib new file mode 160000 index 00000000..8fd0789a --- /dev/null +++ b/mods/biome_lib @@ -0,0 +1 @@ +Subproject commit 8fd0789ad296bcfad13f73084e95b8a93427ef81 diff --git a/mods/biome_lib/API.txt b/mods/biome_lib/API.txt deleted file mode 100755 index 73e310f8..00000000 --- a/mods/biome_lib/API.txt +++ /dev/null @@ -1,579 +0,0 @@ -This document describes the Plantlife mod API. - -Last revision: 2015-02-16 - - -========= -Functions -========= - -There are three main functions defined by the main "biome_lib" mod: - -spawn_on_surfaces() -register_generate_plant() -grow_plants() - -There are also several internal, helper functions that can be called if so -desired, but they are not really intended for use by other mods and may change -at any time. They are briefly described below these main functions, but see -init.lua for details. - -Most functions in plants lib are declared locally to avoid namespace -collisions with other mods. They are accessible via the "biome_lib" method, -e.g. biome_lib:spawn_on_surfaces() and so forth. - -===== -spawn_on_surfaces(biome) -spawn_on_surfaces(sdelay, splant, sradius, schance, ssurface, savoid) - -This first function is an ABM-based spawner function originally created as -part of Ironzorg's flowers mod. It has since been largely extended and -expanded. There are two ways to call this function: You can either pass it -several individual string and number parameters to use the legacy interface, -or you can pass a single biome definition as a table, with all of your options -spelled out nicely. This is the preferred method. - -When used with the legacy interface, you must specify the parameters exactly -in order, with the first five being mandatory (even if some are set to nil), -and the last one being optional: - -sdelay: The value passed to the ABM's interval parameter, in seconds. -splant: The node name of the item to spawn (e.g. - "flowers:flower_rose"). A plant will of course only be - spawned if the node about to be replaced is air. -sradius: Don't spawn within this many nodes of the avoid items - mentioned below. If set to nil, this check is skipped. -schance: The value passed to the ABM's chance parameter, normally in - the 10-100 range (1-in-X chance of operating on a given node) -ssurface: String with the name of the node on which to spawn the plant - in question, such as "default:sand" or - "default:dirt_with_grass". It is not recommended to put air, - stone, or plain dirt here if you can use some other node, as - doing so will cause the engine to process potentially large - numbers of such nodes when deciding when to execute the ABM - and where it should operate. -savoid: Table with a list of groups and/or node names to avoid when - spawning the plant, such as {"group:flowers", "default:tree"}. - -When passed a table as the argument, and thus using the modern calling method, -you must pass a number of arguments in the form of an ordinary keyed-value -table. Below is a list of everything supported by this function: - -biome = { - spawn_plants = something, -- [*] String or table; see below. - spawn_delay = number, -- same as sdelay, above. - spawn_chance = number, -- same as schance, above. - spawn_surfaces = {table}, -- List of node names on which the plants - -- should be spawned. As with the single-node "ssurface" - -- option in the legacy API, you should not put stone, air, - -- etc. here. - - ---- From here down are a number of optional parameters. You will - ---- most likely want to use at least some of these to limit how and - ---- where your objects are spawned. - - avoid_nodes = {table}, -- same meaning as savoid, above - avoid_radius = num, -- same as sradius - seed_diff = num, -- The Perlin seed difference value passed to the - -- minetest.get_perlin() function. Used along with - -- the global Perlin controls below to create the - -- "biome" in which the plants will spawn. Defaults - -- to 0 if not provided. - light_min = num, -- Minimum amount of light necessary to make a plant - -- spawn. Defaults to 0. - light_max = num, -- Maximum amount of light needed to spawn. Defaults - -- to the engine's MAX_LIGHT value of 14. - neighbors = {table}, -- List of neighboring nodes that need to be - -- immediately next to the node the plant is about to - -- spawn on. Can also be a string with a single node - -- name. It is both passed to the ABM as the - -- "neighbors" parameter, and is used to manually - -- check the adjacent nodes. It only takes one of - -- these for the spawn routine to mark the target as - -- spawnable. Defaults to nil (ignored). - ncount = num, -- There must be at least this many of the above - -- neighbors in the eight spaces immediately - -- surrounding the node the plant is about to spawn on - -- for it to happen. If not provided, this check is - -- disabled. - facedir = num, -- The value passed to the param2 variable when adding - -- the node to the map. Defaults to 0. Be sure that - -- the value you use here (and the range thereof) is - -- appropriate for the type of node you're spawning. - random_facedir = {table}, -- If set, the table should contain two values. - -- If they're both provided, the spawned plant will be - -- given a random facedir value in the range specified - -- by these two numbers. Overrides the facedir - -- parameter above, if it exists. Use {0,3} if you - -- want the full range for wallmounted nodes, or {2,5} - -- for most everything else, or any other pair of - -- numbers appropriate for the node you want to spawn. - depth_max = num, -- If the object spawns on top of a water source, the - -- water must be at most this deep. Defaults to 1. - min_elevation = num, -- Surface must be at this altitude or higher to - -- spawn at all. Defaults to -31000... - max_elevation = num, -- ...but must be no higher than this altitude. - -- Defaults to +31000. - near_nodes = {table}, -- List of nodes that must be somewhere in the - -- vicinity in order for the plant to spawn. Can also - -- be a string with a single node name. If not - -- provided, this check is disabled. - near_nodes_size = num, -- How large of an area to check for the above - -- node. Specifically, this checks a flat, horizontal - -- area centered on the node to be spawned on. - -- Defaults to 0, but is ignored if the above - -- near_nodes value is not set. - near_nodes_vertical = num, -- Used with the size value above, this extends - -- the vertical range of the near nodes search. - -- Basically, this turns the flat region described - -- above into a cuboid region. The area to be checked - -- will extend this high and this low above/below the - -- target node, centered thereon. Defaults to 1 (only - -- check the layer above, the layer at, and the layer - -- below the target node), but is ignored if - -- near_nodes is not set. - near_nodes_count = num, -- How many of the above nodes must be within that - -- radius. Defaults to 1 but is ignored if near_nodes - -- isn't set. Bear in mind that the total area to be - -- checked is equal to: - -- (near_nodes_size^2)*near_nodes_vertical*2 - -- For example, if size is 10 and vertical is 4, then - -- the area is (10^2)*8 = 800 nodes in size, so you'll - -- want to make sure you specify a value appropriate - -- for the size of the area being tested. - air_size = num, -- How large of an area to check for air above and - -- around the target. If omitted, only the space - -- above the target is checked. This does not check - -- for air at the sides or below the target. - air_count = num, -- How many of the surrounding nodes need to be air - -- for the above check to return true. If omitted, - -- only the space above the target is checked. - plantlife_limit = num, -- The value compared against the generic "plants - -- can grow here" Perlin noise layer. Smaller numbers - -- result in more abundant plants. Range of -1 to +1, - -- with values in the range of about 0 to 0.5 being - -- most useful. Defaults to 0.1. - temp_min = num, -- Minimum temperature needed for the desired object - -- to spawn. This is a 2d Perlin value, which has an - -- inverted range of +1 to -1. Larger values - -- represent *colder* temperatures, so this value is - -- actually the upper end of the desired Perlin range. - -- See the temperature map section at the bottom of - -- this document for details on how these values work. - -- Defaults to +1 (unlimited coldness). - temp_max = num, -- Maximum temperature/lower end of the Perlin range. - -- Defaults to -1 (unlimited heat). - humidity_min = num, -- Minimum humidity for the plant to spawn in. Like - -- the temperature map, this is a Perlin value where - -- lower numbers mean more humidity in the area. - -- Defaults to +1 (0% humidity). - humidity_max = num, -- Maximum humidity for the plant to spawn at. - -- Defaults to -1 (100% humidity). - verticals_list = {table}, -- List of nodes that should be considered to be - -- natural walls. - alt_wallnode = "string", -- If specified, this node will be substituted in - -- place of the plant(s) defined by spawn_plants - -- above, if the spawn target has one or more adjacent - -- walls. In such a case, the two above facedir - -- parameters will be ignored. - spawn_on_side = bool, -- Set this to true to immediately spawn the node on - -- one side of the target node rather than the top. - -- The code will search for an airspace to the side of - -- the target, then spawn the plant at the first one - -- found. The above facedir and random_facedir - -- parameters are ignored in this case. If the above - -- parameters for selecting generic wall nodes are - -- provided, this option is ignored. Important note: - -- the facedir values assigned by this option only - -- make sense with wallmounted nodes (nodes which - -- don't use facedir won't be affected). - choose_random_wall = bool, -- if set to true, and searching for walls is - -- being done, just pick any random wall if there is - -- one, rather than returning the first one. - spawn_on_bottom = bool, -- If set to true, spawn the object below the - -- target node instead of above it. The above - -- spawn_on_side variable takes precedence over this - -- one if both happen to be true. When using this - -- option with the random facedir function above, the - -- values given to the facedir parameter are for - -- regular nodes, not wallmounted. - spawn_replace_node = bool, -- If set to true, the target node itself is - -- replaced by the spawned object. Overrides the - -- spawn_on_bottom and spawn_on_side settings. -} - -[*] spawn_plants must be either a table or a string. If it's a table, the -values therein are treated as a list of nodenames to pick from randomly on -each application of the ABM code. The more nodes you can pack into this -parameter to avoid making too many calls to this function, the lower the CPU -load will likely be. - -You can also specify a string containing the name of a function to execute. -In this case, the function will be passed a single position parameter -indicating where the function should place the desired object, and the checks -for spawning on top vs. sides vs. bottom vs. replacing the target node will be -skipped. - -By default, if a biome node, size, and count are not defined, the biome -checking is disabled. Same holds true for the nneighbors bit above that. - - -===== -biome_lib:register_generate_plant(biome, nodes_or_function_or_treedef) - -To register an object to be spawned at mapgen time rather than via an ABM, -call this function with two parameters: a table with your object's biome -information, and a string, function, or table describing what to do if the -engine finds a suitable surface node (see below). - -The biome table contains quite a number of options, though there are fewer -here than are available in the ABM-based spawner, as some stuff doesn't make -sense at map-generation time. - -biome = { - surface = something, -- What node(s). May be a string such as - -- "default:dirt_with_grass" or a table with - -- multiple such entries. - - ---- Everything else is optional, but you'll definitely want to use - ---- some of these other fields to limit where and under what - ---- conditions the objects are spawned. - - below_nodes = {table}, -- List of nodes that must be below the target - -- node. Useful in snow biomes to keep objects from - -- spawning in snow that's on the wrong surface for - -- that object. - avoid_nodes = {table}, -- List of nodes to avoid when spawning. Groups are - -- not supported here. - avoid_radius = num, -- How much distance to leave between the object to be - -- added and the objects to be avoided. If this or - -- the avoid_nodes value is nil/omitted, this check is - -- skipped. Avoid using excessively large radii. - rarity = num, -- How rare should this object be in its biome? Larger - -- values make objects more rare, via: - -- math.random(1,100) > this - max_count = num, -- The absolute maximum number of your object that - -- should be allowed to spawn in a 5x5x5 mapblock area - -- (80x80x80 nodes). Defaults to 5, but be sure you - -- set this to some reasonable value depending on your - -- object and its size if 5 is insufficient. - seed_diff = num, -- Perlin seed-diff value. Defaults to 0, which - -- causes the function to inherit the global value of - -- 329. - neighbors = {table}, -- What ground nodes must be right next to and at the - -- same elevation as the node to be spawned on. - ncount = num, -- At least this many of the above nodes must be next - -- to the node to spawn on. Any value greater than 8 - -- will probably cause the code to never spawn - -- anything. Defaults to 0. - depth = num, -- How deep/thick of a layer the spawned-on node must - -- be. Typically used for water. - min_elevation = num, -- Minimum elevation in meters/nodes. Defaults to - -- -31000 (unlimited). - max_elevation = num, -- Max elevation. Defaults to +31000 (unlimited). - near_nodes = {table}, -- what nodes must be in the general vicinity of the - -- object being spawned. - near_nodes_size = num, -- how wide of a search area to look for the nodes - -- in that list. - near_nodes_vertical = num, -- How high/low of an area to search from the - -- target node. - near_nodes_count = num, -- at least this many of those nodes must be in - -- the area. - plantlife_limit = num, -- The value compared against the generic "plants - -- can grow here" Perlin noise layer. Smaller numbers - -- result in more abundant plants. Range of -1 to +1, - -- with values in the range of about 0 to 0.5 being - -- most useful. Defaults to 0.1. - temp_min = num, -- Coldest allowable temperature for a plant to spawn - -- (that is, the largest Perlin value). - temp_max = num, -- warmest allowable temperature to spawn a plant - -- (lowest Perlin value). - verticals_list = {table}, -- Same as with the spawn_on_surfaces function. - check_air = bool, -- Flag to tell the mapgen code to check for air above - -- the spawn target. Defaults to true if not - -- explicitly set to false. Set this to false VERY - -- SPARINGLY, as it will slow the map generator down. - delete_above = bool, -- Flag to tell the mapgen code to delete the two - -- nodes directly above the spawn target just before - -- adding the plant or tree. Useful when generating - -- in snow biomes. Defaults to false. - delete_above_surround = bool, -- Flag to tell the mapgen code to also - -- delete the five nodes surrounding the above space, - -- and the five nodes above those, resulting in a two- - -- node-deep cross-shaped empty region above/around - -- the spawn target. Useful when adding trees to snow - -- biomes. Defaults to false. - spawn_replace_node = bool, -- same as with the ABM spawner. - random_facedir = {table}, -- same as with the ABM spawner. -} - -Regarding nodes_or_function_or_treedef, this must either be a string naming -a node to spawn, a table with a list of nodes to choose from, a table with an -L-Systems tree definition, or a function. - -If you specified a string, the code will attempt to determine whether that -string specifies a valid node name. If it does, that node will be placed on -top of the target position directly (unless one of the other mapgen options -directs the code to do otherwise). - -If you specified a table and there is no "axiom" field, the code assumes that -it is a list of nodes. Simply name one node per entry in the list, e.g. -{"default:junglegrass", "default:dry_shrub"} and so on, for as many nodes as -you want to list. A random node from the list will be chosen each time the -code goes to place a node. - -If you specified a table, and there *is* an "axiom" field, the code assumes -that this table contains an L-Systems tree definition, which will be passed -directly to the engine's spawn_tree() function along with the position on -which to spawn the tree. - -You can also supply a function to be directly executed, which is given the -current node position (the usual "pos" table format) as its sole argument. It -will be called in the form: - - somefunction(pos) - - -===== -biome_lib:grow_plants(options) - -The third function, grow_plants() is used to turn the spawned nodes above -into something else over time. This function has no return value, and accepts -a biome definition table as the only parameter. These are defined like so: - -options = { - grow_plant = "string", -- Name of the node to be grown into something - -- else. This value is passed to the ABM as the - -- "nodenames" parameter, so it is the plants - -- themselves that are the ABM trigger, rather than - -- the ground they spawned on. A plant will only grow - -- if the node above it is air. Can also be a table, - -- but note that all nodes referenced therein will be - -- grown into the same object. - grow_delay = num, -- Passed as the ABM "interval" parameter, as with - -- spawning. - grow_chance = num, -- Passed as the ABM "chance" parameter. - grow_result = "string", -- Name of the node into which the grow_plant - -- node(s) should transform when the ABM executes. - - ---- Everything from here down is optional. - - dry_early_node = "string", -- This value is ignored except for jungle - -- grass (a corner case needed by that mod), where it - -- indicates which node the grass must be on in order - -- for it to turn from the short size to - -- "default:dry_shrub" instead of the medium size. - grow_nodes = {table}, -- One of these nodes must be under the plant in - -- order for it to grow at all. Normally this should - -- be the same as the list of surfaces passed to the - -- spawning ABM as the "nodenames" parameter. This is - -- so that the plant can be manually placed on - -- something like a flower pot or something without it - -- necessarily growing and perhaps dieing. Defaults - -- to "default:dirt_with_grass". - facedir = num, -- Same as with spawning a plant. - need_wall = bool, -- Set this to true if you the plant needs to grow - -- against a wall. Defaults to false. - verticals_list = {table}, -- same as with spawning a plant. - choose_random_wall = bool, -- same as with spawning a plant. - grow_vertically = bool, -- Set this to true if the plant needs to grow - -- vertically, as in climbing poison ivy. Defaults to - -- false. - height_limit = num, -- Set this to limit how tall the desired node can - -- grow. The mod will search straight down from the - -- position being spawned at to find a ground node, - -- set via the field below. Defaults to 5 nodes. - ground_nodes = {table}, -- What nodes should be treated as "the ground" - -- below a vertically-growing plant. Usually this - -- should be the same as the grow_nodes table, but - -- might also include, for example, water or some - -- other surrounding material. Defaults to - -- "default:dirt_with_grass". - grow_function = something, -- [*] see below. - seed_diff = num, -- [*] see below. -} - -[*] grow_function can take one of three possible settings: it can be nil (or - not provided), a string, or a table. - -If it is not provided or it's set to nil, all of the regular growing code is -executed normally, the value of seed_diff, if any, is ignored, and the node to -be placed is assumed to be specified in the grow_result variable. - -If this value is set to a simple string, this is treated as the name of the -function to use to grow the plant. In this case, all of the usual growing -code is executeed, but then instead of a plant being simply added to the -world, grow_result is ignored and the named function is executed and passed a -few parmeters in the following general form: - - somefunction(pos, perlin1, perlin2) - -These values represent the current position (the usual table), the Perlin -noise value for that spot in the generic "plants can grow here" map for the -seed_diff value above, the Perlin value for that same spot from the -temperature map, and the detected neighboring wall face, if there was one (or -nil if not). If seed_diff is not provided, it defaults to 0. - -If this variable is instead set to a table, it is treated an an L-Systems tree -definition. All of the growing code is executed in the usual manner, then the -tree described by that definition is spawned at the current position instead, -and grow_result is ignored. - - -===== -find_adjacent_wall(pos, verticals, randomflag) - -Of the few helper functions, this one expects a position parameter and a table -with the list of nodes that should be considered as walls. The code will -search around the given position for a neighboring wall, returning the first -one it finds as a facedir value, or nil if there are no adjacent walls. - -If randomflag is set to true, the function will just return the facedir of any -random wall it finds adjacent to the target position. Defaults to false if -not specified. - -===== -is_node_loaded(pos) - -This acts as a wrapper for the minetest.get_node_or_nil(node_pos) -function and accepts a single position parameter. Returns true if the node in -question is already loaded, or false if not. - - -===== -dbg(string) - -This is a simple debug output function which takes one string parameter. It -just checks if DEBUG is true and outputs the phrase "[Plantlife] " followed by -the supplied string, via the print() function, if so. - -===== -biome_lib:generate_tree(pos, treemodel) -biome_lib:grow_tree(pos, treemodel) - -In the case of the growing code and the mapgen-based tree generator code, -generating a tree is done via the above two calls, which in turn immediately -call the usual spawn_tree() functions. This rerouting exists as a way for -other mods to hook into biome_lib's tree-growing functions in general, -perhaps to execute something extra whenever a tree is spawned. - -biome_lib:generate_tree(pos, treemodel) is called any time a tree is spawned -at map generation time. 'pos' is the position of the block on which the tree -is to be placed. 'treemodel' is the standard L-Systems tree definition table -expected by the spawn_tree() function. Refer to the 'trunk' field in that -table to derive the name of the tree being spawned. - -biome_lib:grow_tree(pos, treemodel) does the same sort of thing whenever a -tree is spawned within the abm-based growing code, for example when growing a -sapling into a tree. - - -===== -There are other, internal helper functions that are not meant for use by other -mods. Don't rely on them, as they are subject to change without notice. - - -=============== -Global Settings -=============== - -Set this to true if you want the mod to spam your console with debug info :-) - - plantlife_debug = false - - -====================== -Fertile Ground Mapping -====================== - -The mod uses Perlin noise to create "biomes" of the various plants, via the -minetest.get_perlin() function. At present, there are three layers of -Perlin noise used. - -The first one is for a "fertile ground" layer, which I tend to refer to as the -generic "stuff can potentially grow here" layer. Its values are hard-coded: - - biome_lib.plantlife_seed_diff = 329 - perlin_octaves = 3 - perlin_persistence = 0.6 - perlin_scale = 100 - -For more information on how Perlin noise is generated, you will need to search -the web, as these default values were from that which is used by minetest_game -to spawn jungle grass at mapgen time, and I'm still learning how Perlin noise -works. ;-) - - -=================== -Temperature Mapping -=================== - -The second Perlin layer is a temperature map, with values taken from -SPlizard's Snow Biomes mod so that the two will be compatible, since that mod -appears to be the standard now. Those values are: - - temperature_seeddiff = 112 - temperature_octaves = 3 - temperature_persistence = 0.5 - temperature_scale = 150 - -The way Perlin values are used by this mod, in keeping with the snow mod's -apparent methods, larger values returned by the Perlin function represent -*colder* temperatures. In this mod, the following table gives a rough -approximation of how temperature maps to these values, normalized to -0.53 = 0 °C and +1.0 = -25 °C. - -Perlin Approx. Temperature --1.0 81 °C ( 178 °F) --0.75 68 °C ( 155 °F) --0.56 58 °C ( 136 °F) --0.5 55 °C ( 131 °F) --0.25 41 °C ( 107 °F) --0.18 38 °C ( 100 °F) - 0 28 °C ( 83 °F) - 0.13 21 °C ( 70 °F) - 0.25 15 °C ( 59 °F) - 0.5 2 °C ( 35 °F) - 0.53 0 °C ( 32 °F) - 0.75 -12 °C ( 11 °F) - 0.86 -18 °C ( 0 °F) - 1.0 -25 °C (- 13 °F) - -Included in this table are even 0.25 steps in Perlin values along with some -common temperatures on both the Centigrade and Fahrenheit scales. Note that -unless you're trying to model the Moon or perhaps Mercury in your mods/maps, -you probably won't need to bother with Perlin values of less than -0.56 or so. - - -================ -Humidity Mapping -================ - -Last but not least is a moisture/humidity map. Like the temperature map -above, Perlin values can be tested to determine the approximate humidity of -the *air* in the area. This humidity map is basically the perlin layer used -for deserts. - -A value of +1.0 is very moist (basically a thick fog, if it could be seen), a -value of roughly +0.25 represents the edge of a desert as usually seen in the -game, and a value of -1.0 is as dry as a bone. - -This does not check for nearby water, just general air humidity, and that -being the case, nearby ground does not affect the reported humidity of a -region (because this isn't yet possible to calculate yet). Use the near_nodes -and avoid_nodes parameters and their related options to check for water and -such. - -The Perlin values use for this layer are: - - humidity_seeddiff = 9130 - humidity_octaves = 3 - humidity_persistence = 0.5 - humidity_scale = 250 - -And this particular one is mapped slightly differently from the others: - - noise3 = perlin3:get2d({x=p_top.x+150, y=p_top.z+50}) - -(Note the +150 and +50 offsets) - diff --git a/mods/biome_lib/README.md b/mods/biome_lib/README.md deleted file mode 100755 index dc04a73f..00000000 --- a/mods/biome_lib/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Biome Lib - -This library's purpose is to allow other mods to add growing things to the map in a straightforward, simple manner. It contains all the core functions needed by mods and modpacks such as More Trees, Tiny Trees, Plantlife, and others. - -Spawning of plants is optionally sensitive to the amount of available light, elevation, nearness to other nodes, plant-to-plant density, water depth, and a whole host of controls. - -All objects spawned or generated using this mod use Perlin noise to stay within simple biomes, rather than just letting everything just spread around the map randomly. - -This library also features a basic temperature map, which should blend in nicely with SPlizard's Snow Biomes mod (the same Perlin settings are used, with the assumption that the edge of a snow biome is 0° Centigrade). - -Both mapgen-based spawning and ABM-based spawning is supported. Growing code is strictly ABM-based. L-system trees can be spawned at mapgen time via the engine's spawn_tree() function and are quite fast. - -It is primarily intended for mapgen v6, but it should work fine when used with mapgen v7. - -**Dependencies**: default from minetest_game - -**Recommends**: [Plantlife Modpack](https://github.com/minetest-mods/plantlife_modpack), -[More Trees](https://github.com/minetest-mods/moretrees) - -**License**: WTFPL - -**API**: This mod supplies a small number of very powerful functions. They are, briefly: - -* biome_lib:register_generate_plant() -* biome_lib:spawn_on_surfaces() -* biome_lib:grow_plants() -* biome_lib:find_valid_wall() -* biome_lib:is_node_loaded() - -For a complete description of these functions as well as several of the internal variables within the mod, [read the API.txt document](https://raw.githubusercontent.com/minetest-mods/biome_lib/master/API.txt) included in this package. diff --git a/mods/biome_lib/depends.txt b/mods/biome_lib/depends.txt deleted file mode 100755 index c48fe0d0..00000000 --- a/mods/biome_lib/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ -default -intllib? - diff --git a/mods/biome_lib/description.txt b/mods/biome_lib/description.txt deleted file mode 100644 index 0412661b..00000000 --- a/mods/biome_lib/description.txt +++ /dev/null @@ -1 +0,0 @@ -The biome spawning and management library for Plantlife, Moretrees, Tiny Trees, and other mods that originally depended on plants_lib from the plantlife modpack. diff --git a/mods/biome_lib/init.lua b/mods/biome_lib/init.lua deleted file mode 100755 index e564984a..00000000 --- a/mods/biome_lib/init.lua +++ /dev/null @@ -1,737 +0,0 @@ --- Plantlife library mod by Vanessa Ezekowitz --- --- License: WTFPL --- --- I got the temperature map idea from "hmmmm", values used for it came from --- Splizard's snow mod. --- - --- Various settings - most of these probably won't need to be changed - -biome_lib = {} - -plantslib = setmetatable({}, { __index=function(t,k) print("Use of deprecated function:", k) return biome_lib[k] end }) - -biome_lib.blocklist_aircheck = {} -biome_lib.blocklist_no_aircheck = {} - -biome_lib.surface_nodes_aircheck = {} -biome_lib.surface_nodes_no_aircheck = {} - -biome_lib.surfaceslist_aircheck = {} -biome_lib.surfaceslist_no_aircheck = {} - -biome_lib.actioncount_aircheck = {} -biome_lib.actioncount_no_aircheck = {} - -biome_lib.actionslist_aircheck = {} -biome_lib.actionslist_no_aircheck = {} - -biome_lib.modpath = minetest.get_modpath("biome_lib") - -biome_lib.total_no_aircheck_calls = 0 - --- Boilerplate to support localized strings if intllib mod is installed. -local S -if minetest.get_modpath("intllib") then - S = intllib.Getter() -else - S = function(s) return s end -end -biome_lib.intllib = S - -local DEBUG = false --... except if you want to spam the console with debugging info :-) - -function biome_lib:dbg(msg) - if DEBUG then - minetest.log("info", "[Plantlife] "..msg) - minetest.log("verbose", "[Plantlife] "..msg) - end -end - -biome_lib.plantlife_seed_diff = 329 -- needs to be global so other mods can see it - -local perlin_octaves = 3 -local perlin_persistence = 0.6 -local perlin_scale = 100 - -local temperature_seeddiff = 112 -local temperature_octaves = 3 -local temperature_persistence = 0.5 -local temperature_scale = 150 - -local humidity_seeddiff = 9130 -local humidity_octaves = 3 -local humidity_persistence = 0.5 -local humidity_scale = 250 - -local time_scale = 1 -local time_speed = tonumber(minetest.setting_get("time_speed")) - -if time_speed and time_speed > 0 then - time_scale = 72 / time_speed -end - ---PerlinNoise(seed, octaves, persistence, scale) - -biome_lib.perlin_temperature = PerlinNoise(temperature_seeddiff, temperature_octaves, temperature_persistence, temperature_scale) -biome_lib.perlin_humidity = PerlinNoise(humidity_seeddiff, humidity_octaves, humidity_persistence, humidity_scale) - --- Local functions - -function biome_lib:is_node_loaded(node_pos) - local n = minetest.get_node_or_nil(node_pos) - if (not n) or (n.name == "ignore") then - return false - end - return true -end - -function biome_lib:set_defaults(biome) - biome.seed_diff = biome.seed_diff or 0 - biome.min_elevation = biome.min_elevation or -31000 - biome.max_elevation = biome.max_elevation or 31000 - biome.temp_min = biome.temp_min or 1 - biome.temp_max = biome.temp_max or -1 - biome.humidity_min = biome.humidity_min or 1 - biome.humidity_max = biome.humidity_max or -1 - biome.plantlife_limit = biome.plantlife_limit or 0.1 - biome.near_nodes_vertical = biome.near_nodes_vertical or 1 - --- specific to on-generate - - biome.neighbors = biome.neighbors or biome.surface - biome.near_nodes_size = biome.near_nodes_size or 0 - biome.near_nodes_count = biome.near_nodes_count or 1 - biome.rarity = biome.rarity or 50 - biome.max_count = biome.max_count or 5 - if biome.check_air ~= false then biome.check_air = true end - --- specific to abm spawner - biome.seed_diff = biome.seed_diff or 0 - biome.light_min = biome.light_min or 0 - biome.light_max = biome.light_max or 15 - biome.depth_max = biome.depth_max or 1 - biome.facedir = biome.facedir or 0 -end - -local function search_table(t, s) - for i = 1, #t do - if t[i] == s then return true end - end - return false -end - --- register the list of surfaces to spawn stuff on, filtering out all duplicates. --- separate the items by air-checking or non-air-checking map eval methods - -function biome_lib:register_generate_plant(biomedef, nodes_or_function_or_model) - - -- if calling code passes an undefined node for a surface or - -- as a node to be spawned, don't register an action for it. - - if type(nodes_or_function_or_model) == "string" - and string.find(nodes_or_function_or_model, ":") - and not minetest.registered_nodes[nodes_or_function_or_model] then - biome_lib:dbg("Warning: Ignored registration for undefined spawn node: "..dump(nodes_or_function_or_model)) - return - end - - if type(nodes_or_function_or_model) == "string" - and not string.find(nodes_or_function_or_model, ":") then - biome_lib:dbg("Warning: Registered function call using deprecated string method: "..dump(nodes_or_function_or_model)) - end - - if biomedef.check_air == false then - biome_lib:dbg("Register no-air-check mapgen hook: "..dump(nodes_or_function_or_model)) - biome_lib.actionslist_no_aircheck[#biome_lib.actionslist_no_aircheck + 1] = { biomedef, nodes_or_function_or_model } - local s = biomedef.surface - if type(s) == "string" then - if s and (string.find(s, "^group:") or minetest.registered_nodes[s]) then - if not search_table(biome_lib.surfaceslist_no_aircheck, s) then - biome_lib.surfaceslist_no_aircheck[#biome_lib.surfaceslist_no_aircheck + 1] = s - end - else - biome_lib:dbg("Warning: Ignored no-air-check registration for undefined surface node: "..dump(s)) - end - else - for i = 1, #biomedef.surface do - local s = biomedef.surface[i] - if s and (string.find(s, "^group:") or minetest.registered_nodes[s]) then - if not search_table(biome_lib.surfaceslist_no_aircheck, s) then - biome_lib.surfaceslist_no_aircheck[#biome_lib.surfaceslist_no_aircheck + 1] = s - end - else - biome_lib:dbg("Warning: Ignored no-air-check registration for undefined surface node: "..dump(s)) - end - end - end - else - biome_lib:dbg("Register with-air-checking mapgen hook: "..dump(nodes_or_function_or_model)) - biome_lib.actionslist_aircheck[#biome_lib.actionslist_aircheck + 1] = { biomedef, nodes_or_function_or_model } - local s = biomedef.surface - if type(s) == "string" then - if s and (string.find(s, "^group:") or minetest.registered_nodes[s]) then - if not search_table(biome_lib.surfaceslist_aircheck, s) then - biome_lib.surfaceslist_aircheck[#biome_lib.surfaceslist_aircheck + 1] = s - end - else - biome_lib:dbg("Warning: Ignored with-air-checking registration for undefined surface node: "..dump(s)) - end - else - for i = 1, #biomedef.surface do - local s = biomedef.surface[i] - if s and (string.find(s, "^group:") or minetest.registered_nodes[s]) then - if not search_table(biome_lib.surfaceslist_aircheck, s) then - biome_lib.surfaceslist_aircheck[#biome_lib.surfaceslist_aircheck + 1] = s - end - else - biome_lib:dbg("Warning: Ignored with-air-checking registration for undefined surface node: "..dump(s)) - end - end - end - end -end - -function biome_lib:populate_surfaces(biome, nodes_or_function_or_model, snodes, checkair) - - biome_lib:set_defaults(biome) - - -- filter stage 1 - find nodes from the supplied surfaces that are within the current biome. - - local in_biome_nodes = {} - local perlin_fertile_area = minetest.get_perlin(biome.seed_diff, perlin_octaves, perlin_persistence, perlin_scale) - - for i = 1, #snodes do - local pos = snodes[i] - local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } - local noise1 = perlin_fertile_area:get2d({x=pos.x, y=pos.z}) - local noise2 = biome_lib.perlin_temperature:get2d({x=pos.x, y=pos.z}) - local noise3 = biome_lib.perlin_humidity:get2d({x=pos.x+150, y=pos.z+50}) - local biome_surfaces_string = dump(biome.surface) - local surface_ok = false - - if not biome.depth then - local dest_node = minetest.get_node(pos) - if string.find(biome_surfaces_string, dest_node.name) then - surface_ok = true - else - if string.find(biome_surfaces_string, "group:") then - for j = 1, #biome.surface do - if string.find(biome.surface[j], "^group:") - and minetest.get_item_group(dest_node.name, biome.surface[j]) then - surface_ok = true - break - end - end - end - end - elseif not string.find(biome_surfaces_string, minetest.get_node({ x = pos.x, y = pos.y-biome.depth-1, z = pos.z }).name) then - surface_ok = true - end - - if surface_ok - and (not checkair or minetest.get_node(p_top).name == "air") - and pos.y >= biome.min_elevation - and pos.y <= biome.max_elevation - and noise1 > biome.plantlife_limit - and noise2 <= biome.temp_min - and noise2 >= biome.temp_max - and noise3 <= biome.humidity_min - and noise3 >= biome.humidity_max - and (not biome.ncount or #(minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, biome.neighbors)) > biome.ncount) - and (not biome.near_nodes or #(minetest.find_nodes_in_area({x=pos.x-biome.near_nodes_size, y=pos.y-biome.near_nodes_vertical, z=pos.z-biome.near_nodes_size}, {x=pos.x+biome.near_nodes_size, y=pos.y+biome.near_nodes_vertical, z=pos.z+biome.near_nodes_size}, biome.near_nodes)) >= biome.near_nodes_count) - and math.random(1,100) > biome.rarity - and (not biome.below_nodes or string.find(dump(biome.below_nodes), minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name) ) - then - in_biome_nodes[#in_biome_nodes + 1] = pos - end - end - - -- filter stage 2 - find places within that biome area to place the plants. - - local num_in_biome_nodes = #in_biome_nodes - - if num_in_biome_nodes > 0 then - for i = 1, math.min(biome.max_count, num_in_biome_nodes) do - local tries = 0 - local spawned = false - while tries < 2 and not spawned do - local pos = in_biome_nodes[math.random(1, num_in_biome_nodes)] - if biome.spawn_replace_node then - pos.y = pos.y-1 - end - local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } - - if not (biome.avoid_nodes and biome.avoid_radius and minetest.find_node_near(p_top, biome.avoid_radius + math.random(-1.5,2), biome.avoid_nodes)) then - if biome.delete_above then - minetest.remove_node(p_top) - minetest.remove_node({x=p_top.x, y=p_top.y+1, z=p_top.z}) - end - - if biome.delete_above_surround then - minetest.remove_node({x=p_top.x-1, y=p_top.y, z=p_top.z}) - minetest.remove_node({x=p_top.x+1, y=p_top.y, z=p_top.z}) - minetest.remove_node({x=p_top.x, y=p_top.y, z=p_top.z-1}) - minetest.remove_node({x=p_top.x, y=p_top.y, z=p_top.z+1}) - - minetest.remove_node({x=p_top.x-1, y=p_top.y+1, z=p_top.z}) - minetest.remove_node({x=p_top.x+1, y=p_top.y+1, z=p_top.z}) - minetest.remove_node({x=p_top.x, y=p_top.y+1, z=p_top.z-1}) - minetest.remove_node({x=p_top.x, y=p_top.y+1, z=p_top.z+1}) - end - - if biome.spawn_replace_node then - minetest.remove_node(pos) - end - - local objtype = type(nodes_or_function_or_model) - - if objtype == "table" then - if nodes_or_function_or_model.axiom then - biome_lib:generate_tree(p_top, nodes_or_function_or_model) - spawned = true - else - local fdir = nil - if biome.random_facedir then - fdir = math.random(biome.random_facedir[1], biome.random_facedir[2]) - end - minetest.set_node(p_top, { name = nodes_or_function_or_model[math.random(#nodes_or_function_or_model)], param2 = fdir }) - spawned = true - end - elseif objtype == "string" and - minetest.registered_nodes[nodes_or_function_or_model] then - local fdir = nil - if biome.random_facedir then - fdir = math.random(biome.random_facedir[1], biome.random_facedir[2]) - end - minetest.set_node(p_top, { name = nodes_or_function_or_model, param2 = fdir }) - spawned = true - elseif objtype == "function" then - nodes_or_function_or_model(pos) - spawned = true - elseif objtype == "string" and pcall(loadstring(("return %s(...)"): - format(nodes_or_function_or_model)),pos) then - spawned = true - else - biome_lib:dbg("Warning: Ignored invalid definition for object "..dump(nodes_or_function_or_model).." that was pointed at {"..dump(pos).."}") - end - else - tries = tries + 1 - end - end - end - end -end - --- Primary mapgen spawner, for mods that can work with air checking enabled on --- a surface during the initial map read stage. - -function biome_lib:generate_block_with_air_checking() - if #biome_lib.blocklist_aircheck > 0 then - - local minp = biome_lib.blocklist_aircheck[1][1] - local maxp = biome_lib.blocklist_aircheck[1][2] - - -- use the block hash as a unique key into the surface nodes - -- tables, so that we can write the tables thread-safely. - - local blockhash = minetest.hash_node_position(minp) - - if not biome_lib.surface_nodes_aircheck.blockhash then - - if type(minetest.find_nodes_in_area_under_air) == "function" then -- use newer API call - biome_lib.surface_nodes_aircheck.blockhash = - minetest.find_nodes_in_area_under_air(minp, maxp, biome_lib.surfaceslist_aircheck) - else - local search_area = minetest.find_nodes_in_area(minp, maxp, biome_lib.surfaceslist_aircheck) - - -- search the generated block for air-bounded surfaces the slow way. - - biome_lib.surface_nodes_aircheck.blockhash = {} - - for i = 1, #search_area do - local pos = search_area[i] - local p_top = { x=pos.x, y=pos.y+1, z=pos.z } - if minetest.get_node(p_top).name == "air" then - biome_lib.surface_nodes_aircheck.blockhash[#biome_lib.surface_nodes_aircheck.blockhash + 1] = pos - end - end - end - biome_lib.actioncount_aircheck.blockhash = 1 - - else - if biome_lib.actioncount_aircheck.blockhash <= #biome_lib.actionslist_aircheck then - -- [1] is biome, [2] is node/function/model - biome_lib:populate_surfaces( - biome_lib.actionslist_aircheck[biome_lib.actioncount_aircheck.blockhash][1], - biome_lib.actionslist_aircheck[biome_lib.actioncount_aircheck.blockhash][2], - biome_lib.surface_nodes_aircheck.blockhash, true) - biome_lib.actioncount_aircheck.blockhash = biome_lib.actioncount_aircheck.blockhash + 1 - else - if biome_lib.surface_nodes_aircheck.blockhash then - table.remove(biome_lib.blocklist_aircheck, 1) - biome_lib.surface_nodes_aircheck.blockhash = nil - end - end - end - end -end - --- Secondary mapgen spawner, for mods that require disabling of --- checking for air during the initial map read stage. - -function biome_lib:generate_block_no_aircheck() - if #biome_lib.blocklist_no_aircheck > 0 then - - local minp = biome_lib.blocklist_no_aircheck[1][1] - local maxp = biome_lib.blocklist_no_aircheck[1][2] - - local blockhash = minetest.hash_node_position(minp) - - if not biome_lib.surface_nodes_no_aircheck.blockhash then - - -- directly read the block to be searched into the chunk cache - - biome_lib.surface_nodes_no_aircheck.blockhash = - minetest.find_nodes_in_area(minp, maxp, biome_lib.surfaceslist_no_aircheck) - biome_lib.actioncount_no_aircheck.blockhash = 1 - - else - if biome_lib.actioncount_no_aircheck.blockhash <= #biome_lib.actionslist_no_aircheck then - biome_lib:populate_surfaces( - biome_lib.actionslist_no_aircheck[biome_lib.actioncount_no_aircheck.blockhash][1], - biome_lib.actionslist_no_aircheck[biome_lib.actioncount_no_aircheck.blockhash][2], - biome_lib.surface_nodes_no_aircheck.blockhash, false) - biome_lib.actioncount_no_aircheck.blockhash = biome_lib.actioncount_no_aircheck.blockhash + 1 - else - if biome_lib.surface_nodes_no_aircheck.blockhash then - table.remove(biome_lib.blocklist_no_aircheck, 1) - biome_lib.surface_nodes_no_aircheck.blockhash = nil - end - end - end - end -end - --- "Record" the chunks being generated by the core mapgen - -minetest.register_on_generated(function(minp, maxp, blockseed) - biome_lib.blocklist_aircheck[#biome_lib.blocklist_aircheck + 1] = { minp, maxp } -end) - -minetest.register_on_generated(function(minp, maxp, blockseed) - biome_lib.blocklist_no_aircheck[#biome_lib.blocklist_no_aircheck + 1] = { minp, maxp } -end) - --- "Play" them back, populating them with new stuff in the process - -minetest.register_globalstep(function(dtime) - if dtime < 0.2 and -- don't attempt to populate if lag is already too high - (#biome_lib.blocklist_aircheck > 0 or #biome_lib.blocklist_no_aircheck > 0) then - biome_lib.globalstep_start_time = minetest.get_us_time() - biome_lib.globalstep_runtime = 0 - while (#biome_lib.blocklist_aircheck > 0 or #biome_lib.blocklist_no_aircheck > 0) - and biome_lib.globalstep_runtime < 200000 do -- 0.2 seconds, in uS. - if #biome_lib.blocklist_aircheck > 0 then - biome_lib:generate_block_with_air_checking() - end - if #biome_lib.blocklist_no_aircheck > 0 then - biome_lib:generate_block_no_aircheck() - end - biome_lib.globalstep_runtime = minetest.get_us_time() - biome_lib.globalstep_start_time - end - end -end) - --- Play out the entire log all at once on shutdown --- to prevent unpopulated map areas - -minetest.register_on_shutdown(function() - minetest.log("action", "[biome_lib] Stand by, playing out the rest of the aircheck mapblock log") - minetest.log("action", "(there are "..#biome_lib.blocklist_aircheck.." entries)...") - while true do - biome_lib:generate_block_with_air_checking(0.1) - if #biome_lib.blocklist_aircheck == 0 then return end - end -end) - -minetest.register_on_shutdown(function() - minetest.log("action", "[biome_lib] Stand by, playing out the rest of the no-aircheck mapblock log") - minetest.log("action", "(there are "..#biome_lib.blocklist_aircheck.." entries)...") - while true do - biome_lib:generate_block_no_aircheck(0.1) - if #biome_lib.blocklist_no_aircheck == 0 then return end - end -end) - --- The spawning ABM - -function biome_lib:spawn_on_surfaces(sd,sp,sr,sc,ss,sa) - - local biome = {} - - if type(sd) ~= "table" then - biome.spawn_delay = sd -- old api expects ABM interval param here. - biome.spawn_plants = {sp} - biome.avoid_radius = sr - biome.spawn_chance = sc - biome.spawn_surfaces = {ss} - biome.avoid_nodes = sa - else - biome = sd - end - - if biome.spawn_delay*time_scale >= 1 then - biome.interval = biome.spawn_delay*time_scale - else - biome.interval = 1 - end - - biome_lib:set_defaults(biome) - biome.spawn_plants_count = #(biome.spawn_plants) - - minetest.register_abm({ - nodenames = biome.spawn_surfaces, - interval = biome.interval, - chance = biome.spawn_chance, - neighbors = biome.neighbors, - action = function(pos, node, active_object_count, active_object_count_wider) - local p_top = { x = pos.x, y = pos.y + 1, z = pos.z } - local n_top = minetest.get_node(p_top) - local perlin_fertile_area = minetest.get_perlin(biome.seed_diff, perlin_octaves, perlin_persistence, perlin_scale) - local noise1 = perlin_fertile_area:get2d({x=p_top.x, y=p_top.z}) - local noise2 = biome_lib.perlin_temperature:get2d({x=p_top.x, y=p_top.z}) - local noise3 = biome_lib.perlin_humidity:get2d({x=p_top.x+150, y=p_top.z+50}) - if noise1 > biome.plantlife_limit - and noise2 <= biome.temp_min - and noise2 >= biome.temp_max - and noise3 <= biome.humidity_min - and noise3 >= biome.humidity_max - and biome_lib:is_node_loaded(p_top) then - local n_light = minetest.get_node_light(p_top, nil) - if not (biome.avoid_nodes and biome.avoid_radius and minetest.find_node_near(p_top, biome.avoid_radius + math.random(-1.5,2), biome.avoid_nodes)) - and n_light >= biome.light_min - and n_light <= biome.light_max - and (not(biome.neighbors and biome.ncount) or #(minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, biome.neighbors)) > biome.ncount ) - and (not(biome.near_nodes and biome.near_nodes_count and biome.near_nodes_size) or #(minetest.find_nodes_in_area({x=pos.x-biome.near_nodes_size, y=pos.y-biome.near_nodes_vertical, z=pos.z-biome.near_nodes_size}, {x=pos.x+biome.near_nodes_size, y=pos.y+biome.near_nodes_vertical, z=pos.z+biome.near_nodes_size}, biome.near_nodes)) >= biome.near_nodes_count) - and (not(biome.air_count and biome.air_size) or #(minetest.find_nodes_in_area({x=p_top.x-biome.air_size, y=p_top.y, z=p_top.z-biome.air_size}, {x=p_top.x+biome.air_size, y=p_top.y, z=p_top.z+biome.air_size}, "air")) >= biome.air_count) - and pos.y >= biome.min_elevation - and pos.y <= biome.max_elevation - then - local walldir = biome_lib:find_adjacent_wall(p_top, biome.verticals_list, biome.choose_random_wall) - if biome.alt_wallnode and walldir then - if n_top.name == "air" then - minetest.set_node(p_top, { name = biome.alt_wallnode, param2 = walldir }) - end - else - local currentsurface = minetest.get_node(pos).name - if currentsurface ~= "default:water_source" - or (currentsurface == "default:water_source" and #(minetest.find_nodes_in_area({x=pos.x, y=pos.y-biome.depth_max-1, z=pos.z}, {x=pos.x, y=pos.y, z=pos.z}, {"default:dirt", "default:dirt_with_grass", "default:sand"})) > 0 ) - then - local rnd = math.random(1, biome.spawn_plants_count) - local plant_to_spawn = biome.spawn_plants[rnd] - local fdir = biome.facedir - if biome.random_facedir then - fdir = math.random(biome.random_facedir[1],biome.random_facedir[2]) - end - if type(biome.spawn_plants) == "string" then - assert(loadstring(biome.spawn_plants.."(...)"))(pos) - elseif not biome.spawn_on_side and not biome.spawn_on_bottom and not biome.spawn_replace_node then - if n_top.name == "air" then - minetest.set_node(p_top, { name = plant_to_spawn, param2 = fdir }) - end - elseif biome.spawn_replace_node then - minetest.set_node(pos, { name = plant_to_spawn, param2 = fdir }) - - elseif biome.spawn_on_side then - local onside = biome_lib:find_open_side(pos) - if onside then - minetest.set_node(onside.newpos, { name = plant_to_spawn, param2 = onside.facedir }) - end - elseif biome.spawn_on_bottom then - if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "air" then - minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z}, { name = plant_to_spawn, param2 = fdir} ) - end - end - end - end - end - end - end - }) -end - --- The growing ABM - -function biome_lib:grow_plants(opts) - - local options = opts - - options.height_limit = options.height_limit or 5 - options.ground_nodes = options.ground_nodes or { "default:dirt_with_grass" } - options.grow_nodes = options.grow_nodes or { "default:dirt_with_grass" } - options.seed_diff = options.seed_diff or 0 - - if options.grow_delay*time_scale >= 1 then - options.interval = options.grow_delay*time_scale - else - options.interval = 1 - end - - minetest.register_abm({ - nodenames = { options.grow_plant }, - interval = options.interval, - chance = options.grow_chance, - action = function(pos, node, active_object_count, active_object_count_wider) - local p_top = {x=pos.x, y=pos.y+1, z=pos.z} - local p_bot = {x=pos.x, y=pos.y-1, z=pos.z} - local n_top = minetest.get_node(p_top) - local n_bot = minetest.get_node(p_bot) - local root_node = minetest.get_node({x=pos.x, y=pos.y-options.height_limit, z=pos.z}) - local walldir = nil - if options.need_wall and options.verticals_list then - walldir = biome_lib:find_adjacent_wall(p_top, options.verticals_list, options.choose_random_wall) - end - if (n_top.name == "air" or n_top.name == "default:snow") - and (not options.need_wall or (options.need_wall and walldir)) then - -- corner case for changing short junglegrass - -- to dry shrub in desert - if n_bot.name == options.dry_early_node and options.grow_plant == "junglegrass:short" then - minetest.set_node(pos, { name = "default:dry_shrub" }) - - elseif options.grow_vertically and walldir then - if biome_lib:search_downward(pos, options.height_limit, options.ground_nodes) then - minetest.set_node(p_top, { name = options.grow_plant, param2 = walldir}) - end - - elseif not options.grow_result and not options.grow_function then - minetest.remove_node(pos) - - else - biome_lib:replace_object(pos, options.grow_result, options.grow_function, options.facedir, options.seed_diff) - end - end - end - }) -end - --- Function to decide how to replace a plant - either grow it, replace it with --- a tree, run a function, or die with an error. - -function biome_lib:replace_object(pos, replacement, grow_function, walldir, seeddiff) - local growtype = type(grow_function) - if growtype == "table" then - minetest.remove_node(pos) - biome_lib:grow_tree(pos, grow_function) - return - elseif growtype == "function" then - local perlin_fertile_area = minetest.get_perlin(seeddiff, perlin_octaves, perlin_persistence, perlin_scale) - local noise1 = perlin_fertile_area:get2d({x=pos.x, y=pos.z}) - local noise2 = biome_lib.perlin_temperature:get2d({x=pos.x, y=pos.z}) - grow_function(pos,noise1,noise2,walldir) - return - elseif growtype == "string" then - local perlin_fertile_area = minetest.get_perlin(seeddiff, perlin_octaves, perlin_persistence, perlin_scale) - local noise1 = perlin_fertile_area:get2d({x=pos.x, y=pos.z}) - local noise2 = biome_lib.perlin_temperature:get2d({x=pos.x, y=pos.z}) - assert(loadstring(grow_function.."(...)"))(pos,noise1,noise2,walldir) - return - elseif growtype == "nil" then - minetest.set_node(pos, { name = replacement, param2 = walldir}) - return - elseif growtype ~= "nil" and growtype ~= "string" and growtype ~= "table" then - error("Invalid grow function "..dump(grow_function).." used on object at ("..dump(pos)..")") - end -end - --- function to decide if a node has a wall that's in verticals_list{} --- returns wall direction of valid node, or nil if invalid. - -function biome_lib:find_adjacent_wall(pos, verticals, randomflag) - local verts = dump(verticals) - if randomflag then - local walltab = {} - - if string.find(verts, minetest.get_node({ x=pos.x-1, y=pos.y, z=pos.z }).name) then walltab[#walltab + 1] = 3 end - if string.find(verts, minetest.get_node({ x=pos.x+1, y=pos.y, z=pos.z }).name) then walltab[#walltab + 1] = 2 end - if string.find(verts, minetest.get_node({ x=pos.x , y=pos.y, z=pos.z-1 }).name) then walltab[#walltab + 1] = 5 end - if string.find(verts, minetest.get_node({ x=pos.x , y=pos.y, z=pos.z+1 }).name) then walltab[#walltab + 1] = 4 end - - if #walltab > 0 then return walltab[math.random(1, #walltab)] end - - else - if string.find(verts, minetest.get_node({ x=pos.x-1, y=pos.y, z=pos.z }).name) then return 3 end - if string.find(verts, minetest.get_node({ x=pos.x+1, y=pos.y, z=pos.z }).name) then return 2 end - if string.find(verts, minetest.get_node({ x=pos.x , y=pos.y, z=pos.z-1 }).name) then return 5 end - if string.find(verts, minetest.get_node({ x=pos.x , y=pos.y, z=pos.z+1 }).name) then return 4 end - end - return nil -end - --- Function to search downward from the given position, looking for the first --- node that matches the ground table. Returns the new position, or nil if --- height limit is exceeded before finding it. - -function biome_lib:search_downward(pos, heightlimit, ground) - for i = 0, heightlimit do - if string.find(dump(ground), minetest.get_node({x=pos.x, y=pos.y-i, z = pos.z}).name) then - return {x=pos.x, y=pos.y-i, z = pos.z} - end - end - return false -end - -function biome_lib:find_open_side(pos) - if minetest.get_node({ x=pos.x-1, y=pos.y, z=pos.z }).name == "air" then - return {newpos = { x=pos.x-1, y=pos.y, z=pos.z }, facedir = 2} - end - if minetest.get_node({ x=pos.x+1, y=pos.y, z=pos.z }).name == "air" then - return {newpos = { x=pos.x+1, y=pos.y, z=pos.z }, facedir = 3} - end - if minetest.get_node({ x=pos.x, y=pos.y, z=pos.z-1 }).name == "air" then - return {newpos = { x=pos.x, y=pos.y, z=pos.z-1 }, facedir = 4} - end - if minetest.get_node({ x=pos.x, y=pos.y, z=pos.z+1 }).name == "air" then - return {newpos = { x=pos.x, y=pos.y, z=pos.z+1 }, facedir = 5} - end - return nil -end - --- spawn_tree() on generate is routed through here so that other mods can hook --- into it. - -function biome_lib:generate_tree(pos, nodes_or_function_or_model) - minetest.spawn_tree(pos, nodes_or_function_or_model) -end - --- and this one's for the call used in the growing code - -function biome_lib:grow_tree(pos, nodes_or_function_or_model) - minetest.spawn_tree(pos, nodes_or_function_or_model) -end - --- Check for infinite stacks - -if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then - biome_lib.expect_infinite_stacks = false -else - biome_lib.expect_infinite_stacks = true -end - --- read a field from a node's definition - -function biome_lib:get_nodedef_field(nodename, fieldname) - if not minetest.registered_nodes[nodename] then - return nil - end - return minetest.registered_nodes[nodename][fieldname] -end - -minetest.log("action", "[Biome Lib] Loaded") - -minetest.after(0, function() - minetest.log("action", "[Biome Lib] Registered a total of "..(#biome_lib.surfaceslist_aircheck)+(#biome_lib.surfaceslist_no_aircheck).." surface types to be evaluated, spread") - minetest.log("action", "[Biome Lib] across "..#biome_lib.actionslist_aircheck.." actions with air-checking and "..#biome_lib.actionslist_no_aircheck.." actions without.") -end) - diff --git a/mods/biome_lib/locale/de.txt b/mods/biome_lib/locale/de.txt deleted file mode 100755 index 28867868..00000000 --- a/mods/biome_lib/locale/de.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Translation by Xanthin - -someone = jemand -Sorry, %s owns that spot. = Entschuldige, %s gehoert diese Stelle. -[Plantlife Library] Loaded = [Plantlife Library] Geladen diff --git a/mods/biome_lib/locale/fr.txt b/mods/biome_lib/locale/fr.txt deleted file mode 100755 index 90709002..00000000 --- a/mods/biome_lib/locale/fr.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Template - -someone = quelqu'un -Sorry, %s owns that spot. = Désolé, %s possède cet endroit. -[Plantlife Library] Loaded = [Librairie Plantlife] Chargée. diff --git a/mods/biome_lib/locale/template.txt b/mods/biome_lib/locale/template.txt deleted file mode 100755 index 0f5fbbd4..00000000 --- a/mods/biome_lib/locale/template.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Template - -someone = -Sorry, %s owns that spot. = -[Plantlife Library] Loaded = diff --git a/mods/biome_lib/locale/tr.txt b/mods/biome_lib/locale/tr.txt deleted file mode 100755 index 4b596f40..00000000 --- a/mods/biome_lib/locale/tr.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Turkish translation by mahmutelmas06 - -someone = birisi -Sorry, %s owns that spot. = Ãœzgünüm, buranın sahibi %s. -[Plantlife Library] Loaded = [Plantlife Library] yüklendi diff --git a/mods/biome_lib/mod.conf b/mods/biome_lib/mod.conf deleted file mode 100644 index 7742141a..00000000 --- a/mods/biome_lib/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name = biome_lib diff --git a/mods/farming b/mods/farming index 271c1718..97c4ecf7 160000 --- a/mods/farming +++ b/mods/farming @@ -1 +1 @@ -Subproject commit 271c17180e2ec98a8c1981bb5f18070f990ce846 +Subproject commit 97c4ecf7059c898c2ca42058e588220315dfa350 diff --git a/mods/moretrees b/mods/moretrees new file mode 160000 index 00000000..324155f8 --- /dev/null +++ b/mods/moretrees @@ -0,0 +1 @@ +Subproject commit 324155f80519259fdf58f43604cecbf47bfb035e diff --git a/mods/moretrees/.gitignore b/mods/moretrees/.gitignore deleted file mode 100755 index b25c15b8..00000000 --- a/mods/moretrees/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*~ diff --git a/mods/moretrees/LICENSE b/mods/moretrees/LICENSE deleted file mode 100755 index c4742e6b..00000000 --- a/mods/moretrees/LICENSE +++ /dev/null @@ -1,392 +0,0 @@ -Minetest mod moretrees -====================== - -All source code: - © 2013, Vanessa Ezekowitz - Published under the terms and conditions of the WTFPL. -All sapling textures (textures/*_sapling.png): - © 2013, Tim Huppertz - Published under the terms and conditions of CC-BY-SA-3.0 Unported. -All other textures: - © 2013, Vanessa Ezekowitz - Published under the terms and conditions of CC-BY-SA-3.0 Unported. - -------------------------------------------------------------------------------- - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. - -This license is commonly known as "WTFPL". - -------------------------------------------------------------------------------- - -Creative Commons Legal Code - -Attribution-ShareAlike 3.0 Unported - - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE - LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN - ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS - INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES - REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR - DAMAGES RESULTING FROM ITS USE. - -License - -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE -COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY -COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS -AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE -TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY -BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS -CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND -CONDITIONS. - -1. Definitions - - a. "Adaptation" means a work based upon the Work, or upon the Work and - other pre-existing works, such as a translation, adaptation, - derivative work, arrangement of music or other alterations of a - literary or artistic work, or phonogram or performance and includes - cinematographic adaptations or any other form in which the Work may be - recast, transformed, or adapted including in any form recognizably - derived from the original, except that a work that constitutes a - Collection will not be considered an Adaptation for the purpose of - this License. For the avoidance of doubt, where the Work is a musical - work, performance or phonogram, the synchronization of the Work in - timed-relation with a moving image ("synching") will be considered an - Adaptation for the purpose of this License. - b. "Collection" means a collection of literary or artistic works, such as - encyclopedias and anthologies, or performances, phonograms or - broadcasts, or other works or subject matter other than works listed - in Section 1(f) below, which, by reason of the selection and - arrangement of their contents, constitute intellectual creations, in - which the Work is included in its entirety in unmodified form along - with one or more other contributions, each constituting separate and - independent works in themselves, which together are assembled into a - collective whole. A work that constitutes a Collection will not be - considered an Adaptation (as defined below) for the purposes of this - License. - c. "Creative Commons Compatible License" means a license that is listed - at http://creativecommons.org/compatiblelicenses that has been - approved by Creative Commons as being essentially equivalent to this - License, including, at a minimum, because that license: (i) contains - terms that have the same purpose, meaning and effect as the License - Elements of this License; and, (ii) explicitly permits the relicensing - of adaptations of works made available under that license under this - License or a Creative Commons jurisdiction license with the same - License Elements as this License. - d. "Distribute" means to make available to the public the original and - copies of the Work or Adaptation, as appropriate, through sale or - other transfer of ownership. - e. "License Elements" means the following high-level license attributes - as selected by Licensor and indicated in the title of this License: - Attribution, ShareAlike. - f. "Licensor" means the individual, individuals, entity or entities that - offer(s) the Work under the terms of this License. - g. "Original Author" means, in the case of a literary or artistic work, - the individual, individuals, entity or entities who created the Work - or if no individual or entity can be identified, the publisher; and in - addition (i) in the case of a performance the actors, singers, - musicians, dancers, and other persons who act, sing, deliver, declaim, - play in, interpret or otherwise perform literary or artistic works or - expressions of folklore; (ii) in the case of a phonogram the producer - being the person or legal entity who first fixes the sounds of a - performance or other sounds; and, (iii) in the case of broadcasts, the - organization that transmits the broadcast. - h. "Work" means the literary and/or artistic work offered under the terms - of this License including without limitation any production in the - literary, scientific and artistic domain, whatever may be the mode or - form of its expression including digital form, such as a book, - pamphlet and other writing; a lecture, address, sermon or other work - of the same nature; a dramatic or dramatico-musical work; a - choreographic work or entertainment in dumb show; a musical - composition with or without words; a cinematographic work to which are - assimilated works expressed by a process analogous to cinematography; - a work of drawing, painting, architecture, sculpture, engraving or - lithography; a photographic work to which are assimilated works - expressed by a process analogous to photography; a work of applied - art; an illustration, map, plan, sketch or three-dimensional work - relative to geography, topography, architecture or science; a - performance; a broadcast; a phonogram; a compilation of data to the - extent it is protected as a copyrightable work; or a work performed by - a variety or circus performer to the extent it is not otherwise - considered a literary or artistic work. - i. "You" means an individual or entity exercising rights under this - License who has not previously violated the terms of this License with - respect to the Work, or who has received express permission from the - Licensor to exercise rights under this License despite a previous - violation. - j. "Publicly Perform" means to perform public recitations of the Work and - to communicate to the public those public recitations, by any means or - process, including by wire or wireless means or public digital - performances; to make available to the public Works in such a way that - members of the public may access these Works from a place and at a - place individually chosen by them; to perform the Work to the public - by any means or process and the communication to the public of the - performances of the Work, including by public digital performance; to - broadcast and rebroadcast the Work by any means including signs, - sounds or images. - k. "Reproduce" means to make copies of the Work by any means including - without limitation by sound or visual recordings and the right of - fixation and reproducing fixations of the Work, including storage of a - protected performance or phonogram in digital form or other electronic - medium. - -2. Fair Dealing Rights. Nothing in this License is intended to reduce, -limit, or restrict any uses free from copyright or rights arising from -limitations or exceptions that are provided for in connection with the -copyright protection under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, -Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -perpetual (for the duration of the applicable copyright) license to -exercise the rights in the Work as stated below: - - a. to Reproduce the Work, to incorporate the Work into one or more - Collections, and to Reproduce the Work as incorporated in the - Collections; - b. to create and Reproduce Adaptations provided that any such Adaptation, - including any translation in any medium, takes reasonable steps to - clearly label, demarcate or otherwise identify that changes were made - to the original Work. For example, a translation could be marked "The - original work was translated from English to Spanish," or a - modification could indicate "The original work has been modified."; - c. to Distribute and Publicly Perform the Work including as incorporated - in Collections; and, - d. to Distribute and Publicly Perform Adaptations. - e. For the avoidance of doubt: - - i. Non-waivable Compulsory License Schemes. In those jurisdictions in - which the right to collect royalties through any statutory or - compulsory licensing scheme cannot be waived, the Licensor - reserves the exclusive right to collect such royalties for any - exercise by You of the rights granted under this License; - ii. Waivable Compulsory License Schemes. In those jurisdictions in - which the right to collect royalties through any statutory or - compulsory licensing scheme can be waived, the Licensor waives the - exclusive right to collect such royalties for any exercise by You - of the rights granted under this License; and, - iii. Voluntary License Schemes. The Licensor waives the right to - collect royalties, whether individually or, in the event that the - Licensor is a member of a collecting society that administers - voluntary licensing schemes, via that society, from any exercise - by You of the rights granted under this License. - -The above rights may be exercised in all media and formats whether now -known or hereafter devised. The above rights include the right to make -such modifications as are technically necessary to exercise the rights in -other media and formats. Subject to Section 8(f), all rights not expressly -granted by Licensor are hereby reserved. - -4. Restrictions. The license granted in Section 3 above is expressly made -subject to and limited by the following restrictions: - - a. You may Distribute or Publicly Perform the Work only under the terms - of this License. You must include a copy of, or the Uniform Resource - Identifier (URI) for, this License with every copy of the Work You - Distribute or Publicly Perform. You may not offer or impose any terms - on the Work that restrict the terms of this License or the ability of - the recipient of the Work to exercise the rights granted to that - recipient under the terms of the License. You may not sublicense the - Work. You must keep intact all notices that refer to this License and - to the disclaimer of warranties with every copy of the Work You - Distribute or Publicly Perform. When You Distribute or Publicly - Perform the Work, You may not impose any effective technological - measures on the Work that restrict the ability of a recipient of the - Work from You to exercise the rights granted to that recipient under - the terms of the License. This Section 4(a) applies to the Work as - incorporated in a Collection, but this does not require the Collection - apart from the Work itself to be made subject to the terms of this - License. If You create a Collection, upon notice from any Licensor You - must, to the extent practicable, remove from the Collection any credit - as required by Section 4(c), as requested. If You create an - Adaptation, upon notice from any Licensor You must, to the extent - practicable, remove from the Adaptation any credit as required by - Section 4(c), as requested. - b. You may Distribute or Publicly Perform an Adaptation only under the - terms of: (i) this License; (ii) a later version of this License with - the same License Elements as this License; (iii) a Creative Commons - jurisdiction license (either this or a later license version) that - contains the same License Elements as this License (e.g., - Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible - License. If you license the Adaptation under one of the licenses - mentioned in (iv), you must comply with the terms of that license. If - you license the Adaptation under the terms of any of the licenses - mentioned in (i), (ii) or (iii) (the "Applicable License"), you must - comply with the terms of the Applicable License generally and the - following provisions: (I) You must include a copy of, or the URI for, - the Applicable License with every copy of each Adaptation You - Distribute or Publicly Perform; (II) You may not offer or impose any - terms on the Adaptation that restrict the terms of the Applicable - License or the ability of the recipient of the Adaptation to exercise - the rights granted to that recipient under the terms of the Applicable - License; (III) You must keep intact all notices that refer to the - Applicable License and to the disclaimer of warranties with every copy - of the Work as included in the Adaptation You Distribute or Publicly - Perform; (IV) when You Distribute or Publicly Perform the Adaptation, - You may not impose any effective technological measures on the - Adaptation that restrict the ability of a recipient of the Adaptation - from You to exercise the rights granted to that recipient under the - terms of the Applicable License. This Section 4(b) applies to the - Adaptation as incorporated in a Collection, but this does not require - the Collection apart from the Adaptation itself to be made subject to - the terms of the Applicable License. - c. If You Distribute, or Publicly Perform the Work or any Adaptations or - Collections, You must, unless a request has been made pursuant to - Section 4(a), keep intact all copyright notices for the Work and - provide, reasonable to the medium or means You are utilizing: (i) the - name of the Original Author (or pseudonym, if applicable) if supplied, - and/or if the Original Author and/or Licensor designate another party - or parties (e.g., a sponsor institute, publishing entity, journal) for - attribution ("Attribution Parties") in Licensor's copyright notice, - terms of service or by other reasonable means, the name of such party - or parties; (ii) the title of the Work if supplied; (iii) to the - extent reasonably practicable, the URI, if any, that Licensor - specifies to be associated with the Work, unless such URI does not - refer to the copyright notice or licensing information for the Work; - and (iv) , consistent with Ssection 3(b), in the case of an - Adaptation, a credit identifying the use of the Work in the Adaptation - (e.g., "French translation of the Work by Original Author," or - "Screenplay based on original Work by Original Author"). The credit - required by this Section 4(c) may be implemented in any reasonable - manner; provided, however, that in the case of a Adaptation or - Collection, at a minimum such credit will appear, if a credit for all - contributing authors of the Adaptation or Collection appears, then as - part of these credits and in a manner at least as prominent as the - credits for the other contributing authors. For the avoidance of - doubt, You may only use the credit required by this Section for the - purpose of attribution in the manner set out above and, by exercising - Your rights under this License, You may not implicitly or explicitly - assert or imply any connection with, sponsorship or endorsement by the - Original Author, Licensor and/or Attribution Parties, as appropriate, - of You or Your use of the Work, without the separate, express prior - written permission of the Original Author, Licensor and/or Attribution - Parties. - d. Except as otherwise agreed in writing by the Licensor or as may be - otherwise permitted by applicable law, if You Reproduce, Distribute or - Publicly Perform the Work either by itself or as part of any - Adaptations or Collections, You must not distort, mutilate, modify or - take other derogatory action in relation to the Work which would be - prejudicial to the Original Author's honor or reputation. Licensor - agrees that in those jurisdictions (e.g. Japan), in which any exercise - of the right granted in Section 3(b) of this License (the right to - make Adaptations) would be deemed to be a distortion, mutilation, - modification or other derogatory action prejudicial to the Original - Author's honor and reputation, the Licensor will waive or not assert, - as appropriate, this Section, to the fullest extent permitted by the - applicable national law, to enable You to reasonably exercise Your - right under Section 3(b) of this License (right to make Adaptations) - but not otherwise. - -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR -OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY -KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, -INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, -FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF -LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, -WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION -OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE -LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR -ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES -ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS -BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - a. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this License. - Individuals or entities who have received Adaptations or Collections - from You under this License, however, will not have their licenses - terminated provided such individuals or entities remain in full - compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will - survive any termination of this License. - b. Subject to the above terms and conditions, the license granted here is - perpetual (for the duration of the applicable copyright in the Work). - Notwithstanding the above, Licensor reserves the right to release the - Work under different license terms or to stop distributing the Work at - any time; provided, however that any such election will not serve to - withdraw this License (or any other license that has been, or is - required to be, granted under the terms of this License), and this - License will continue in full force and effect unless terminated as - stated above. - -8. Miscellaneous - - a. Each time You Distribute or Publicly Perform the Work or a Collection, - the Licensor offers to the recipient a license to the Work on the same - terms and conditions as the license granted to You under this License. - b. Each time You Distribute or Publicly Perform an Adaptation, Licensor - offers to the recipient a license to the original Work on the same - terms and conditions as the license granted to You under this License. - c. If any provision of this License is invalid or unenforceable under - applicable law, it shall not affect the validity or enforceability of - the remainder of the terms of this License, and without further action - by the parties to this agreement, such provision shall be reformed to - the minimum extent necessary to make such provision valid and - enforceable. - d. No term or provision of this License shall be deemed waived and no - breach consented to unless such waiver or consent shall be in writing - and signed by the party to be charged with such waiver or consent. - e. This License constitutes the entire agreement between the parties with - respect to the Work licensed here. There are no understandings, - agreements or representations with respect to the Work not specified - here. Licensor shall not be bound by any additional provisions that - may appear in any communication from You. This License may not be - modified without the mutual written agreement of the Licensor and You. - f. The rights granted under, and the subject matter referenced, in this - License were drafted utilizing the terminology of the Berne Convention - for the Protection of Literary and Artistic Works (as amended on - September 28, 1979), the Rome Convention of 1961, the WIPO Copyright - Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 - and the Universal Copyright Convention (as revised on July 24, 1971). - These rights and subject matter take effect in the relevant - jurisdiction in which the License terms are sought to be enforced - according to the corresponding provisions of the implementation of - those treaty provisions in the applicable national law. If the - standard suite of rights granted under applicable copyright law - includes additional rights not granted under this License, such - additional rights are deemed to be included in the License; this - License is not intended to restrict the license of any rights under - applicable law. - - -Creative Commons Notice - - Creative Commons is not a party to this License, and makes no warranty - whatsoever in connection with the Work. Creative Commons will not be - liable to You or any party on any legal theory for any damages - whatsoever, including without limitation any general, special, - incidental or consequential damages arising in connection to this - license. Notwithstanding the foregoing two (2) sentences, if Creative - Commons has expressly identified itself as the Licensor hereunder, it - shall have all rights and obligations of Licensor. - - Except for the limited purpose of indicating to the public that the - Work is licensed under the CCPL, Creative Commons does not authorize - the use by either party of the trademark "Creative Commons" or any - related trademark or logo of Creative Commons without the prior - written consent of Creative Commons. Any permitted use will be in - compliance with Creative Commons' then-current trademark usage - guidelines, as may be published on its website or otherwise made - available upon request from time to time. For the avoidance of doubt, - this trademark restriction does not form part of the License. - - Creative Commons may be contacted at http://creativecommons.org/. diff --git a/mods/moretrees/README.md b/mods/moretrees/README.md deleted file mode 100755 index 905cefa4..00000000 --- a/mods/moretrees/README.md +++ /dev/null @@ -1,11 +0,0 @@ -More trees! - -This mod adds a whole bunch of new types of trees to the game - -Much of the code here came from cisoun's conifers mod and bas080's -jungle trees mod, and big contributions by RealBadAngel. - -Brought together into one mod and made L-systems compatible by Vanessa -Ezekowitz. - -Dependencies: biome_lib and default diff --git a/mods/moretrees/biome_defs.lua b/mods/moretrees/biome_defs.lua deleted file mode 100755 index 48efee0d..00000000 --- a/mods/moretrees/biome_defs.lua +++ /dev/null @@ -1,188 +0,0 @@ - -moretrees.beech_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 8, - seed_diff = 2, - rarity = 50, - max_count = 20, -} - -moretrees.palm_biome = { - surface = "default:sand", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 5, - seed_diff = 330, - min_elevation = -1, - max_elevation = 1, - near_nodes = {"default:water_source"}, - near_nodes_size = 15, - near_nodes_count = 10, - temp_min = 0.25, - temp_max = -0.15, - rarity = 50, - max_count = 10, -} - -moretrees.apple_tree_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 10, - seed_diff = 331, - min_elevation = 1, - max_elevation = 10, - temp_min = 0.1, - temp_max = -0.15, - rarity = 75, - max_count = 5, -} - -moretrees.oak_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 15, - seed_diff = 332, - min_elevation = 0, - max_elevation = 10, - temp_min = 0.4, - temp_max = 0.2, - rarity = 50, - max_count = 5, -} - -moretrees.sequoia_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 10, - seed_diff = 333, - min_elevation = 0, - max_elevation = 10, - temp_min = 1, - temp_max = -0.4, - rarity = 90, - max_count = 5, -} - -moretrees.birch_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 5, - seed_diff = 334, - min_elevation = 10, - max_elevation = 15, - temp_min = 0.9, - temp_max = 0.3, - rarity = 50, - max_count = 10, -} - -moretrees.willow_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 10, - seed_diff = 337, - min_elevation = -5, - max_elevation = 5, - near_nodes = {"default:water_source"}, - near_nodes_size = 15, - near_nodes_count = 5, - rarity = 75, - max_count = 5, -} - -moretrees.acacia_biome = { - surface = { "default:dirt_with_grass", "default:dirt_with_dry_grass", "default:desert_sand" }, - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 15, - seed_diff = 1, - rarity = 50, - max_count = 15, - plantlife_limit = -1, - humidity_min = 0.3, - humidity_max = 0, -} - -moretrees.rubber_tree_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 10, - seed_diff = 338, - min_elevation = -5, - max_elevation = 5, - near_nodes = {"default:water_source"}, - near_nodes_size = 15, - near_nodes_count = 10, - temp_min = -0.15, - rarity = 75, - max_count = 10, -} - -moretrees.jungletree_biome = { - surface = { - "default:dirt", - "default:dirt_with_grass", - "woodsoils:dirt_with_leaves_1", - "woodsoils:grass_with_leaves_1", - "woodsoils:grass_with_leaves_2" - }, - avoid_nodes = {"moretrees:jungletree_trunk"}, - max_count = 12, - avoid_radius = 3, - rarity = 85, - seed_diff = 329, - min_elevation = 1, - near_nodes = {"default:jungletree"}, - near_nodes_size = 6, - near_nodes_vertical = 2, - near_nodes_count = 1, - plantlife_limit = -0.9, -} - -moretrees.spruce_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 10, - seed_diff = 335, - min_elevation = 20, - temp_min = 0.9, - temp_max = 0.7, - rarity = 50, - max_count = 5, -} - -moretrees.cedar_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 10, - seed_diff = 336, - near_nodes = {"default:water_source"}, - near_nodes_size = 15, - near_nodes_count = 5, - rarity = 50, - max_count = 10, -} - -moretrees.fir_biome = { - surface = "default:dirt_with_grass", - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 10, - seed_diff = 359, - min_elevation = 25, - temp_min = 0.9, - temp_max = 0.3, - rarity = 50, - max_count = 10, -} - -moretrees.fir_biome_snow = { - surface = {"snow:dirt_with_snow", "snow:snow"}, - below_nodes = {"default:dirt", "default:dirt_with_grass", "snow:dirt_with_snow"}, - avoid_nodes = moretrees.avoidnodes, - avoid_radius = 10, - seed_diff = 359, - rarity = 50, - max_count = 10, - check_air = false, - delete_above = true, - spawn_replace_node = true -} diff --git a/mods/moretrees/crafts.lua b/mods/moretrees/crafts.lua deleted file mode 100755 index ad064da9..00000000 --- a/mods/moretrees/crafts.lua +++ /dev/null @@ -1,154 +0,0 @@ -local S = moretrees.intllib - -for i in ipairs(moretrees.treelist) do - local treename = moretrees.treelist[i][1] - - -- MODIFICATION MADE FOR MFF //MFF(Mg|08/12/15) - if minetest.registered_items["moretrees:" .. treename .. "_trunk_sideways"] then - minetest.register_craft({ - output = "moretrees:"..treename.."_trunk 2", - recipe = { - {"moretrees:"..treename.."_trunk_sideways"}, - {"moretrees:"..treename.."_trunk_sideways"} - } - }) - - minetest.register_craft({ - type = "shapeless", - output = "moretrees:"..treename.."_planks 4", - recipe = { - "moretrees:"..treename.."_trunk_sideways" - } - }) - end - - minetest.register_craft({ - type = "shapeless", - output = "moretrees:"..treename.."_planks 4", - recipe = { - "moretrees:"..treename.."_trunk" - } - }) - - minetest.register_craft({ - type = "fuel", - recipe = "moretrees:"..treename.."_sapling", - burntime = 10, - }) -end - -minetest.register_craft({ - type = "shapeless", - output = "moretrees:rubber_tree_planks 4", - recipe = { - "moretrees:rubber_tree_trunk_empty" - } -}) - -minetest.register_craft({ - type = "fuel", - recipe = "group:moretrees_leaves", - burntime = 1, -}) - --- Food recipes! - -minetest.register_craftitem("moretrees:coconut_milk", { - description = S("Coconut Milk"), - inventory_image = "moretrees_coconut_milk_inv.png", - wield_image = "moretrees_coconut_milk.png", - on_use = minetest.item_eat(2), -}) - -minetest.register_craftitem("moretrees:raw_coconut", { - description = S("Raw Coconut"), - inventory_image = "moretrees_raw_coconut.png", - on_use = minetest.item_eat(4), -}) - -minetest.register_craftitem("moretrees:acorn_muffin_batter", { - description = S("Acorn Muffin batter"), - inventory_image = "moretrees_acorn_muffin_batter.png", -}) - -minetest.register_craftitem("moretrees:acorn_muffin", { - description = S("Acorn Muffin"), - inventory_image = "moretrees_acorn_muffin.png", - on_use = minetest.item_eat(4), -}) - -minetest.register_craftitem("moretrees:spruce_nuts", { - description = S("Roasted Spruce Cone Nuts"), - inventory_image = "moretrees_spruce_nuts.png", - on_use = minetest.item_eat(1), -}) - -minetest.register_craftitem("moretrees:cedar_nuts", { - description = S("Roasted Cedar Cone Nuts"), - inventory_image = "moretrees_cedar_nuts.png", - on_use = minetest.item_eat(1), -}) - -minetest.register_craftitem("moretrees:fir_nuts", { - description = S("Roasted Fir Cone Nuts"), - inventory_image = "moretrees_fir_nuts.png", - on_use = minetest.item_eat(1), -}) - -for i in ipairs(moretrees.cutting_tools) do - local tool = moretrees.cutting_tools[i] - minetest.register_craft({ - type = "shapeless", - output = "moretrees:coconut_milk", - recipe = { - "moretrees:coconut", - "vessels:drinking_glass", - tool - }, - replacements = { - { "moretrees:coconut", "moretrees:raw_coconut" }, - { tool, tool } - } - }) -end - -minetest.register_craft({ - type = "shapeless", - output = "moretrees:acorn_muffin_batter", - recipe = { - "moretrees:acorn", - "moretrees:acorn", - "moretrees:acorn", - "moretrees:acorn", - "moretrees:coconut_milk", - }, - replacements = { - { "moretrees:coconut_milk", "vessels:drinking_glass" } - } -}) - -minetest.register_craft({ - type = "cooking", - output = "moretrees:acorn_muffin 4", - recipe = "moretrees:acorn_muffin_batter", -}) - -minetest.register_craft({ - type = "cooking", - output = "moretrees:spruce_nuts 4", - recipe = "moretrees:spruce_cone", -}) - -minetest.register_craft({ - type = "cooking", - output = "moretrees:cedar_nuts 4", - recipe = "moretrees:cedar_cone", -}) - -minetest.register_craft({ - type = "cooking", - output = "moretrees:fir_nuts 4", - recipe = "moretrees:fir_cone", -}) - - diff --git a/mods/moretrees/default_settings.txt b/mods/moretrees/default_settings.txt deleted file mode 100755 index 1bb85f52..00000000 --- a/mods/moretrees/default_settings.txt +++ /dev/null @@ -1,68 +0,0 @@ --- Global configuration variables - --- Enable the various kinds of trees. - -moretrees.enable_apple_tree = true -moretrees.enable_oak = true -moretrees.enable_sequoia = true -moretrees.enable_palm = true -moretrees.enable_cedar = true -moretrees.enable_rubber_tree = true -moretrees.enable_willow = true -moretrees.enable_acacia = true -moretrees.enable_birch = true -moretrees.enable_spruce = true -moretrees.enable_jungle_tree = true -moretrees.enable_fir = true -moretrees.enable_beech = false - --- set this to true to make moretrees spawn saplings at mapgen time instead --- of fully-grown trees, which will grow into full trees after a very short --- delay. This reduces mapgen lag in some situations. - -moretrees.spawn_saplings = false - --- Set this to true to allow defining stairs/slabs/etc. If Moreblocks is --- installed, this will use that mod's Stairs Plus component. Otherwise, it --- will use the default stairs mod in minetest_game, if present - -moretrees.enable_stairs = true - --- Set this to true if you want the plantlike drawtype for leaves, which --- improves some peoples' framerates without resorting to making leaf nodes opaque. --- Affects default leaves and default jungle leaves also. - -moretrees.plantlike_leaves = false - --- Enable this if you want moretrees to redefine default apples so that they --- fall when leaves decay/are dug. - -moretrees.enable_redefine_apple = true - --- Set this to true to enable leaf decay of all trees except the default ones. - -moretrees.enable_leafdecay = true - --- various related settings to configure leaf decay. - -moretrees.leafdecay_delay = 2 -moretrees.leafdecay_chance = 5 -moretrees.leafdecay_radius = 5 -moretrees.palm_leafdecay_radius = 10 - --- Change these settings if you want default trees to be gradually cut down --- above the elevation where firs normally generate. - -moretrees.firs_remove_default_trees = false -moretrees.firs_remove_interval = 2 -moretrees.firs_remove_chance = 150 - --- Sapling settings - -moretrees.sapling_interval = 500 -moretrees.sapling_chance = 20 - --- If this variable is set to true, drop leaves out as entities during leaf --- decay, rather than just disappearing them. - -moretrees.decay_leaves_as_items = false diff --git a/mods/moretrees/depends.txt b/mods/moretrees/depends.txt deleted file mode 100755 index c666762d..00000000 --- a/mods/moretrees/depends.txt +++ /dev/null @@ -1,6 +0,0 @@ -default -biome_lib -stairs? -moreblocks? -intllib? - diff --git a/mods/moretrees/description.txt b/mods/moretrees/description.txt deleted file mode 100644 index 7c867233..00000000 --- a/mods/moretrees/description.txt +++ /dev/null @@ -1 +0,0 @@ -This mod adds a whole bunch of new types of trees to the game diff --git a/mods/moretrees/init.lua b/mods/moretrees/init.lua deleted file mode 100755 index 1459917c..00000000 --- a/mods/moretrees/init.lua +++ /dev/null @@ -1,300 +0,0 @@ --- More trees! 2013-04-07 --- --- This mod adds more types of trees to the game --- --- Some of the node definitions and textures came from cisoun's conifers mod --- and bas080's jungle trees mod. --- --- Brought together into one mod and made L-systems compatible by Vanessa --- Ezekowitz. --- --- Firs and Jungle tree axioms/rules by Vanessa Ezekowitz, with the --- latter having been tweaked by RealBadAngel, most other axioms/rules written --- by RealBadAngel. --- --- License: WTFPL for all parts (code and textures, including those copied --- from the the old jungletree and conifers mods). - -moretrees = {} - --- Read the default config file (and if necessary, copy it to the world folder). - -local worldpath=minetest.get_worldpath() -local modpath=minetest.get_modpath("moretrees") - -dofile(modpath.."/default_settings.txt") - -if io.open(worldpath.."/moretrees_settings.txt","r") then - io.close() - dofile(worldpath.."/moretrees_settings.txt") -end - --- Boilerplate to support localized strings if intllib mod is installed. -local S -if minetest.get_modpath("intllib") then - S = intllib.Getter() -else - S = function(s) return s end -end -moretrees.intllib = S - --- clone node - -function moretrees.clone_node(name) - local node2 = {} - local node = minetest.registered_nodes[name] - for k,v in pairs(node) do - node2[k]=v - end - return node2 -end - --- infinite stacks checking - -if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then - moretrees.expect_infinite_stacks = false -else - moretrees.expect_infinite_stacks = true -end - --- tables, load other files - -moretrees.cutting_tools = { - "default:axe_bronze", - "default:axe_diamond", - "default:axe_mese", - "default:axe_steel", --- "glooptest:axe_alatro", --- "glooptest:axe_arol", - "default:axe_mithril", - "default:axe_silver", --- "titanium:axe", -} --- Cutting tools disabled. They are unknown //MFF(Mg|08/09/15) - -dofile(modpath.."/tree_models.lua") -dofile(modpath.."/node_defs.lua") -dofile(modpath.."/biome_defs.lua") -dofile(modpath.."/saplings.lua") -dofile(modpath.."/crafts.lua") - --- tree spawning setup - -if moretrees.spawn_saplings then - moretrees.spawn_beech_object = "moretrees:beech_sapling_ongen" - moretrees.spawn_apple_tree_object = "moretrees:apple_tree_sapling_ongen" - moretrees.spawn_oak_object = "moretrees:oak_sapling_ongen" - moretrees.spawn_sequoia_object = "moretrees:sequoia_sapling_ongen" - moretrees.spawn_palm_object = "moretrees:palm_sapling_ongen" - moretrees.spawn_cedar_object = "moretrees:cedar_sapling_ongen" - moretrees.spawn_rubber_tree_object = "moretrees:rubber_tree_sapling_ongen" - moretrees.spawn_willow_object = "moretrees:willow_sapling_ongen" - moretrees.spawn_acacia_object = "moretrees:acacia_sapling_ongen" - moretrees.spawn_birch_object = "moretrees:birch_sapling_ongen" - moretrees.spawn_spruce_object = "moretrees:spruce_sapling_ongen" - moretrees.spawn_jungletree_object = "moretrees:jungletree_sapling_ongen" - moretrees.spawn_fir_object = "moretrees:fir_sapling_ongen" - moretrees.spawn_fir_snow_object = "snow:sapling_pine" -else - moretrees.spawn_beech_object = moretrees.beech_model - moretrees.spawn_apple_tree_object = moretrees.apple_tree_model - moretrees.spawn_oak_object = moretrees.oak_model - moretrees.spawn_sequoia_object = moretrees.sequoia_model - moretrees.spawn_palm_object = moretrees.palm_model - moretrees.spawn_cedar_object = moretrees.cedar_model - moretrees.spawn_rubber_tree_object = moretrees.rubber_tree_model - moretrees.spawn_willow_object = moretrees.willow_model - moretrees.spawn_acacia_object = moretrees.acacia_model - moretrees.spawn_birch_object = "moretrees.grow_birch" - moretrees.spawn_spruce_object = "moretrees.grow_spruce" - moretrees.spawn_jungletree_object = "moretrees.grow_jungletree" - moretrees.spawn_fir_object = "moretrees.grow_fir" - moretrees.spawn_fir_snow_object = "moretrees.grow_fir_snow" -end - -if moretrees.enable_beech then - biome_lib:register_generate_plant(moretrees.beech_biome, moretrees.spawn_beech_object) -end - -if moretrees.enable_apple_tree then - biome_lib:register_generate_plant(moretrees.apple_tree_biome, moretrees.spawn_apple_tree_object) -end - -if moretrees.enable_oak then - biome_lib:register_generate_plant(moretrees.oak_biome, moretrees.spawn_oak_object) -end - -if moretrees.enable_sequoia then - biome_lib:register_generate_plant(moretrees.sequoia_biome, moretrees.spawn_sequoia_object) -end - -if moretrees.enable_palm then - biome_lib:register_generate_plant(moretrees.palm_biome, moretrees.spawn_palm_object) -end - -if moretrees.enable_cedar then - biome_lib:register_generate_plant(moretrees.cedar_biome, moretrees.spawn_cedar_object) -end - -if moretrees.enable_rubber_tree then - biome_lib:register_generate_plant(moretrees.rubber_tree_biome, moretrees.spawn_rubber_tree_object) -end - -if moretrees.enable_willow then - biome_lib:register_generate_plant(moretrees.willow_biome, moretrees.spawn_willow_object) -end - -if moretrees.enable_acacia then - biome_lib:register_generate_plant(moretrees.acacia_biome, moretrees.spawn_acacia_object) -end - -if moretrees.enable_birch then - biome_lib:register_generate_plant(moretrees.birch_biome, moretrees.spawn_birch_object) -end - -if moretrees.enable_spruce then - biome_lib:register_generate_plant(moretrees.spruce_biome, moretrees.spawn_spruce_object) -end - -if moretrees.enable_jungle_tree then - biome_lib:register_generate_plant(moretrees.jungletree_biome, moretrees.spawn_jungletree_object) -end - -if moretrees.enable_fir then - biome_lib:register_generate_plant(moretrees.fir_biome, moretrees.spawn_fir_object) - if minetest.get_modpath("snow") then - biome_lib:register_generate_plant(moretrees.fir_biome_snow, moretrees.spawn_fir_snow_object) - end -end - --- Code to spawn a birch tree - -function moretrees.grow_birch(pos) - minetest.remove_node(pos) - if math.random(1,2) == 1 then - minetest.spawn_tree(pos, moretrees.birch_model1) - else - minetest.spawn_tree(pos, moretrees.birch_model2) - end -end - --- Code to spawn a spruce tree - -function moretrees.grow_spruce(pos) - minetest.remove_node(pos) - if math.random(1,2) == 1 then - minetest.spawn_tree(pos, moretrees.spruce_model1) - else - minetest.spawn_tree(pos, moretrees.spruce_model2) - end -end - --- Code to spawn jungle trees - -moretrees.jt_axiom1 = "FFFA" -moretrees.jt_rules_a1 = "FFF[&&-FBf[&&&Ff]^^^Ff][&&+FBFf[&&&FFf]^^^Ff][&&---FBFf[&&&Ff]^^^Ff][&&+++FBFf[&&&Ff]^^^Ff]F/A" -moretrees.jt_rules_b1 = "[-Ff&f][+Ff&f]B" - -moretrees.jt_axiom2 = "FFFFFA" -moretrees.jt_rules_a2 = "FFFFF[&&-FFFBF[&&&FFff]^^^FFf][&&+FFFBFF[&&&FFff]^^^FFf][&&---FFFBFF[&&&FFff]^^^FFf][&&+++FFFBFF[&&&FFff]^^^FFf]FF/A" -moretrees.jt_rules_b2 = "[-FFf&ff][+FFf&ff]B" - -moretrees.ct_rules_a1 = "FF[FF][&&-FBF][&&+FBF][&&---FBF][&&+++FBF]F/A" -moretrees.ct_rules_b1 = "[-FBf][+FBf]" - -moretrees.ct_rules_a2 = "FF[FF][&&-FBF][&&+FBF][&&---FBF][&&+++FBF]F/A" -moretrees.ct_rules_b2 = "[-fB][+fB]" - -function moretrees.grow_jungletree(pos) - local r1 = math.random(2) - local r2 = math.random(3) - if r1 == 1 then - moretrees.jungletree_model.leaves2 = "moretrees:jungletree_leaves_red" - else - moretrees.jungletree_model.leaves2 = "moretrees:jungletree_leaves_yellow" - end - moretrees.jungletree_model.leaves2_chance = math.random(25, 75) - - if r2 == 1 then - moretrees.jungletree_model.trunk_type = "single" - moretrees.jungletree_model.iterations = 2 - moretrees.jungletree_model.axiom = moretrees.jt_axiom1 - moretrees.jungletree_model.rules_a = moretrees.jt_rules_a1 - moretrees.jungletree_model.rules_b = moretrees.jt_rules_b1 - elseif r2 == 2 then - moretrees.jungletree_model.trunk_type = "double" - moretrees.jungletree_model.iterations = 4 - moretrees.jungletree_model.axiom = moretrees.jt_axiom2 - moretrees.jungletree_model.rules_a = moretrees.jt_rules_a2 - moretrees.jungletree_model.rules_b = moretrees.jt_rules_b2 - elseif r2 == 3 then - moretrees.jungletree_model.trunk_type = "crossed" - moretrees.jungletree_model.iterations = 4 - moretrees.jungletree_model.axiom = moretrees.jt_axiom2 - moretrees.jungletree_model.rules_a = moretrees.jt_rules_a2 - moretrees.jungletree_model.rules_b = moretrees.jt_rules_b2 - end - - minetest.remove_node(pos) - local leaves = minetest.find_nodes_in_area({x = pos.x-1, y = pos.y, z = pos.z-1}, {x = pos.x+1, y = pos.y+10, z = pos.z+1}, "default:leaves") - for leaf in ipairs(leaves) do - minetest.remove_node(leaves[leaf]) - end - minetest.spawn_tree(pos, moretrees.jungletree_model) -end - --- code to spawn fir trees - -function moretrees.grow_fir(pos) - if math.random(2) == 1 then - moretrees.fir_model.leaves="moretrees:fir_leaves" - else - moretrees.fir_model.leaves="moretrees:fir_leaves_bright" - end - if math.random(2) == 1 then - moretrees.fir_model.rules_a = moretrees.ct_rules_a1 - moretrees.fir_model.rules_b = moretrees.ct_rules_b1 - else - moretrees.fir_model.rules_a = moretrees.ct_rules_a2 - moretrees.fir_model.rules_b = moretrees.ct_rules_b2 - end - - moretrees.fir_model.iterations = 7 - moretrees.fir_model.random_level = 5 - - minetest.remove_node(pos) - local leaves = minetest.find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves") - for leaf in ipairs(leaves) do - minetest.remove_node(leaves[leaf]) - end - minetest.spawn_tree(pos,moretrees.fir_model) -end - --- same thing, but a smaller version that grows only in snow biomes - -function moretrees.grow_fir_snow(pos) - if math.random(2) == 1 then - moretrees.fir_model.leaves="moretrees:fir_leaves" - else - moretrees.fir_model.leaves="moretrees:fir_leaves_bright" - end - if math.random(2) == 1 then - moretrees.fir_model.rules_a = moretrees.ct_rules_a1 - moretrees.fir_model.rules_b = moretrees.ct_rules_b1 - else - moretrees.fir_model.rules_a = moretrees.ct_rules_a2 - moretrees.fir_model.rules_b = moretrees.ct_rules_b2 - end - - moretrees.fir_model.iterations = 2 - moretrees.fir_model.random_level = 2 - - minetest.remove_node(pos) - local leaves = minetest.find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves") - for leaf in ipairs(leaves) do - minetest.remove_node(leaves[leaf]) - end - minetest.spawn_tree(pos,moretrees.fir_model) -end - -minetest.log("action", S("[Moretrees] Loaded (2013-02-11)")) diff --git a/mods/moretrees/locale/de.txt b/mods/moretrees/locale/de.txt deleted file mode 100755 index cab8d6f4..00000000 --- a/mods/moretrees/locale/de.txt +++ /dev/null @@ -1,73 +0,0 @@ -# Translation by Xanthin - -### crafts.lua ### -Coconut Milk = Kokosnussmilch -Raw Coconut = Kokosnussfleisch -Acorn Muffin batter = Eichelmuffinteig -Acorn Muffin = Eichelmuffin -Roasted Spruce Cone Nuts = Geroestete Fichtenzapfen -Roasted Pine Cone Nuts = Geroestete Kiefernzapfen -Roasted Fir Cone Nuts = Geroestete Tannenzapfen - -### node_defs.lua ### -Beech Tree Trunk = Buchenstamm -Apple Tree Trunk = Apfelbaumstamm -Oak Tree Trunk = Eichenstamm -Giant Sequoia Trunk = Riesenmammutbaumstamm -Birch Tree Trunk = Birkenstamm -Palm Tree Trunk = Palmenstamm -Spruce Tree Trunk = Fichtenstamm -Pine Tree Trunk = Kiefernstamm -Willow Tree Trunk = Weidenstamm -Rubber Tree Trunk = Gummibaumstamm -Jungle Tree Trunk = Tropenbaumstamm -Douglas Fir Trunk = Douglasienstamm -Beech Tree Planks = Buchebretter -Apple Tree Planks = Apfelbaumbretter -Oak Tree Planks = Eichenbretter -Giant Sequoia Planks = Riesenmammutbaumbretter -Birch Tree Planks = Birkebretter -Palm Tree Planks = Palmenbretter -Spruce Tree Planks = Fichtenbretter -Pine Tree Planks = Kiefernbretter -Willow Tree Planks = Weidenbretter -Rubber Tree Planks = Gummibaumbretter -Jungle Tree Planks = Tropenholzbretter -Douglas Fir Planks = Douglasienbretter -Beech Tree Sapling = Buchesetzling -Apple Tree Sapling = Apfelbaumsetzling -Oak Tree Sapling = Eichensetzling -Giant Sequoia Sapling = Riesenmammutbaumsetzling -Birch Tree Sapling = Birkensetzling -Palm Tree Sapling = Palmensetzling -Spruce Tree Sapling = Fichtensetzling -Pine Tree Sapling = Kiefernsetzling -Willow Tree Sapling = Weidensetzling -Rubber Tree Sapling = Gummibaumsetzling -Jungle Tree Sapling = Tropenbaumsetzling -Douglas Fir Sapling = Douglasiensetzling -Beech Tree Leaves = Buchenlaub -Apple Tree Leaves = Apfelbaumlaub -Oak Tree Leaves = Eichenlaub -Giant Sequoia Leaves = Riesenmammutbaumlaub -Birch Tree Leaves = Birkenlaub -Palm Tree Leaves = Palmenlaub -Spruce Tree Leaves = Fichtennadeln -Pine Tree Leaves = Kiefernnadeln -Willow Tree Leaves = Weidenlaub -Rubber Tree Leaves = Gummibaumlaub -Jungle Tree Leaves = Tropenbaumlaub -Douglas Fir Leaves = Douglasiennadeln - -Acorn = Eichel -Coconut = Kokosnuss -Spruce Cone = Fichtenzapfen -Pine Cone = Kiefernzapfen -Fir Cone = Tannenzapfen -Jungle Sapling = Tropenbaumsetzling -Jungle Tree Leaves (Yellow) = Tropenbaumlaub (gelb) -Jungle Tree Leaves (Red) = Tropenbaumlaub (rot) -Douglas Fir Leaves (Bright) = Douglasiennadeln (breit) -Rubber Tree Trunk (Empty) = Gummibaumstamm (leer) - -[Moretrees] Loaded (2013-02-11) = [Moretrees] geladen (2013-02-11) diff --git a/mods/moretrees/locale/template.txt b/mods/moretrees/locale/template.txt deleted file mode 100755 index 8c167f51..00000000 --- a/mods/moretrees/locale/template.txt +++ /dev/null @@ -1,73 +0,0 @@ -# Template - -### crafts.lua ### -Coconut Milk = -Raw Coconut = -Acorn Muffin batter = -Acorn Muffin = -Roasted Spruce Cone Nuts = -Roasted Pine Cone Nuts = -Roasted Fir Cone Nuts = - -### node_defs.lua ### -Beech Tree Trunk = -Apple Tree Trunk = -Oak Tree Trunk = -Giant Sequoia Trunk = -Birch Tree Trunk = -Palm Tree Trunk = -Spruce Tree Trunk = -Pine Tree Trunk = -Willow Tree Trunk = -Rubber Tree Trunk = -Jungle Tree Trunk = -Douglas Fir Trunk = -Beech Tree Planks = -Apple Tree Planks = -Oak Tree Planks = -Giant Sequoia Planks = -Birch Tree Planks = -Palm Tree Planks = -Spruce Tree Planks = -Pine Tree Planks = -Willow Tree Planks = -Rubber Tree Planks = -Jungle Tree Planks = -Douglas Fir Planks = -Beech Tree Sapling = -Apple Tree Sapling = -Oak Tree Sapling = -Giant Sequoia Sapling = -Birch Tree Sapling = -Palm Tree Sapling = -Spruce Tree Sapling = -Pine Tree Sapling = -Willow Tree Sapling = -Rubber Tree Sapling = -Jungle Tree Sapling = -Douglas Fir Sapling = -Beech Tree Leaves = -Apple Tree Leaves = -Oak Tree Leaves = -Giant Sequoia Leaves = -Birch Tree Leaves = -Palm Tree Leaves = -Spruce Tree Leaves = -Pine Tree Leaves = -Willow Tree Leaves = -Rubber Tree Leaves = -Jungle Tree Leaves = -Douglas Fir Leaves = - -Acorn = -Coconut = -Spruce Cone = -Pine Cone = -Fir Cone = -Jungle Sapling = -Jungle Tree Leaves (Yellow) = -Jungle Tree Leaves (Red) = -Douglas Fir Leaves (Bright) = -Rubber Tree Trunk (Empty) = - -[Moretrees] Loaded (2013-02-11) = diff --git a/mods/moretrees/mod.conf b/mods/moretrees/mod.conf deleted file mode 100644 index b95f3e82..00000000 --- a/mods/moretrees/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name = moretrees diff --git a/mods/moretrees/node_defs.lua b/mods/moretrees/node_defs.lua deleted file mode 100755 index 5ae8b5b6..00000000 --- a/mods/moretrees/node_defs.lua +++ /dev/null @@ -1,437 +0,0 @@ -local S = moretrees.intllib - -moretrees.avoidnodes = {} - -moretrees.treelist = { - {"beech", "Beech Tree"}, - {"apple_tree", "Apple Tree"}, - {"oak", "Oak Tree", "acorn", "Acorn", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 }, - {"sequoia", "Giant Sequoia"}, - {"birch", "Birch Tree"}, - {"palm", "Palm Tree", "coconut", "Coconut", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 1.0 }, - {"spruce", "Spruce Tree", "spruce_cone", "Spruce Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 }, - {"cedar", "Cedar Tree", "cedar_cone", "Cedar Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 }, - {"willow", "Willow Tree"}, - {"rubber_tree", "Rubber Tree"}, - {"fir", "Douglas Fir", "fir_cone", "Fir Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 }, - - {"jungletree", "Jungle Tree", nil, nil, nil, nil, "default_junglesapling.png" }, - {"acacia", "Acacia Tree", nil, nil, nil, nil, "default_acacia_sapling.png" }, -} - -local dirs1 = { 21, 20, 23, 22, 21 } -local dirs2 = { 12, 9, 18, 7, 12 } -local dirs3 = { 14, 11, 16, 5, 14 } - -local moretrees_new_leaves_drawtype = "allfaces_optional" -local moretrees_plantlike_leaves_visual_scale = 1 - -if moretrees.plantlike_leaves then - moretrees_new_leaves_drawtype = "plantlike" - moretrees_plantlike_leaves_visual_scale = 1.189 -end - --- redefine default leaves to handle plantlike and/or leaf decay options - -if moretrees.plantlike_leaves then - minetest.override_item("default:leaves", { - inventory_image = minetest.inventorycube("default_leaves.png"), - drawtype = "plantlike", - visual_scale = 1.189 - }) -else - minetest.override_item("default:leaves", { - waving = 1 - }) -end - --- redefine default jungle leaves for same - -if moretrees.plantlike_leaves then - minetest.override_item("default:jungleleaves", { - inventory_image = minetest.inventorycube("default_jungleleaves.png"), - drawtype = "plantlike", - visual_scale = 1.189 - }) -else - minetest.override_item("default:jungleleaves", { - waving = 1 - }) -end - -for i in ipairs(moretrees.treelist) do - local treename = moretrees.treelist[i][1] - local treedesc = moretrees.treelist[i][2] - local fruit = moretrees.treelist[i][3] - local fruitdesc = moretrees.treelist[i][4] - local selbox = moretrees.treelist[i][5] - local vscale = moretrees.treelist[i][6] - - local saptex = moretrees.treelist[i][7] - - if treename ~= "jungletree" -- the default game provides jungle tree, acacia, and pine trunk/planks nodes. - and treename ~= "acacia" - and treename ~= "pine" then - - saptex = "moretrees_"..treename.."_sapling.png" - - minetest.register_node("moretrees:"..treename.."_trunk", { - description = S(treedesc.." Trunk"), - tiles = { - "moretrees_"..treename.."_trunk_top.png", - "moretrees_"..treename.."_trunk_top.png", - "moretrees_"..treename.."_trunk.png" - }, - paramtype2 = "facedir", - is_ground_content = true, - groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, - sounds = default.node_sound_wood_defaults(), - on_place = minetest.rotate_node, - }) - - minetest.register_node("moretrees:"..treename.."_planks", { - description = S(treedesc.." Planks"), - tiles = {"moretrees_"..treename.."_wood.png"}, - is_ground_content = true, - groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, - sounds = default.node_sound_wood_defaults(), - }) - - minetest.register_node("moretrees:"..treename.."_sapling", { - description = S(treedesc.." Sapling"), - drawtype = "plantlike", - tiles = {saptex}, - inventory_image = saptex, - paramtype = "light", - paramtype2 = "waving", - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,sapling=1}, - sounds = default.node_sound_defaults(), - }) - - -- player will get a sapling with 1/100 chance - -- player will get leaves only if he/she gets no saplings, - -- this is because max_items is 1 - - local droprarity = 100 - local decay = moretrees.leafdecay_radius - - if treename == "palm" then - droprarity = 20 - decay = moretrees.palm_leafdecay_radius - end - - local moretrees_leaves_inventory_image = nil - local moretrees_new_leaves_waving = nil - - if moretrees.plantlike_leaves then - moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_"..treename.."_leaves.png") - else - moretrees_new_leaves_waving = 1 - end - - minetest.register_node("moretrees:"..treename.."_leaves", { - description = S(treedesc.." Leaves"), - drawtype = moretrees_new_leaves_drawtype, - waving = moretrees_new_leaves_waving, - visual_scale = moretrees_plantlike_leaves_visual_scale, - tiles = { "moretrees_"..treename.."_leaves.png" }, - inventory_image = moretrees_leaves_inventory_image, - paramtype = "light", - groups = {snappy = 3, flammable = 2, leaves = 1, moretrees_leaves = 1, leafdecay = decay}, - sounds = default.node_sound_leaves_defaults(), - - drop = { - max_items = 1, - items = { - {items = {"moretrees:"..treename.."_sapling"}, rarity = droprarity }, - {items = {"moretrees:"..treename.."_leaves"} } - } - }, - }) - - if moretrees.enable_stairs then - if minetest.get_modpath("moreblocks") then - - -- stairsplus:register_all(modname, subname, recipeitem, {fields}) - - stairsplus:register_all( - "moretrees", - treename.."_trunk", - "moretrees:"..treename.."_trunk", - { - groups = { snappy=1, choppy=2, oddly_breakable_by_hand=1, flammable=2, not_in_creative_inventory=1 }, - tiles = { - "moretrees_"..treename.."_trunk_top.png", - "moretrees_"..treename.."_trunk_top.png", - "moretrees_"..treename.."_trunk.png" - }, - description = S(treedesc.." Trunk"), - drop = treename.."_trunk", - } - ) - - stairsplus:register_all( - "moretrees", - treename.."_planks", - "moretrees:"..treename.."_planks", - { - groups = { snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, not_in_creative_inventory=1 }, - tiles = { "moretrees_"..treename.."_wood.png" }, - description = S(treedesc.." Planks"), - drop = treename.."_planks", - } - ) - elseif minetest.get_modpath("stairs") then - stairs.register_stair_and_slab( - "moretrees_"..treename.."_trunk", - "moretrees:"..treename.."_trunk", - { snappy=1, choppy=2, oddly_breakable_by_hand=1, flammable=2 }, - { "moretrees_"..treename.."_trunk_top.png", - "moretrees_"..treename.."_trunk_top.png", - "moretrees_"..treename.."_trunk.png" - }, - S(treedesc.." Trunk Stair"), - S(treedesc.." Trunk Slab"), - default.node_sound_wood_defaults() - ) - - stairs.register_stair_and_slab( - "moretrees_"..treename.."_planks", - "moretrees:"..treename.."_planks", - { snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3 }, - { "moretrees_"..treename.."_wood.png" }, - S(treedesc.." Planks Stair"), - S(treedesc.." Planks Slab"), - default.node_sound_wood_defaults() - ) - - end - end - end - - minetest.register_node("moretrees:"..treename.."_sapling_ongen", { - description = S(treedesc.." Sapling"), - drawtype = "plantlike", - tiles = {saptex}, - inventory_image = saptex, - paramtype = "light", - paramtype2 = "waving", - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,not_in_creative_inventory=1,sapling=1}, - sounds = default.node_sound_defaults(), - drop = "moretrees:"..treename.."_sapling" - }) - - if fruit then - minetest.register_node("moretrees:"..fruit, { - description = S(fruitdesc), - drawtype = "plantlike", - tiles = { "moretrees_"..fruit..".png" }, - inventory_image = "moretrees_"..fruit..".png^[transformR180", - wield_image = "moretrees_"..fruit..".png^[transformR180", - visual_scale = vscale, - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = selbox - }, - groups = {fleshy=3,dig_immediate=3,flammable=2, attached_node=1}, - sounds = default.node_sound_defaults(), - }) - end - - minetest.register_abm({ - nodenames = { "moretrees:"..treename.."_trunk_sideways" }, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local fdir = node.param2 or 0 - local nfdir = dirs2[fdir+1] - minetest.add_node(pos, {name = "moretrees:"..treename.."_trunk", param2 = nfdir}) - end, - }) - - table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_trunk") - - if moretrees.spawn_saplings then - table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_sapling") - table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_sapling_ongen") - end -end - --- Extra nodes for jungle trees: - -local jungleleaves = {"yellow","red"} -local jungleleavesnames = {"Yellow", "Red"} -for color = 1, #jungleleaves do - local leave_name = "moretrees:jungletree_leaves_"..jungleleaves[color] - - local moretrees_leaves_inventory_image = nil - - if moretrees.plantlike_leaves then - moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_jungletree_leaves_"..jungleleaves[color]..".png") - else - moretrees_new_leaves_waving = 1 - end - - minetest.register_node(leave_name, { - description = S("Jungle Tree Leaves ("..jungleleavesnames[color]..")"), - drawtype = moretrees_new_leaves_drawtype, - waving = moretrees_new_leaves_waving, - visual_scale = moretrees_plantlike_leaves_visual_scale, - tiles = {"moretrees_jungletree_leaves_"..jungleleaves[color]..".png"}, - inventory_image = moretrees_leaves_inventory_image, - paramtype = "light", - groups = {snappy = 3, flammable = 2, leaves = 1, moretrees_leaves = 1, leafdecay = moretrees.leafdecay_radius }, - drop = { - max_items = 1, - items = { - {items = {"default:junglesapling"}, rarity = 100 }, - {items = {"moretrees:jungletree_leaves_"..jungleleaves[color]} } - } - }, - sounds = default.node_sound_leaves_defaults(), - }) -end - --- Extra needles for firs - -local moretrees_leaves_inventory_image = nil - -if moretrees.plantlike_leaves then - moretrees_leaves_inventory_image = minetest.inventorycube("moretrees_fir_leaves_bright.png") -end - -minetest.register_node("moretrees:fir_leaves_bright", { - drawtype = moretrees_new_leaves_drawtype, - waving = moretrees_new_leaves_waving, - visual_scale = moretrees_plantlike_leaves_visual_scale, - description = S("Douglas Fir Leaves (Bright)"), - tiles = { "moretrees_fir_leaves_bright.png" }, - inventory_image = moretrees_leaves_inventory_image, - paramtype = "light", - groups = {snappy = 3, flammable = 2, leaves = 1, moretrees_leaves = 1, leafdecay = moretrees.leafdecay_radius }, - drop = { - max_items = 1, - items = { - {items = {'moretrees:fir_sapling'}, rarity = 100 }, - {items = {'moretrees:fir_leaves_bright'} } - } - }, - sounds = default.node_sound_leaves_defaults() -}) - -if moretrees.enable_redefine_apple then - local appledef = moretrees.clone_node("default:apple") - appledef.groups.attached_node = 1 - minetest.register_node(":default:apple", appledef) -end - -table.insert(moretrees.avoidnodes, "default:jungletree") -table.insert(moretrees.avoidnodes, "default:pine_tree") -table.insert(moretrees.avoidnodes, "default:acacia_tree") -table.insert(moretrees.avoidnodes, "moretrees:fir_trunk") -table.insert(moretrees.avoidnodes, "default:tree") - -if moretrees.spawn_saplings then - table.insert(moretrees.avoidnodes, "snow:sapling_pine") - table.insert(moretrees.avoidnodes, "default:junglesapling") - table.insert(moretrees.avoidnodes, "default:pine_sapling") - table.insert(moretrees.avoidnodes, "default:acacia_sapling") -end - --- "empty" (tapped) rubber tree nodes - -minetest.register_node("moretrees:rubber_tree_trunk_empty", { - description = S("Rubber Tree Trunk (Empty)"), - tiles = { - "moretrees_rubber_tree_trunk_top.png", - "moretrees_rubber_tree_trunk_top.png", - "moretrees_rubber_tree_trunk_empty.png" - }, - is_ground_content = true, - groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, - sounds = default.node_sound_wood_defaults(), - paramtype2 = "facedir", - on_place = minetest.rotate_node, -}) - -minetest.register_abm({ - nodenames = { "moretrees:rubber_tree_trunk_empty_sideways" }, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local fdir = node.param2 or 0 - nfdir = dirs2[fdir+1] - minetest.add_node(pos, {name = "moretrees:rubber_tree_trunk_empty", param2 = nfdir}) - end, -}) - --- To get Moretrees to generate its own jungle trees among the default mapgen --- we need our own copy of that node, which moretrees will match against. - -local jungle_tree = moretrees.clone_node("default:jungletree") -jungle_tree.drop = jungle_tree.drop or { items = {} } -table.insert(jungle_tree.drop.items, { items = {"default:jungletree"}}) -minetest.register_node("moretrees:jungletree_trunk", jungle_tree) - --- For compatibility with old nodes, recently-changed nodes, and default nodes - -minetest.register_alias("technic:rubber_tree_full", "moretrees:rubber_tree_trunk") -minetest.register_alias("farming_plus:rubber_tree_full", "moretrees:rubber_tree_trunk") -minetest.register_alias("farming:rubber_tree_full", "moretrees:rubber_tree_trunk") - -minetest.register_alias("technic:rubber_leaves", "moretrees:rubber_tree_leaves") -minetest.register_alias("farming_plus:rubber_leaves", "moretrees:rubber_tree_leaves") -minetest.register_alias("farming:rubber_leaves", "moretrees:rubber_tree_leaves") - -minetest.register_alias("technic:rubber_tree_sapling", "moretrees:rubber_tree_sapling") -minetest.register_alias("farming_plus:rubber_sapling", "moretrees:rubber_tree_sapling") -minetest.register_alias("farming:rubber_sapling", "moretrees:rubber_tree_sapling") - -minetest.register_alias("moretrees:conifer_trunk", "moretrees:fir_trunk") -minetest.register_alias("moretrees:conifer_trunk_sideways", "moretrees:fir_trunk_sideways") -minetest.register_alias("moretrees:conifer_leaves", "moretrees:fir_leaves") -minetest.register_alias("moretrees:conifer_leaves_bright", "moretrees:fir_leaves_bright") -minetest.register_alias("moretrees:conifer_sapling", "moretrees:fir_sapling") - -minetest.register_alias("conifers:trunk", "moretrees:fir_trunk") -minetest.register_alias("conifers:trunk_reversed", "moretrees:fir_trunk_sideways") -minetest.register_alias("conifers:leaves", "moretrees:fir_leaves") -minetest.register_alias("conifers:leaves_special", "moretrees:fir_leaves_bright") -minetest.register_alias("conifers:sapling", "moretrees:fir_sapling") - -minetest.register_alias("moretrees:jungletree_sapling", "default:junglesapling") -minetest.register_alias("moretrees:jungletree_trunk_sideways", "moreblocks:horizontal_jungle_tree") -minetest.register_alias("moretrees:jungletree_planks", "default:junglewood") -minetest.register_alias("moretrees:jungletree_leaves_green", "default:jungleleaves") - -minetest.register_alias("jungletree:leaves_green", "default:jungleleaves") -minetest.register_alias("jungletree:leaves_red", "moretrees:jungletree_leaves_red") -minetest.register_alias("jungletree:leaves_yellow", "moretrees:jungletree_leaves_yellow") - -minetest.register_alias("moretrees:acacia_trunk", "default:acacia_tree") -minetest.register_alias("moretrees:acacia_planks", "default:acacia_wood") -minetest.register_alias("moretrees:acacia_sapling", "default:acacia_sapling") -minetest.register_alias("moretrees:acacia_leaves", "default:acacia_leaves") - -minetest.register_alias("moretrees:pine_trunk", "moretrees:cedar_trunk") -minetest.register_alias("moretrees:pine_planks", "moretrees:cedar_planks") -minetest.register_alias("moretrees:pine_sapling", "moretrees:cedar_sapling") -minetest.register_alias("moretrees:pine_leaves", "moretrees:cedar_leaves") -minetest.register_alias("moretrees:pine_cone", "moretrees:cedar_cone") -minetest.register_alias("moretrees:pine_nuts", "moretrees:cedar_nuts") - --- Overriding moretrees' palm leaves: -minetest.override_item("moretrees:palm_leaves",{walkable = false}) diff --git a/mods/moretrees/saplings.lua b/mods/moretrees/saplings.lua deleted file mode 100755 index 8004612e..00000000 --- a/mods/moretrees/saplings.lua +++ /dev/null @@ -1,93 +0,0 @@ --- sapling growth - -for i in ipairs(moretrees.treelist) do - local treename = moretrees.treelist[i][1] - local tree_model = treename.."_model" - local tree_biome = treename.."_biome" - - if treename ~= "birch" and treename ~= "spruce" and treename ~= "fir" and treename ~= "jungletree" then - - biome_lib:dbg(dump(moretrees[tree_biome].surface)) - biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "moretrees:"..treename.."_sapling", - grow_nodes = moretrees[tree_biome].surface, - grow_function = moretrees[tree_model], - }) - - biome_lib:grow_plants({ - grow_delay = 2, - grow_chance = 30, - grow_plant = "moretrees:"..treename.."_sapling_ongen", - grow_nodes = moretrees[tree_biome].surface, - grow_function = moretrees[tree_model], - }) - - end -end - -biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "moretrees:birch_sapling", - grow_nodes = moretrees.birch_biome.surface, - grow_function = "moretrees.grow_birch" -}) - -biome_lib:grow_plants({ - grow_delay = 2, - grow_chance = 30, - grow_plant = "moretrees:birch_sapling_ongen", - grow_nodes = moretrees.birch_biome.surface, - grow_function = "moretrees.grow_birch" -}) - -biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "moretrees:spruce_sapling", - grow_nodes = moretrees.spruce_biome.surface, - grow_function = "moretrees.grow_spruce" -}) - -biome_lib:grow_plants({ - grow_delay = 2, - grow_chance = 30, - grow_plant = "moretrees:spruce_sapling_ongen", - grow_nodes = moretrees.spruce_biome.surface, - grow_function = "moretrees.grow_spruce" -}) - -biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "moretrees:fir_sapling", - grow_nodes = moretrees.fir_biome.surface, - grow_function = "moretrees.grow_fir" -}) - -biome_lib:grow_plants({ - grow_delay = 2, - grow_chance = 30, - grow_plant = "moretrees:fir_sapling_ongen", - grow_nodes = moretrees.fir_biome.surface, - grow_function = "moretrees.grow_fir" -}) - -biome_lib:grow_plants({ - grow_delay = moretrees.sapling_interval, - grow_chance = moretrees.sapling_chance, - grow_plant = "default:junglesapling", - grow_nodes = moretrees.jungletree_biome.surface, - grow_function = "moretrees.grow_jungletree" -}) - -biome_lib:grow_plants({ - grow_delay = 2, - grow_chance = 30, - grow_plant = "moretrees:jungletree_sapling_ongen", - grow_nodes = moretrees.jungletree_biome.surface, - grow_function = "moretrees.grow_jungletree" -}) - diff --git a/mods/moretrees/textures/moretrees_acorn.png b/mods/moretrees/textures/moretrees_acorn.png deleted file mode 100755 index 3b27ea8b28f4bf7709f292a6e5491e1c7830b814..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}dw@@f>)UP7Z@1;1n5438lIOMt zp-H(ax3@({o2z)L2sPxIzrDTW_9V}@CmJS2n>To>yge~#TZ8BACApJwJ)=EU8lug& zwqOFL{_XRUmksJivrg)j3fpU$wjXS`{CZt`)#?`60UgEQ>FVdQ&MBb@0OZWP AkN^Mx diff --git a/mods/moretrees/textures/moretrees_acorn_muffin.png b/mods/moretrees/textures/moretrees_acorn_muffin.png deleted file mode 100755 index 199051d129a704bbb77ab833e172010d1a9033dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 765 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47z+b@LR_~^@mkaEc6eUE+XD#~ zSB5;?6MuDG_{=){^D9GV)Y#qG6t!`J$AfLr*Vlz#T^qiz*=g@gpM!J!X16+Rp5%FO zj(<;)<+jOQ6U(eWA5FfzI`rz+=zVkjS9iO0=9xd-9^L*ljGcahm%W!7Bo3-p6I#0-~Hms(Ch0Xjx7k> zJJWa14Bt8R4pS>^o3l)7QjB&?^dSwGRUr_ge8 zx%KpFyXq99`HhYXTAW+5%_f!EOs}$=TyE1{XgRyi;qKt{)V?Vpjeo3qI z`d;_W0*fQ_12*(~tm|{%G{IwHsr9lp=cTRA(<*Ie)!26xSoD`zb>x}1=b5kUbY0i$ zzGafcanDR zTqXr3(Wf)J)~qb*%$nNwPl54#NwzAVSz4z}XzAonItv3>RW;y1 zkY#Mc%7*^=-d_98Sn{N_EvxX7QZAo4qp2>>@J7H~C&h0(eu0s(pZ~~gXz(rTGidgh zG;d{gnNGw4BUkIyF}Dt!S*o+1K__5R;%e388MDNMB4;oZX0F&hx7E3>pdv)(%1gne vJLUGpH6AtmXmEb&uc<#oD%o9=zv?nv>xfP|kUwc6&@T+0u6{1-oD!Mw<6{IzM^aU3NG&|II}h9;jywaTXOa+OWw64asP^xoBNB- zZOeUosb+aJ6Wni?$}euuJGm+A)aI;x z%Tu;4P2M~=Zpp;3Z3_~%EJ)ZoKmO9*!lP@`Pi@NDGB0k&qQpaM(_fycy0*9Q#=gS! zvtkzZh0N**oZB6|ZdS~qzR+{K@{g=ZTQMbK)4aIllfzd{jaofDdgtP#6;mSD&y3kP zCw4|#z{;tStENR>*^LTHJU zSE{IUj7Z^3RV95+BNx7eR(abnAyaSuk~wNJn(TQ~mD76^;u~f2CMxGnP||bY%j{E1 zX_wERtZeMgZ{;s&6)0%x%MUcWH1>Z2kdiG4@(cct2QWmoJnSq)yfth?FhnzQY0GSgpX&Ao=pKK*uL{IuJq z?a9)XYS*{>45FUZ1VugXlwxZVU;C|V%2|dR4NMgYSGWZVm=f%3eUu(6Bs3JVXg+%@X%_ Tl{#SnbR~nQtDnm{r-UW|`>BjB diff --git a/mods/moretrees/textures/moretrees_apple_tree_sapling.png b/mods/moretrees/textures/moretrees_apple_tree_sapling.png deleted file mode 100755 index ec35b726876d479a343329d42cafdc96f8739d19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJe}GSjtNuj6I2#_dY90u~&D2E+ zD8*C~u`bqQ=)a%f8*&3y%*#QCe`gf%X;GJFy^Xr%>qD5YI#IlbRbOHVJS_xpv@ zdrP4`?d<3kS}3I#C@_%VqRG4@1SD=oommz&WS5wj;0sawlmGjlzlR?kAoaAKJbe;} z!?ogjyKWqB+y8BO;h68fe+t0iP8<#N4Rs?zX+E9*d^#o-OG4hTPG^b+Bl($vR-;*( zn_sUjhr^K!mPjQM0Tku)IbN5;uGXfL2_=v3Fqy(0KYNS`%fw2Vbi$yw=?oBGG@;Rw z$$$w~DCMF=Eaf*C&T*`frSfb}IxZWR$pTi3#h`WD?9s`f&*cqz&;aUWQ;5yg zZI@B27*}Z#b)$XbSi$FjOotH}A@@bRKDWzWt*;tXGO+|=bGTw2TPhNa zF#s6^nk_~)Yeb8!#8>u;3#E?$fDB}utFk*YAahp9?fa8 zC{-{(8J-Mz37>VN9;Z+wrqO6>g^12%FmPh z+Ipe5Qms~mJi5h*B%^UYmuk?-V^eWNDdDh3fC2m<;ra+bpaBFXNT!g9g8-g9OacG` zzPE$PrH_JCVt-FJp=(^mp-_71qeGE!jPq9Y)8jw=O7fAQS?+QYy5(wCmKRna}<0?Q+nkX`?5MErLT z&V(WH2TStexBHKN*-+l=_|i`bQrgc`*`L6y>ODj?MZd83#NTo@-Wk35^!)AYH`kBe zd$r}`kM`Pk9z7sL&pigQ55GRtTV`p!q02A-_|nnzi1URO{}M_*f1t9(|sj%=82OTCzSzM6f9f_R2tL4bR4 zt$$i}acO^BK2A$TR#Q!Wd2f7KJ-Co>o^efte|2qWV5WCbXiGC~Pc~XsPfbchuYp{% zh-AB!cC(3Qyq0%SPDr|wbFqeEYGz-LXGTj%LYHkycvd^MjcbTvLwi^}tbJEVML(x_ zQj26nMnpejdQ`>$007rXL_t&-8AZWWR>eRN1;EDL9iDsKT_zd5`(F`W7)(L&%3|*W7~eDOd8*bg!K# zOtS=`Z+0>=L-=BfUFL!Cl?olWZpU;WGYh03_5EEm*mh)!{7q4hCuWS{+?8?^-=GAQ tf4M$CyYQ~O?Y>g0WbcEP)i`NI@?kn{Z5{c2J#iPN;cPk&6~70002jNkl diff --git a/mods/moretrees/textures/moretrees_beech_leaves.png b/mods/moretrees/textures/moretrees_beech_leaves.png deleted file mode 100755 index 8463f530188073a5528dbd5bfb2fa24f09cd691b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b)s4{52~}4#lap4K1d7E7 z_I3d&){-E<;NSoM|7YMcTQM0ZkmBj$7{YO#^&q1liy;TghN&N94L&q5YOra%j=!v0 zu}x0(i2k)rj~;Z~+c~%3dfmO&RSKKA*X;atzV%(obm8{%zkVGEpYx_!;BBh-uBJsg w8y?LpI`}kd@(pLPxdk)tOlpF diff --git a/mods/moretrees/textures/moretrees_beech_sapling.png b/mods/moretrees/textures/moretrees_beech_sapling.png deleted file mode 100755 index ff42cc4bb05bfc7ac8f697cf206924363ae1acc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b1=7-?oceOCN}<9)@|;C- zDo}{IB*-rqNdGE3at}!PdAc};aLBSAWaK>TAi#1Uazz7gXM>l=L)MrVzpqb`WXKTi za0%>Pu+!AS_}zrkf4{eU`swGUYW(_o*Vg4;n@u`i2U_$!XE18WX1-Zn!MJlJd$4oj S-!DLu89ZJ6T-G@yGywqpkU3QV diff --git a/mods/moretrees/textures/moretrees_beech_trunk.png b/mods/moretrees/textures/moretrees_beech_trunk.png deleted file mode 100755 index 93e602bfe5182c7e5dc627f9e92b1d3bb205a054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 zcmWktS8v;90Q{VEq;73fmSmYzB*i`Sk>U_VYFLyMOR_C1w$nY*Hr;!r=}eo>bnm^h zoaOA| zR;+K2PSres2!zSuCXbF5_2HZn+JeR=1RSZlQkumqf%J8@Rk7+hbt24U z70Qx`(BcaQ+YB_wU}+{{@wiIHLR-}6IOOnBhMTNfS~4E!OhIRPtiSGSbgZ`kS%XRB zG`eVUwnk^Q1Tq>JOv&UMzHG}x$>poQnp0`tV25*R*%Go6q4QXvvm-@a zNydGhZu*)`MhgbhDqEgHnIdU+JSjA9asgx=iD(4Sl1PP&33wz2X@Q6|d{s{-3?Aq3 z$XGtDQgNL@9fhhoQkp?ig9tOw!=s3ZM@1sW4)zrdZma+cFr`!Rc4sxT&(mo~rbhF+ z$)ROe@Y77qQ_C5?k%y%WAG(5^j15_Wi1&w<;7DXf=!}!(u!w*~m_#q+FjuA=mGm`6 zCgUj-@pY!=%AQK`c)u-?Jch_bCq0^KUYQ1<3vX1*Qyc&8Lc0FB0)D=D?!xz9fBx3X zo8I5Q`NHe3flFt9`0n`Jv-jNn*h>dLTzqp0Tt5HhskfiGV`O^WBQL(UIR6G%`1GS! zpSZmltUhqpqc1Feunayqf9TZSqq|YRw&%`=H-5VeF28d0mPS6wa=GEj`_6vz3s^XD z^SDP76qedkKm61eOW^cPtuxWs%;10&FCBjH<7M#s+KQtyqCiG=4()pKvrgzx^~bYHshle&5#KZDaS|b_|^P^_|_u4J*5@-geEwxm)L#z@>{PXSZIv i>bezIb?={>nm_XAUmO1L;L^XHcY;Q(Rhh(AP diff --git a/mods/moretrees/textures/moretrees_beech_trunk_top.png b/mods/moretrees/textures/moretrees_beech_trunk_top.png deleted file mode 100755 index 72859852e950b4b6344c3ca79b3ea4383c1b2e57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 926 zcmV;P17ZA$P)B*}I@hgnWjrZxKrYv*XY0<7 z>(Z6#%8c8wbaMhY+<;9Ki z*_`0Dc<|n~(V1Q3#FBPVI`7@JkX*QRGdcJYwRP>%k=3DN-L!Mtuya8(Bh8Fc?a`Ivzk%YqdhF4jGbgLKS6fMwqZc-?caA{Y@%&A>0%bMB@N9Y8 z7=nehtB;?FKFc5?tGY|lM1Xd3vGopS8HZ+8cC<_K2oM`Lv4cloOiop2cMGowfws4F z_6>?^otT`H%Q*Q6Y%6!q0AbDS>Hdzqp)ePL?dZjq)=jTny+0hyHy03~;$tK0r-oM! z?mu5IRvQUyFZI{XjBxt|hqB+N>s-G^hu6YiU0rr07*qoM6N<$f*WPr AssI20 diff --git a/mods/moretrees/textures/moretrees_beech_wood.png b/mods/moretrees/textures/moretrees_beech_wood.png deleted file mode 100755 index 72c49c25dde660faf13ec01155856a6b1d84f977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJe}GSjYqYy&N2Ym#x6Z_3mrdP4 z{Qttv0;R${T^vIy7=6z$avf0+VZJC?|E~U-X~yna1(mME+zW?K=H2wr+2otqbxbDs z#Vl|4L|L2D$^T!(>``U^8T4{AeKjXFhI|HfS9OM528KumhIj^sSO$g?2E711b!T-=cTI+H2E$N84L1#jXa+4W zErvt}hHM5MKOG$(9c^!IhExWIbOv32U4~=^hD@O27>um;$p9(ik|4j}|0Dy3!g+i9 zfZEr2x;TbNTxLDkn#kXE?yRt?y!QO9@WRWs{87;}<2Ud%ipjmG`EX;EJktT; z2Mx+fKjb_Ph%<6my;={=ivP4^ zaJWunj?qqd{ZHF`hw*}Ce>+@R6yheXkveAoK>nG!rtC8F-aViI@O1TaS?83{1OSM3 Bs3-sc diff --git a/mods/moretrees/textures/moretrees_birch_sapling.png b/mods/moretrees/textures/moretrees_birch_sapling.png deleted file mode 100755 index 6110b094978680f6094937c4e57900e9be461fc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!M1W6-E09*J=K25szZfrwVK77B z&6_u0zI>S^Sg;r<$6ONR2U7d1?8rSJmEh^(7*cU7)rV22!GPnE%Af!J&1*_UXO}N< zkdTyrl0SRibO$99Hda+97TGD8{<;=cY(DpBP5Rpa$CnA0a|@QQ=Fs=C tn0b}Ub+@Ct_$ud%6&FPHbMA^;GjQoK>6>@H*$=df!PC{xWt~$(69AmcMg9N) diff --git a/mods/moretrees/textures/moretrees_birch_trunk.png b/mods/moretrees/textures/moretrees_birch_trunk.png deleted file mode 100755 index 98d9638b00d0af2499e3124e6ee207a13c6465d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 959 zcmV;w13>(VP)bpwg3C_f^k`HOgV^dT(g~!xUr!B{`d3i*6K`0nDEcw&NMN&olmf@xOS(8Y*%V~%D`;@8S{(#m%~|+tJ6}(Z|upxR8Kr zQ$R23;@SWI{*!J~|M%?w`S8)ix44^yvzUPY`trA=m4ISQ$GE2d{`JMWuEDdZ-`Uad z=-&VO^YiWG&d0aJx2D|D#IdHG+tI}G>f)M-eY2#Hx~!YJtE8rymE6n%B+5-qpylq?*pbx6#G8x2c%Y$G*C(q|LvxwWgZ0q?@3QfZ^4|kb-Wm zpp&|*nxK$hodytBx>uEDpgq?3ZHo0XuGfQ58oteu#zq=}e?am2W(lY(x+v!chm zteS~?f@@H>uAAxM*=98_+0etwv!=DIqO6#R|Mu+J)5x`{ox`)Fx2vF8IVkh$;P7$n0T4+< zK~#7FW7w7!X<_OWbruLtu3NKe1w(p-nc)FFmzajxE7z_*uzV@QuEPg+ZrreW>yESg zjvhOH;tYfNdRYk;aTx>W=(a@*=gykRa9U1^nRUCEw7zTA_9^?PPh`-R6yV>&ehO%2 zYF+oF{yv6n>p8f%8Q26x6fAdd>78(f;k42wKHjrug%q`PJ+tb2&M+9MEAudM3Ip|c z1Sap@+r@C&L`{WJR9;iZEjTH!vb~dGPq?wF##yjK6Eh1BwKC*qYzherJ>?#h5Wl;i zsilTt&(s-{n{!hF?0jQ$4mH;9Vwg5(!TgSFe|uYN@3@NUq9Y7PmMoiB?q}oZ&c&v%iEz-)u*9N?&A*?ZgKopFk#SQ-$Fi5qx}Kzqa?s1L zzNe1R%&^bJr@yC-$+ekuS4qUGjH-xnly6(m%dWqthtt%+sgQTj$gI)Mwb$3r%ea}) z#H_}!mRL!TEG(skZAdvWLN+ka%&gJUwm~;9)6>1pzMsCQh{djvO+GQu$*ixCbY;)YQbz!lcZ*oY>gd(bBj* zG%Zd)GD0{ov)2r500037NkliF5LSp{=DdEh!}{`qxx%?VsvnSqK>JGUXP!6-Austz$t1LQH&iL36jw zI_(i9mp_3fE-zo}ncTYc>cwEcKmtvUR%dsZkKaFSEJOteyhrMiHcxIpzV8=1jR6P; zyYk$&EU#N+=|O4_<-na+`$wm%V@nRxt8u;qft-)mXB!i`VUO2qzgr-nr$gSmp1|*aYW*Th@2Do{sA`1YQX=^ymtTq002ovPDHLkV1iSzsYU<* diff --git a/mods/moretrees/textures/moretrees_birch_wood.png b/mods/moretrees/textures/moretrees_birch_wood.png deleted file mode 100755 index 621f8eec9ce18d07d035e6be2d642ae5dd631b70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1075 zcmV-31kC%1P)dCjSC&#QRgy^U!(0BJJ-(y4ZoW);@4 zbIqxC+p&4zx`4r(VU1n}h*bdPzk}YfbLhf`?!}Gex`X4th~2Ss@yeF#x_;ZMapSy* zaXbKyUI59XYu2@U@6DO^%$M`Uj^np>lwktq!HaP_0Nb^F<-Cf@n`Pa&hR>{S@x_#8 zEdcMwj_AUR=DK<8y@AS^V4G_Y)vtBfv3PJV0Oh)c?#Y*RIRK+|JHL}e{??x5zmRi0 z0M@U2&7)b#o?*ewT0HNb=9kI+p~blr*qGyaHe=F z?8T7fy@tAwNt0s?;JAI}zlGMWdD^#r$)0Gjg+bl3eRx9vznNZ43;^P~h}EolkY*Kt zNC0g#0O-P#*s*}#yoINEGuEzibwB{%y@uVhdEmN+-Lr1&!iCnUZsWL$nQ0Z2W(6<-LlQW)Q`rW7V;E>%^3oW*@?tVZWAD zznNI(y?)lKWu|^M#GhrJbt%@r9q-CanD%P%X-LZYrt7&000RP~o>%x83uWsGEd&!<- zx{X!hx`EB6X4tWD>&1xArftHPTXj4D``Dh$qh-~sb=$Xj;<|p@v3|*)X4tQI=E8{9 zt7fElDaoH$)~|Ehvvbp|ZPTl6j$Rnbp=NVI0Nb;8%A{%4t8v}6dC8w;;JSX^w}aEE zaMGu7$DCnkF96A*ZrZVS&!%!OD_cH(h z0T@X{K~xx51;N2e0znu6;Qi;Hota&B5S1-R3BoKXJVX&hPZ83=j$Ncfy+gi0hn}Dy zx_YT&b?#D^Gz;vem8Q{(E6&bL-v{+6&Zcz!|_JUFDJAn41(g^vVq&mTYQ zVwjeW>*AYiF5tXPKX$wR&fg-`phi z8ym}RY)pC$LSm!|hbIbfTc3R({)Z6!v;JqftJyY zGhHI?{GX@ib4ea3= zPlnWjCv)}-JX&!eHvGNiSskvm=32(tygsT6d@C|IzK6^g)(Km3=MDS%IsK1onKtkJ dnttF8`>8MDXUanb*@3QL@O1TaS?83{1ON~hhr9p) diff --git a/mods/moretrees/textures/moretrees_cedar_leaves.png b/mods/moretrees/textures/moretrees_cedar_leaves.png deleted file mode 100644 index e6de4829367c815615988c4d36808a134cc20e1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bRmu<)G~<-;=Hb<31ByL% zxgiRqSWANZg8u^n!|!c;!9alwPZ!4!j_a%k8wFb&IG7Lo@nB72mf~_~W7<>j_xhLJ z8J@;cFABCVXuQ7Ii&ty5-1@{5vCCV2&v{jlB%i3a`@rwjeNq}P+uaxKjJ9fh5tEyf xl4&yggKPH>PQj?HDHWSfK4_NRy!hTvX0d9~KfK|(5R-$c9p+{ALdv=OLc9LC2f^BY! zV@bAaRngN z49puIy?bZYru%=tyAVUegA#p4j=pxih_LJ?U-lJixtJJc3fDb|{S+f`f0fhcK=!2F z*$+NyHB`J?c$JNXfsKQqt(N7vyo7HR$G-R6KF5t&wqF;mQTV{$I6C_~@0WY? zfBz#Mo&$pCJ7f*NtabQO8OI#HGMame>G@rcGotOqcD!1@zi|D``>gZJVjh@Xwd<9* r{xj!oVn%Lv=Am6v7`)UnX3o^FpAaSxRhIEp2V||MtDnm{r-UW|k=sKV diff --git a/mods/moretrees/textures/moretrees_cedar_trunk.png b/mods/moretrees/textures/moretrees_cedar_trunk.png deleted file mode 100644 index ea685e3a91100ba3cdb73d4b4983e701fb216d93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1074 zcmV-21kL-2P)BZ^jdNbOoQR@^Z=;26Ur9D_ zRX&%1Y;#*iY*apBNi)o?m3dxEe_%z4YgF34sE>PUmVj@Na#?X!Ky_F?Yg9swZ&hVW zH;#5;dtgVNf^VjXa+7#sc3nwvSVLt^IelPEVM#fEU`BUgOjSNBaa2BSSVvYtF=IzG zYEnC1LNIbzLwQ?6k8f3LPdai|LTyq$oPB7vmVb0tL#~Q&;J>KHs+GW>hk0I1nS5n% zRzq%4J8@M)d0a(vSVMebO?6sErh#Z>Nj7y+JEDYba#%raP&|ZYPlabub5=l-b6kLE zREK9xjBZw)d}N}0UU*+ib67-tUP_U1ScYg%Yfm|fZCGteGmvjsQ8y@TR6&MmRANdv zc344lTuM$pFjYb_fM`|Fsf~qYOKed;n|WY!Qa*@iQk#2Yd{a4CLo%d-XKqY3k#%B^ zaa?InJ%nUQgJDR5V@!u_T90;Mg=kTGVohvJH*Zxxa#KLGl6!?{RA)^(k8oOKO*KO@ zBym+grG#u)LNk|iT6|kWqJU>~RzXEFBSteNk8xV2eqp4Da&S*MlyFvAK`c@`Dsxjk zUPCdCa$R{|NqSsFRzNI)Uq_jFVofbv zSZ7W;T0=0Mby$X6KzLh3hiOw_L@B=&g#7RTb*B~?0reE2gsgtN+zd0RMCXA-8&W_+-`Vs zsMYl|q13=IHU_lp$zn{}p^S&s$EV0395o3k#IT;1(@FyZoFOI7Z+^=6h5uy;{sPG} sn`ypqA(*)bO$5R<%W4A@nU)8L|B>{4p{EVKi~s-t07*qoM6N<$f?E)^UjP6A diff --git a/mods/moretrees/textures/moretrees_cedar_trunk_top.png b/mods/moretrees/textures/moretrees_cedar_trunk_top.png deleted file mode 100644 index 01aed1d7dd0b0d627abcbdaf441f1b434b83ed7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmV;!0X+VRP)+E%UER@SGpohz;?fD)hKr?354m zv{l=Q4n;F5@R$|yt3mRrJ@c|qLoz7}1qF%#0075HL_t&-8AZWGb^}2S1we(F8O$Dr zW|IE>&y|;zt7wOWgS4mlZnLcG%d7Rx?rR1Ty)1K(QbdV3#{i`+C~tL)*|Kvz2rJj9 z5F|{~#Nio)KE&e1a^b0j2M~H`y%Fam3rh#WN_iF8u#IBn351SsZT6=1CTMvC;l21` zvL1DmENc)xr72Z5?Q51s?m_rak$D`oWiC>K5(?{!%EVY@ao>q%T-%(p_hTs%e?bGb t=cgxhbi6oQylu9Leugy6_?G~r{U7tZFU5qk?Y{s3002ovPDHLkV1nQ6y%7Ka diff --git a/mods/moretrees/textures/moretrees_cedar_wood.png b/mods/moretrees/textures/moretrees_cedar_wood.png deleted file mode 100644 index 8680bd5ba2ccd575391ac8812c20f6cfc066d3bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)9Zv}Kl0+U(<^v{;i zf(O=x2zp5ZSu_Ffz;w=l2j`n6;*AM{PXpeH2%lmEky!*gAp!2aY@=iZ?X+4~GXdI% z2*-N|onZv41g>7q2{mmluDYV591 z-H8a`j0sFE0ZJ#a*t zF9GC|6zQQeZwBIl^N}}UQ{swRx$zYwOsPWf97_g9pfT>aWaN<&>#IjGpYwbG008(&L_t&-(+$FdcEnH=0Ki+@w%x96W)XF>vGMf( zU(lWzcr5*f|Gt`)VzIeiSp)JAsn)aY_GgE?8-$hNNtTC1NjezC)jbvrAz^x4VBbHS z;@{0PbOLWTX3jIaf;X=lrm;VUqnb{SDHR7)(gwG528_6)z_F}p6#E$Q4ARp;b<=L` z{S&n%_7XrQ3`;BZ&66-}-M7w9uV8_T7KbT6O0J!L4@Fr3$4>dSeIQ@Daexp5JF7`L z38tg!M4NQT7Uc4tF!sjti+tA*Ji~+nw;b_pOwJNE!Xibmw5qDf?4#VU9DdtTV!#@G i^?R5!^aQh5-1!5su1FJ=;Ez`T0000EVVcKeJw3*q5bGpq*8lxa_m$hLPROJXnbUckHJ0zY*HMx;H-z!ZByZp6{lJ- z(1N`TJaY7!;iEa}J`48Lq1VI(of7Ofag7~rL_~|29(o{LgHRo!de~`%bciuvfDQ#( zG-y+xQw<{@77F!3L^aq!Mlf<%qG%ApxEXc|RtXF|$N;?nCJ`(mu2Lt0O@fz&*d~U% z3N2OGMsZ8qsfC7*?Ia~dpa#3NF!0eRhDU*>Y8Zv+Bs)}bR1OM80jf8nRSt&&8XiZ| zT#aTWY%(Y+;Ee2<$(8cAGHEtb${sEj#@5!^%t|JkW^?Jad_Gsm7cQ|y zl1wE^#S;7c;j{Fch1_~EpU#$`$3mO@t=9 z>HdFN_wq6I9r{S6_tf#hlQqATb#`AUqb~Tr^817RQ^M#cFY2aXI{EF#iJ?{kpTpD+wTpZzCF_QhiiP&K6l0I9~<3~mdn2W>w(XFZQ3yQ`pu*vKK~g#+IZr|t3S*f z+W-E@^uphci;LMGoz$7BhFJ4#@r|DQdm`V>-6-#hRa#MTupD3qUu*wxyz2A-X%7Kk L*!xq*!Q=k}Ktn^y diff --git a/mods/moretrees/textures/moretrees_coconut_milk.png b/mods/moretrees/textures/moretrees_coconut_milk.png deleted file mode 100755 index a9a96c0691445afc06fdbb3d1ca8f4e92592d677..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF3h)VWefjd`jT<)}K74rX+O>Q4 z?p?fi@%HW8SFT(+ckbNp-@l(eeft0Z{|_HN0F^H>-L?}*@s$Mm1p@^UfWh^^ofAMA zFHaZ85RT~N9o(!uHzc}bWt|j`wQeqde=m|d8D|uxeSc>x wz$TE89>Z>!)x7{g=OKv{!0h-F->FVdQ&MBb@0MGkk3IG5A diff --git a/mods/moretrees/textures/moretrees_coconut_milk_inv.png b/mods/moretrees/textures/moretrees_coconut_milk_inv.png deleted file mode 100755 index f6365787a6d94eae5b58d1c0320ff58e5a197bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx*Bp9q_EZ7UASkfJR9T^xl_H+M9WCik>N`m}? z85qhYpS1w;3OrpLLnNm5_Iq{Rf7ND|+Wo-Rx;( zfF)VX$J}o{+}y$3vq=ox}au uHMa?B93O@1EZ;}$`70Epsd+zRhMGY!5CzP@K>rp*L0 z(tI~H_@?<9H>4TQ1RE^s z{Tq36djlg@a$eJ_VpyQVb7RpH&TXZCoFv&bcJS|Tj9Lxv)c(5ihOK~~0G3_b%d;QDq z3{PXJ7X{lFG+tlq#j7=2Zhhj3*ySz1=e#ONl26pzec<=%J}Hft?e2?qMq9PMh{?@K w$uyb$!L|Dbr(o39l#0zKA2iEuUVQH-vskt0AKq|X380+}p00i_>zopr0IE_*+yDRo diff --git a/mods/moretrees/textures/moretrees_fir_leaves_bright.png b/mods/moretrees/textures/moretrees_fir_leaves_bright.png deleted file mode 100755 index e3b2e6f30370de20888642c9d82fcad2c2113349..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bwN5aQGndrzQW4jb0E$^X zZT13EtR+Ey!T*7P;rBMaV4y&Tr;B3<$92|&je;!>9Lxv)c(5ihOK~~0G3_b%d;QDq z3{PXJ7X{lFG+tlq#j7=2Zhhj3*ySz1=e#ONl26pzec<=%J}Hft?e2?qMq9PMh{?@K w$uyb$!L|Dbr(o39l#0zKA2iEuUVQH-vskt0AKq|XkXsl$UHx3vIVCg!04@GWt^fc4 diff --git a/mods/moretrees/textures/moretrees_fir_nuts.png b/mods/moretrees/textures/moretrees_fir_nuts.png deleted file mode 100755 index a53414948effacf40f749a3ee097af0b74243e4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^Yml3!w}V=st5#x=p|7)s ztBp#Sr%qgeL8zxrfU8!Bhqj-yhQG5$e1JiSyOy7mMx>8!u)CIzqk62rerlL;q_3Wb zy;_i)mWQ3HyRB+MkYTu&PK=*kxR-92r?!{9nwNvRmxEe>i)KowQM8|)kCTR{y;`V; zwzs2tfQv@7uO84L-WwNo11X)7Aiv=M!~=%o*EoBC`Z7FS977}|Sr4)@H8C)-Y}mYe zw`gGF-~aV_j0_y7(zqNx#FZS(+N?I?dxPg^MFxX)9L5GbfAtIFu4VAYIqa#|FNqQr zILg^2sK5}Q%y6SlU`qLgH{UqcO_#sYuH1C|Ew>hj4Wj@K|E07j+VUkW})s$k{GW){; zAfK@$$S;_|;n|HeAjjF$#WAGfR_p0Nt^*1@EEoNr{VUIlTruUJHDti;LN2Eu8HlWmeRkD18d{_9c39Q}mhffv)HY@l%rp00i_>zopr E0HIMaF8}}l diff --git a/mods/moretrees/textures/moretrees_fir_trunk.png b/mods/moretrees/textures/moretrees_fir_trunk.png deleted file mode 100755 index cc0c5596bfa32bab8f2bd38af7c4527b6ba537d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753 zcmVjRdrZFfMZH}UPWh0H;ivnfMiQk8xI)d0S^mHh*GCa8*8RP&sy5LX~)0by`An zRX(AEWou75ifvJOT|{C>Gh#+EW=b|=Ml+jzUyyTFglJ8QY*1rJGlFGHg=tQAS3#eE zWMoJ*iEL4OT0@3tPH0RxriW>HTSRkIK6+e4fMH2-RzGx8KB9zXdRjwiO*w#INSb_K zd09g6d(9gF009L_L_t&-(*?l;ftUH$(@0@kayOjZ0F02<;RKRynfoGZtBmS@X(aFigVwx zdG6V)Qjl-IQ-?VwAabWAtk(6Ur<-URI(w5}Ki@=Iv zm0wco%8#gbW!J5F(V=qHpljEuaOljP-MD_&r+3z#Y}>JX02Z`7Y^)t+d_e^S?@Z_S=?+M#KbV^N!KT+^Iu zd00o`zKi3pblItS;Jbk9(Us`Qkk6B7-M4|8Y*)OJbah%r;K7yNwR_*VhG1naLEW`{-L!h!uzJmmUvXDO;<|w2zlQA5o@i1)cU(wtSVd@2Kyp|` zY*a#kBB$*D009(9L_t&-(*?nUVgpeS0Klzn+qT`*wr$(CZQG8W+}+zx>kNFNltu=T z5P}SY6i6pZ9W->*wZSC3Z13j}fzD-Vsu^hM>2r+JXRcll=tORau25vCYMNTCsOv;X zigpPMRWV|lr4_a}@*)V(?v6geVQll1qPB)|UK9c1NHBM6dX`SR?l(fyml>3l0Y0?Ou`gv^?;jnk*M zlgR=b0=L^kO|>J!MbWkF{b(wW0p;Dn{P6lx_wugf>*IKq0N$T(t*s952gPR(^6ys! ye7@XS=s`5cq<#@7R1$&=5<(aTk@^QI*>eIQln|`W|cEP2GdQ>9As*1Uvh0(T~%CVSQD+GR2A;F@Dx1EDpCIq^k zgvhLpy`qDujc#{K63noY&a#wpLJGvAgUqdx*14R^ua#gg2HCx%u#|Yqv6auPkHDRP z!=i$BNDJ7%q`swydrc6|vzXeso?tBo-M^*CsE5O+im;D#&99e_W;U2~O~s{(u#tAv zx1FAVTYF9z$EuB_g=BzLDXNWdx14;(tdqBxf7iO5Rv`r0x}(vxn7^Whp@3NC$*jkz zhQ6YRjb}z$A_TCJYp;-T&$XP!sglO0g~_Xmy`O=ylXPP(2E?e2gI6BXuaV2Eim;7v zULyv~tde9b2d9c`!>EeBpoVKU2tfk?y`P1^rH#a;hsmy!T_y$6xS+|elX_Ahk7z&2 zu9V2GlGC%4!J&WExS_qGg}j@7q=;y|op;Nvh?;Rm%&v~kv6P2mHLQ_ztdnxGntzXL zL3>dlpo3q*q=#oV2)Lbqz^ReQwVQ!fBGSC1b5|kHx}L_emT^rMzo&Oj=iCSx|(;qo`BP~mTWr2Hq|!(hJ}dNlb4{o zz?^(JGSTBW0D*&xm6oBi!`-=_eL6EW(Ey`>l$oNk!Oh{wxSiiSG(G^apW;}LsJzS0 z-^S$Pq;$;I2m;{XX092z1mR*|IM zt*@-suHFCv2o4q*B`8#TXW5(Cc5r$C1O*2a7Z@bg+iGTicWzu;000cn3lASGKhI@p zV{KhWQvd=6&=MUfL0Mp7)X>yTOh^C&4G|tIKw4g3WaQ*hN#x=H3J@SJLf3C~Xwza) z-BC-^02L-fjHRcmj&s^{Yem>jPXIi4sx?FtR+Ey!N33i|Iff@wqi0+AjQ+gF@)nf>p@0A7DEn}4O2hJ8hmJA)L_$i9e-K1 zVw;@m5&dhM9zE!|w{vd6^}2hls}weKui5$QeCxZE>B8;jfBiZTKIcudz}r;uT}_L0 wHawbHbnt1^qPnb`1K<@zJ$PE84hBiqfV1MOq*boFyt=akR{0BdW7cHTclLsKKW3I{vb1 z#Wp$BBl_1iJ$le_Z|B^C>vi{9S1D}fUbFMp`PO$S(}mm5|N3FVdQ&MBb@05~yB`v3p{ diff --git a/mods/moretrees/textures/moretrees_jungletree_leaves_yellow.png b/mods/moretrees/textures/moretrees_jungletree_leaves_yellow.png deleted file mode 100755 index d116455e563b4241a8ff674b8271ba130e28510c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bt!OtcZ!wBVHuUy228tc> zJA4R8v6ck+1^@p4|33qt*^0?PffP>{#}JO|tOpqdSqwQ?Hcb5>Yw)3gQG-q6b^K-3 zifwYLNA$04di0><-p;uN*X!=Ju2R^{y=LdH^R4evrVF>9|MlxY_?$P*0&i2rcQq~2 w+3;v)(ZQ!tlW#bS%`KRDXJW%|mFtg~J2fR3j%+ud4z!QK)78&qol`;+01{44ZU6uP diff --git a/mods/moretrees/textures/moretrees_oak_leaves.png b/mods/moretrees/textures/moretrees_oak_leaves.png deleted file mode 100755 index aa587c5d73bd0638a2dba007dbec99b2bd0b0c8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47_9?*LR>98C4fj-k6+hX7>JCW z#q?}Nlyvwcb!Y7t*#6(liy6Rp$Y+9YbZfcv*m2OoF6=g09hW zK#g)5yg&rh2o&cLW;3uC0kVZ zV#?fxev&{fqDtIAPs!@>162Y|mNyiT)8_{|Ow~%*$X^Pi*ils3Tu9$rLR^(c-Bv`= zL{QID0%(+$vzWGvn1+L>iiMDlo47jAd~0E#Q}?Gn{RE^kOM?7@3s??C#g|+y`NvrN z@A&kWZ~y%_78cm^f3C!zX_w#q|6kDhU*JmZ|Noc&|C9Rq<_aSt3v=bIf4^Cb=P~bO zxBLGg+RT@UDd0bINhRZdynx|O|L#_xrB6Lw977~7vmRt_IuanjdLZuhw%prt#xsBH zzW>*MLuiUu!+WRNbxPO&9F^b6#dXT!rkC;R51)N`L}WJ4>wc}cre-0}<4B%> zy^i(H_|@JWY&I+Q=FIzc1-EQ2E|3s)e?43Jbi|!YMwLrGIb2G-xn+t zG?U>tn6|$xvbIja$7i;QsNn4{kG%FYGOakW`hHaEmfF96D%5#XmN7oJILQ0BXGwj{ zU(v^XTU*RlbxT-e9?M~TaiyZtNj@z~_hro-t?3np2Ul(EnL739$-L(?PPDBv=h`xL g(Q@PK_bz_p*KqUOzovYZ4$#94p00i_>zopr0DRT@-~a#s diff --git a/mods/moretrees/textures/moretrees_oak_sapling.png b/mods/moretrees/textures/moretrees_oak_sapling.png deleted file mode 100755 index eef6a7217514002dcd9aca627233b9c83139603a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0UEgja_{*n~N4})n{_C*`6Yko5=Wee1 zxnGFwm6?>}_lr>R|I$?>0NrR0n>HK)Lbzl(vb!A14ZE!Dt}KfjVHW}+0U-y3n3RwxMibGr8q-?s zZSULOcWrCyeQT;F=KR_}(V6~$PVvpW_h#O_nfK|PO7W4lR%I&y0Bx}-n{K-35w~q^ zDuN0#0I+2ymFNw#tnbKpfpnsT9coPG2a@5*LXsg|9POn8&e=-;R3*1iA2~Wvm>un( zs}Eb03X5JrxS=TRsZ~;h15%4b#ok?0l{6Q`vJsNBp>CrtV1?%Qmx6A~Kq@qr<7$Jc z$#M^6LyQ_}b&!YEibf@GGl6zQ>oyyzyZIDDOpj*9^4$RxK@F;Gj4tv_F~OulghDKw zua`V#2-d6IW?hoSaMX-DkSOIVBxtKa->8?W1)g-HK`&b5S=<7_+vP^NG|6DqV#)%l ztRQHIyB20f`ns8HjEqwrj`YGBxgAtRDG%vES;7@?nl+tb%n9R|jgJsME20*QD37^b z%2bPdJV=ys;c_^rQPVs#<;CZuTx1#%+f9ru!PO)H0Apu{ZabFOl5W~&+c^L z9&3WbVj*v*Ow=2ra2rB}IuZzBDDE)V2KgNh zm~faKR>Wn29H`M`)E*e=({)HXr6SsI_t_Cdtt@g(khB{VGLud#77Fc%fy7V?sI@|% zTrAc|C8W!ukx0_vfJrGoIGUf^S7u39IUk=cXWXzZmu5!tTs}tE%DG~inH=mH%0w94 zCK3p6HzE-}f?OypXX8q-NGlabNsmk@Y!?WWl4eD4c+n35K#MBI273?v-6CrF=Re^7 zpMR|0{qp1aV=ugV&I`s`_}1qfcy7;`R2ptNBE`T{R^*s z`sUlf`VZf}f4H0qMsJq(z4*~58^GGV4~|?*h78oMt3%VT{ImhAzjtVqW4b_HAl!T9 z#E%bw^+siBCnVOk8Lvie&wjT8tnEo}!cR+NLXDohUHfVS_^X)kuXQRFa?vIF@`0~c zfc1l$t3Ihp(B5$=K5+euX5&=;&NZ8Q`_ct0HuloX&DqZjtlQ;y#&p5HBRBKh9I*NG z-tNmDCjy|WcW+KjJ_I&5Pi6?Ox%K*a%f+5&Cz`?UpY`F^EiF%7+lh;M|$) k`6nKKY}=J5Z!GsOR!TOg1$%4hjWeQ%*!SHf~*4GAk=KHZmz55Hl<+H8CzSF)&w1MMp(JIWsao zJUTx-IfP<0lWjatJ0LhJ7e6l=EG#TAFfg5UK!{~Ga8oUeXgQT`JYz{HM>HI2Pb-&j zK8|TQRzM?=YdcFf9w;a%T0aevp|whQ z9~EnT1;VV(+blCf(=~=sHjqTX8WaXW5+aTQV zv5Hm}R%W8#0O29oB%|nrH?iLY;kD0G8D;SjO>Wjf_-H+I*9pa(%q1uwu{bTI_hmHt zK2U`_6=SrvOUd~+P>tJ@{l&TYrG=yO$M>&5pLM7!{0RWU_b=p%K3ck|>a+j=002ov JPDHLkV1lKu$BF;| diff --git a/mods/moretrees/textures/moretrees_oak_wood.png b/mods/moretrees/textures/moretrees_oak_wood.png deleted file mode 100755 index 0c1532bfe56c3dfab3ea74540b8195c4ecf3b63d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)=EEr}? zDKjP%byqOBj8ix&7qo^+E+P}VkXTtlB(8x+850T!1_NzTEEW(6QavGeSTJrC^h)sN4Gm>mOuYyMo3I#eV7k*tch-Ehw4+t$G5{zg$opnHqXE=gk zHKuz*o_0Z@ctWRqM456vm2Nx>2n4ErMR-{;vV}>FX*#5OLp3NCoOC~sYdd;cF_UdP zpm#wD2Lz95IuQ&8iDo#KZ#|=VLYHtpwhZ%(0002;NklBmGi}JM#NbjovjzZsGPEZp|K!-v=Qt7Y zuQH{)=I22+nvN`O3<#k`5fzUPoISEYWDRt+6mCY%GG>9)NE6s9Wf^X&@;(oTEv>2p loqn`fs<`K2pfG(|{{@J@K{e|~kW&Bv002ovPDHLkV1la`-z)$C diff --git a/mods/moretrees/textures/moretrees_palm_leaves.png b/mods/moretrees/textures/moretrees_palm_leaves.png deleted file mode 100755 index 405a2d41056db1a6c897948f83fc911e7511e777..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 902 zcmd6k{Y%pc9LHa_&4<AShgq4|NFYRZ%7+b~7ZG?7yD4&OR1;5c?=guq1|g9m+=3 z&Db(|4MG%kJ&p~??WjB~a$)Yo6hTOkUyII%vKonqYY;KX!a9tZ4=IGzWSfyyvcQ5= zq_hjQm+}q@eYgfFXeQSUW=wG$Y1Au_d(dXe)S>ZG6r?bSekH~zjz09QDC)?mqO6m$ zE|hgFOCWP&O;X^cunnmV_a?+N#&8BBJ32niLmk~6k97R^{SASJ_N+|5w;_K^V(5kJ zhGc^zOVfNKH8Z(&>cZBUN$t#Z|LenzrK;`wZ+#wosA_Y4z4>l(IOpj;b9VNl2lr;5 zOG|&Ac=l=0TxE@=XZ7>(#@ttLKDt-@eZ1efxBH4~=hU@Bdu12y9vk`X=;84{%WD${ zMvcDBySEKp-Lp$Lak>5R^!Xhhz6Dj4v**TU$IidsCp}X?dZ#KZ+!vR;+~2h8jiyT? z^V(nhK4faBGOZE=(|@0L rZiejrb4LobBQHqb951#Jj73CQtEnaSV~Ttb5ix>9B*q(F+?@ySY@%eShru?;6|j)R}p; z)(7{lQyc~dcC)A|Y`ix=CT3;h-y6w}P3x~L$#MImS5eD*Oyc|8eR|2V6`PGrEBD#m zSo^Ut#OFnIg7CewiH~ZnI;+xk&xZere5{HGFRIPh$NJ|C qV`}sdSKd{pZaiWM_gS&(7rSV)$e(Gtac_X`WAJqKb6Mw<&;$TWEM<}a diff --git a/mods/moretrees/textures/moretrees_palm_trunk_top.png b/mods/moretrees/textures/moretrees_palm_trunk_top.png deleted file mode 100755 index fe07ae34e1b60b88d281cf38c010c835e5346ac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmV;B0dM|^P)I~&@kd()R< zPB$6KfNhB0f4CfPZtu>g^EK?CuYj=r>Hh*-_a$xXGKY=;0000hL>#DRDveent!yuSO&?h{7Q2sSPcRc25C=pm5t?5oNh}hHR3n&O zCP^(5yOCFDWXR~`qw0%mjb2_wtOt5r4xQbr2fKRuFS+|H=QZf{>dPTN{SGkH` zxQSe~gHyDBPHs-10{{R3?ny*JRCoae!GmE0Q4|2c7u!b8w(Yg|8~qoO8K{hQ%UyTZ z@04bp39B3*%;B7CDCWJ2TzdD7g7?1y@~!&u)w}6Ip$x7SWndV0j9^xlhd>O z)w0{Jx1XkcIAThRIZ~R)?NAq|0I6vsGuwQ%3BHN70@F&Eockn1t7Nqn9mr&Ij#GPS z+}+<&r$DO^uw-o`ChD;lZjDHTmDM`l_xOWM?N(aE5G3Q4Hw@;_G7Matl>Y(jo<4@P Sc7C1!0000bYT06J)4)Vm{EQ0+O@xb|IVLKGPkdIUVq8Kg9o2JeLAP7=-8gM zhj*^}@#Dw7t;^^47cZSsapcI6@87>ac<|u$>(`$?eR}ok)wy%$&YwU3?Afz-@7}GL zQMGVl+13r<;#~BFJ8QS`SSDU&+p&AfAi)I(D|O>lT?6|T}hB%@PA4G!>-?j zWvfqlG&m9t`7Mk7G3yW0Y5fJqxE*fr zJzDjtxxr-S8V8AOTa(tY1QvBKS18eWn(o;BWtlD0!nm+X1LJS6moDRWV>GzTo)O9* zbv>@+?rx4Riab*Vmw%r7{R@Z8{a0<-fv6 z72D)gkLX|9^yopyy`6IluGigbU8S&@d(F;Y=Ud;UOc!oH|LfO*@Huaq1>UBL?`m44 wv*FRqqJvMPCf{%tn_DpR&cue_D%T$|cWO#79NBI@9cUker>mdKI;Vst03#|+i~s-t diff --git a/mods/moretrees/textures/moretrees_rubber_tree_sapling.png b/mods/moretrees/textures/moretrees_rubber_tree_sapling.png deleted file mode 100755 index d2e06d058026c898b038d171b517e0ff6f117319..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0UF?nnzQL<^TWx<=Y*n z0{M(3L4Lsu4$p3+0XdeQE{-7_vdIY!%)D9-jje1vJVKsaygW8hUBVJOEVf8X+z9hx tRGpT=(7A`zp(&ebLPA!9FuQ^dL%<)-og&XXnt_Hec)I$ztaD0e0s!WjCFlSE diff --git a/mods/moretrees/textures/moretrees_rubber_tree_trunk.png b/mods/moretrees/textures/moretrees_rubber_tree_trunk.png deleted file mode 100755 index c5da574c14b26650375d2478e3cbfbed4c637683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmV;m0!safP) zv#%x_5k@yECK?eX8WOUutUWd(MK~*1PDdaV4nH;}F(esEJ1is^5GETCNjxt>G$leb zCQdyrB^eM?N<=p+AeWDaP(v~^C>%5@8&NCVIxr$D9u+w&AX7v$ zJTW9KAsHtd6Gb>DR75l?9~C+*Aw4i5IxQe69TPY!9w!&KqHAFQiOFk`0 zIx9^)E>1x+NjfPzFCr%!5+oWCXI)dVuB6>0LK5jEW^U??93iByL0S4v*!%#ax5%zZp$UGAPblR0g_;WK&U7ZVk#9S z8kk555m9JHW|n4Ic8A?Y9%N-FN{Iqb-+C(AKD_Vy`}}*}-r_(G97RR}0N}h_e@ST3 z|050ywT(xD00^%X7nEkvu&5|Kwq|wV?)Lh!{FKRwFekooq3w#Vm^Y2M79ky4ndT#Hu4kh7PzHg2AN*TrzX@5+Q@mpF7>N zV-us19vvU`I;ob1x&#(qQ;?eP8m+@pID?%=;~0(Gg4qd~orK3n4|R7m5A^r7Hr6Fr$PE<%qXG(~^CTkl+Gr~w z>ujx0wyM1jL$XCnLZsW|%WeS#XI@E2}_+wd*gYNCwX~sni0pVh>rLCp0 zc5RNwHZ^r2&1KY~5dmM4O^YV+T7MGfi(~B+>N2T$O2(??@fO-;Au{5f$vndwRL3U9 z^h!xXZKXs2j955BAQoI~rxh77rj^N#BZK`Vd8vW4XcL9#(FnIunYY5JS4Md_X87>I zwvDxkyorfkqn)Gsi2`MSR2fBvxLtZdvfx4d0|#&yw#`><)+1Xcq5BTEd&~4#*HdC z#;6(}8R~3rQHjC$*f3|n5*^wUj;7@h3IU}UxEMTi@8#v?`RSYCArfpZ2?Q7asc>u$ zF_q`fEZufZfC?7=1yMqg`0huKEqr$6yPH2;ntBIBK#|1y$4`EG_1cZ=mp^&;1PB*U zX&d*S`TG0Wxoa7R;ZMIAttlHy%2ef7<&Pqme2F0H8q zOR7M_6You*8`_i?mysS^3#3K&?V0%e?IWABnZ@{}yUM_-4ZFwQe`|D0u9>$ix&1zH zf6x5skDl9}7Z;6L_kylFgD<|^Su$_ZJFRp|)gxf> z_Tqu#Ei3cAOG`1y)mxthVCO^KPuADmDpS~{F+LX3M|c1<)qGa_z8Fo{hyfk!iNKrVz-I(AVygito3dQy#K zL!@<5rEyDzT0NL*NVkVsn`J?*cu}f(PDwW zIwd|WAW$_XPB$hjAQ(Fgy|J9Jqlz;s z9ifnNw5E@%oPxl$p`(&@ub_syt(U^LqeC1_gZK(J& zW9yryBfJ7_8&PG@PKR34Okj|YJuT0@N`I}WJ^Y3cW4H~m)ggp?gdJH*DZP`0bE5W; zh|S2%j7PEyAs~;6k@0O_RDqWfgx2R)>vygDvhPI>mmMdfgofF=2?YRel(uZ%WG*aDR!nFvJjG-yM>&l$&I%uNROXN*VvWo|x&Cs{^c)U&&cI dv9am!%|G(;CKk$H=^_9C002ovPDHLkV1jdyuQ>n! diff --git a/mods/moretrees/textures/moretrees_sequoia_leaves.png b/mods/moretrees/textures/moretrees_sequoia_leaves.png deleted file mode 100755 index 594c958353255103ba1f8091e905ea42a210f431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bjY$_WFynOc;#JXL2a0*r z_jds)){-E<;Qv6t@Ov9yFi;@F)5S4_<2viXM!^;b4(0=YJXn*MrMMj0nD!L>z5Zo) zhNrRAi-PS78m}+*;?@~ diff --git a/mods/moretrees/textures/moretrees_sequoia_sapling.png b/mods/moretrees/textures/moretrees_sequoia_sapling.png deleted file mode 100755 index 9142603e2e8465b0f0e4289ebc6f18162d46428e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!M1W6-E0C6s;83gP(UfAb{DNQ$ zbGUo}%CVLN`GM3jFdWKe+X$p0JzX3_Dj02h82K6uIG7hkKm2chP3x)B$#*<02UrV? zdHDSHHGgfn!g_x;`>B8Rks;@He#i>WElXLOXz``yqw~K;VK1#chxO{>q-Pn6>Q!HH gz2Ul6|L*4shT;=U|K*dI4udT7boFyt=akR{0AwpX=Kufz diff --git a/mods/moretrees/textures/moretrees_sequoia_trunk.png b/mods/moretrees/textures/moretrees_sequoia_trunk.png deleted file mode 100755 index 16d80a5f76c13a767d56de65a46f5371cc406a15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)LZkOdo$V3yeSxo=X&&T_<2Y z9&SDuP#gk_LJ@O46;K!ecRLecAOMp^5o#jIC8Cz!#&*x=CA z%;NINkKXUC3pXzn)_P({tPFD;o}zGZnNc-Y~l`zk9H=xuupF zV^YAb!QTF{@c%3vippQVl*?xD=ZTBuQo^iyzkjs&(n&-s)n=z-G-4|#QZ65bK|5(LD~d)! zjY>wAR5?5r6IUf7STP}aL@shbE1P3qxMoF>R8XZ{KAdD=qjGPTURi}oGNg5Jsa`;q zT2^>CG=@tvfj&8yUs{bxM2ba0fwi)nPOg{ZfcNGOo&52m|$IYH!_k{QHDW0 zQ7s;yX=j#QScE`2j7UR~Q%;jsQhho$N+}yiC>w)-I~xE10Ov_WK~xwS1;GP?#6T1U zz`wT5S!--tNhY?t-~BJKRWt+#0002Mm*ij1nuWsFc5Y{QxbU zp9b|-+-)$iV;Y+h2z}#Vx?3#om8#VwsDU5_%yWW7)4IFT7_aZ5h@_` zkD_CiIBLwYvAzaE<>avAMb0Ri6y=aWxJz5iu z$`Vyky0NLc?R^l3o4jWpoyODLvyFRBKE7hn^LmkzraJopX;?fz)Xpw0$LHhE*@Dxb g#x)-Rzya{(KWULhjF&M=<^TWy07*qoM6N<$f=CtVkN^Mx diff --git a/mods/moretrees/textures/moretrees_sequoia_wood.png b/mods/moretrees/textures/moretrees_sequoia_wood.png deleted file mode 100755 index c3b79a206f1d5216e6aabf5d7a0829e99c8ecd61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1021 zcmWlY*)}$Gm+kCvQA>_t0?Y;o1J>1P@n&^0=eYTAaxiG`MOSX~TrzsWP_ykoGGNU#*%y{u^3nO_6wg_SnCK^av5$smL zL9{U8C#QMJkHDy#h`F!`Yf3jU37(9y_ymcLVkPq(Oq9_|en*DG_n;+Vi$dhc8Lu(L zVxpH2__~P8G)kZ&xT3FIHp>%9SM3Oi3LbsBnTc?w7_G_ph#_@R+>T~BOrX*Iw0g>| z-=*5zSOSA}%7Y!ufCd>OmF-n#Zmn=g{d7(!iC5Eru24pr%IM-v`B7jSS1gbDg>7?#ha5nooZ)=4q9+&W2|NX z-8gKhN^ykH#)Rvwvpxfbz=#!%y7Uo7bEwNHvbwkj3p>?EyPQEnHNjgZZ5p;11})Vg zx;E;-GR>Azvr_QX#hiv9sTS>M+^q{cuo*uYBoz|`DmbwOM~JLGM5(*WV8o$`*mdJJ zY=qqEEP}ZvtH>EW2<)nWLs~@g=t2&o4}twvvKXUd5jbhB-d$bbD~6)SnB?%d*ATW> zx0b@53TP{Y0;^ARCJuq?JCFPcK%Sh$4etJhJXzjf|AO$~y9+~mN8X;feExh*?d5YI z8GLVPU*Mg|xjRA!rn!9!WT&S__rHJT%oks0#7@0V3qG4oj1PxCJo4R7N7HxP4Qg;; z_oZsnrK|IccYj^Eu`+fFsJ4{8w9UBZ+TkC5|K*#nKK&eQenS2%QjRajZ{GU(w;#X1 z4c0$=debw-RTugr(!ozYKJ+CxnZNMplh2*ox?sINaeddx0dUW{GqT5?DkxIWPefQtH;gJ_ln_0X2l{QZ+ShM!TgO9&ZS?6Ldp19al-vCZMuz0qxf^b-1a=0*icC78nRR2R2B^h>dyW(PWwRsD}jJD-vFAZ_(@H6~zbIOy= zb#Ip#zS$NxKiS^hUinNp@3RfT&9QnL;sbVMrM8AxcY0eySjlQAajwWpSdkFW?{BN2 z#p7%smTjdpCo`nm*;rnd-OfZj)KoFoQll%>Lqv!{N`}crS5#J-Bi&BJSRUj}=CmdKI;Vst E0Ns}2i2wiq diff --git a/mods/moretrees/textures/moretrees_spruce_leaves.png b/mods/moretrees/textures/moretrees_spruce_leaves.png deleted file mode 100755 index 6643b87b29d545702587947d50a6fd2693e6511d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bm2^_(k`olvlj0EO1Bz{G z&dvf-tR+Ey!T*7P;rBMaV4y&Tr;B3<$92|&je;!>9Lxv)c(5ihOK~~0G3_b%d;QDq z3{PXJ7X{lFG+tlq#j7=2Zhhj3*ySz1=e#ONl26pzec<=%J}Hft?e2?qMq9PMh{?@K w$uyb$!L|Dbr(o39l#0zKA2iEuUVQH-vskt0AKq|X380+}p00i_>zopr0IE_*+yDRo diff --git a/mods/moretrees/textures/moretrees_spruce_nuts.png b/mods/moretrees/textures/moretrees_spruce_nuts.png deleted file mode 100755 index 130c11c830d397f479851b154d3c3c791e29acdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}dw@@fYrLCrL9lhSn^A6nRfeBM zvZrxgpjEW1QLMXhnvZF$t5Id7Lq&vrVX$?Qr)ivraZ!j(x{qnFgI<)YVWO95inm$3 zhe?F9LAsAwf|qHkw^@ddd8VIPn3H~vzh$zQNt}mCZjg0~mq~t*b*8U*lBaQ+w`shm zNrta^nzvbun^8fKHP9{A`mBjSO1C7)FZe$RfMMx-?!Q2d8J;eVArg|T2U(e#7#LVK zY~H<_*)ZXM{rqSKhNkN^j1C4f&pFiE3QrL&unc8k*jIi?q9)(Q-X(U=#~-o{61=}x z^vf%-`BtoFU~I5uYDnr{aFuoaeLhEJe+~0&mbqp8I*I{|3JeVOp5E#&k8W`|544lP M)78&qol`;+0L9vf-v9sr diff --git a/mods/moretrees/textures/moretrees_spruce_sapling.png b/mods/moretrees/textures/moretrees_spruce_sapling.png deleted file mode 100755 index 935893c075b9d589953770ca106b6b66a963574a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJXMj(LE0C5-WR(+Uj`{Or0g%I3 z666=m;PC858jxe->Eakt!MOIcq0kWqjs}OD|LuQC9Y4KrL{_AmFo7WhtlH%oM_ v#**GmYI=^+cl<3AGp9ApvY#&h<^!|Ed4`G1Ro{4k<}i4=`njxgN@xNA9$_xt diff --git a/mods/moretrees/textures/moretrees_spruce_trunk.png b/mods/moretrees/textures/moretrees_spruce_trunk.png deleted file mode 100755 index cc0c5596bfa32bab8f2bd38af7c4527b6ba537d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753 zcmVjRdrZFfMZH}UPWh0H;ivnfMiQk8xI)d0S^mHh*GCa8*8RP&sy5LX~)0by`An zRX(AEWou75ifvJOT|{C>Gh#+EW=b|=Ml+jzUyyTFglJ8QY*1rJGlFGHg=tQAS3#eE zWMoJ*iEL4OT0@3tPH0RxriW>HTSRkIK6+e4fMH2-RzGx8KB9zXdRjwiO*w#INSb_K zd09g6d(9gF009L_L_t&-(*?l;fPIo1i&`)f|xbZFn0a_bq=4LNeT)7(n#`sJL>x7b-yYlfkg7i!k1!Z@10|S z(jn$x<01=QH{yJ$z@=n;nFoIWjNHX_K-9FSfe z9TNtaWFL-Q9aJ|FS2+@9Lls~@6Fw;ohFBYLNf%>56m?A)8W9Bv1_Dwx5nMbIeNq|? z2m)b16j?eFkzXEdM;3om8i!dNdQcgBQ5k4N6$k|ZZb%n+PZ@Je7+X6Mfm9kF6b1$a z0dh+h3kL#(RvUs<8*4@uX+;)yP8j8H#p(b60O?6YK~xyi1;GPi#840b(5dZq%_OVX zwm;_n*XesOHD}$ln=QU~in9LNNkBs!+Q&o8{OzwoFa=c%Nm4Q7r8{&e5-73Fa)Zg2 zs{Y&CjSsIMUeSA_)$h&G8#e{$DLtRgf!qYS)BH3(7&K;~N~v3AH7^r{G&>G$6{inx zk;d`;2zJ+*ccuiLv|6v`_5z+RsF9?`C~kRBq7BdOB&jC{F%;bF7-!#Emr zN3Ya56n$?My|uY2#?k6W5Aw?r6D=pV3>lZ35>AI7B9s`3e z(0T?N_UjLTlx9hgU+{k-0YlIig?6B(C7v#hArhBa54I*UI|?vt(-{_pJf$iem$zR z?4OSci;SJeQn5pCeHnhR8C?)rc&35bp5a8etyR{p#T%M7X!{GAZPh)uOSwmkeb?Q) zf9pz8ilxp=H1 Nc)I$ztaD0e0sxp>kf;Cv diff --git a/mods/moretrees/textures/moretrees_willow_sapling.png b/mods/moretrees/textures/moretrees_willow_sapling.png deleted file mode 100755 index 18414de443f17c0994ae3ebbfdda45f640192245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%``JOJ0Ar_~T6C}PkXifZT?>g)2 z(}@4xs!j$cXSwcGWIHjV^8l~XshuaxlrI~lDed5O+{PNK%yan1qI(fMj?-MW2`&?i zl{w6i@;|AV(Mozb_lHasi3vAM4#l)xe))q(@m88sn?S0uo%0F5QzeEB3^R7M2&hTL Rp9NaY;OXk;vd$@?2>|z|J4gTk diff --git a/mods/moretrees/textures/moretrees_willow_trunk.png b/mods/moretrees/textures/moretrees_willow_trunk.png deleted file mode 100755 index 0fbb6b1dd588aa2eb7e390c00bccd73e50abad54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47|R2ELR@`40>T0#^mX*}vn#AE zo#La@gT4LL6_u^btW%TnY|YJ+BBDKPEHe^ginBBF^YWeT9m4`6?JTU#P0V8>t{gIyfmgS-QD)HQ9*tr7!0&GmFLl2aptLhLN9V*`Rboc*j#%yVNxLVbNb zU41j6BP~r#^>mGWy#q`POyWaAQlcXLJ-uBWT#faNOLDVQqoaboz2ZXxGE(z$<09?N zt^8bET&%5=qM~)RbF@$n9{v#?5!OH@`=iVO^li;VSk@vyhD&4`PS3JfXE%Jz44jR**GcXD*GvCc}2 zOOJ`RvvJCZjdFMP4Dj#>_Vq8!Nb+&@3ifdJa&q->@e1|wtj$fgGBx*fat`rwKPkhP z42+2lo-U3d6^y3mf)^cTU|=~=yDj&&S=Q}sZ_Q3V{Jm9uMx&$ADZBr5@3?#O)(5W_ zd3fdamG_Sh`XC=#JfXKc{vdj5v|hq%8GadtQIJ*>-)qkW z@cL;%d5NQig>Cfx!`s8WRQ{jezRYb}*f;ZQ&kBB~`c2=P?|xbMarf!fpEvK=b#>_~ x%lofyT=?*Wfi2x(zWjyf>|cH|*4800e{E8-&lmEqiU7Ku!PC{xWt~$(69D?;*%<%; diff --git a/mods/moretrees/textures/moretrees_willow_trunk_top.png b/mods/moretrees/textures/moretrees_willow_trunk_top.png deleted file mode 100755 index c54c1820df271cfe141865393475610d378debd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)@0X=iO*T6}0`c4Aa0Ix~pBowQ!S#K6__n zg>P-exOS_XNP>1Zdv7#AH8e>*Jb7hfyscq+ZZm;vX_|{cWmHp4KtE<&E1;1>Y+)@v zGcvB7NwuU-!Lw|@vTL@bQA0R4zp!S7csR15OJY(`hk7`ReL6idF_MHmxTsflYB7j= zId^O_shCDJEi9vxL^Lcb0Tuq20002kNklum z3Mc>o008Ph{qw#t3_4j|7H>VE=(XV`o60<9W|nGzR8z*=p|b>E=q&X>aI@3+c$OT^ z*K1uaLGVf;C&{3to=?kb5Iobb#yU-F&a~Np;BKmo&|@$NHn1xY8vU?ntI@BW5n`iHedb|w0 zZ6}o@B@@4(2!(sQyf{CzZ|skKq3ADCQ4au60My|h1Fbk8$0BNi00000NkvXXu0mjf D_TSTp diff --git a/mods/moretrees/textures/moretrees_willow_wood.png b/mods/moretrees/textures/moretrees_willow_wood.png deleted file mode 100755 index 21c57428be981ae7dd79c17cc2b6402949dfdb2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)jPC*-2NFI%LGA$+$XI3P@qfbvl9Dr*r&9-!AR3pf) zV?Hw#%Cc+0q);;}5}blJsEj+tt6iIcHfvcXQbZkwa4(5+Fnwq&#Hd+dP$7zQF>zif zJ24bXJ{r24L1R)PI4%=|Z7xhe8?KQ(KQtC(QzKnXAVD@3jC3)XfHuIQO~t8Nyq!a( zi8{WZNxz~@!lhG_do;J0Ky+a#HZ2plnL)v&QaLabtByRZkUhPgMzoecm3%bAr&d%( z9i)gkn0_@iEE1A=Gf_hvy`Dt7oIq$gGR2b6*!2^QBP!s^bx3=xtOxoCXzVCmOoq=SSlu4Opt%uI$GbZ@v%j9q5(i@MLy=QI_L}ad&eH2PyIu zNg!5H9{FekKs%D?$Xa|;)sE*2kT=<$Vr|EoHfs^?f@S6IBzG5A)_}MIYOkqDBooE1pHfai20S>h1I&#?(A%$(Ckh00000NkvXXu0mjf D%?s?Z diff --git a/mods/moretrees/tree_biomes.txt b/mods/moretrees/tree_biomes.txt deleted file mode 100755 index fdba90db..00000000 --- a/mods/moretrees/tree_biomes.txt +++ /dev/null @@ -1,37 +0,0 @@ - - Elevation Temperature Nearness to Nearby What nodes Perlin Avoid -Tree type (m) (approx., °C) some node water to spawn on seed diff radius ------------------------------------------------------------------------------------------------------------------------ -jungle tree - 5 to +10 above +15 water, 20 10 dirt_with_grass 329 5 -fir above +25 -20 to +10 n/a n/a dirt_with_grass 359 8 -firs on snow above +15 -20 to +10 n/a n/a snow:snow 359 8 -palm - 1 to + 1 +15 to +32 water, 15 10 sand 330 5 -apple + 1 to +10 +23 to +32 n/a n/a dirt_with grass 331 15 -oak 0 to +10 + 4 to +16 n/a n/a dirt_with grass 332 15 -sequoia 0 to +10 -30 to +50 n/a n/a dirt_with grass 333 10 -birch +10 to +15 -20 to +10 n/a n/a dirt_with grass 334 5 -spruce above +20 -20 to +10 n/a n/a dirt_with grass 335 10 -cedar n/a n/a water, 15 5 dirt_with grass 336 10 -willow - 5 to + 5 n/a water, 15 5 dirt_with grass 337 20 -acacia n/a n/a n/a n/a dirt_with_grass, - desert_sand n/a 15 -rubber - 5 to + 5 above +32 water, 15 10 dirt_with_grass 338 20 - -beech n/a n/a n/a n/a dirt_with_grass 2 10 - - -Notes: ------- - -Beech trees are meant to replace default trees, but are themselves disabled by default. They grow in the same areas -as the default ones do, and under the same conditions. - -Acacia trees depend on humidity as their primary control, and they don't use the fertile ground option. They grow near -the edges of a desert biome, occasionally into the grass beyond, and anywhere else on desert sand or dirt with grass, -where the humidity is low (but not bone dry). - -Fir trees appear in a snow biome only with older versions of SPlizard's Snow Biomes mod. In more recent versions, -these trees will not grow, due to an engine bug. - -Cedar trees replace, and are identical to, the original pine trees, as the minetest default game now has (a completely -different type of) pine trees. diff --git a/mods/moretrees/tree_models.lua b/mods/moretrees/tree_models.lua deleted file mode 100755 index c5340891..00000000 --- a/mods/moretrees/tree_models.lua +++ /dev/null @@ -1,246 +0,0 @@ -moretrees.beech_model={ - axiom="FFFFFBFB", - rules_a="[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fd]]////[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fd]]////[&&&GGF[++^Fd][--&Fd]//Fd[+^Fd][--&Fdd]]", - rules_b="[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&Fd]//d[+^d][--&d]]", - rules_c="/", - rules_d="F", - trunk="moretrees:beech_trunk", - leaves="moretrees:beech_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="single", - thin_branches=true -} - -moretrees.apple_tree_model={ - axiom="FFFFFAFFBF", - rules_a="[&&&FFFFF&&FFFF][&&&++++FFFFF&&FFFF][&&&----FFFFF&&FFFF]", - rules_b="[&&&++FFFFF&&FFFF][&&&--FFFFF&&FFFF][&&&------FFFFF&&FFFF]", - trunk="moretrees:apple_tree_trunk", - leaves="moretrees:apple_tree_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="single", - thin_branches=true, - fruit="default:apple", - fruit_chance=15, -} - -moretrees.oak_model={ - axiom="FFFFFFA", - rules_a="[&FFBFA]////[&BFFFA]////[&FBFFA]", - rules_b="[&FFFA]////[&FFFA]////[&FFFA]", - trunk="moretrees:oak_trunk", - leaves="moretrees:oak_leaves", - angle=30, - iterations=5, - random_level=2, - trunk_type="crossed", - thin_branches=false, - fruit="moretrees:acorn", - fruit_chance=3, -} - -moretrees.sequoia_model={ - axiom="FFFFFFFFFFddccA///cccFddcFA///ddFcFA/cFFddFcdBddd/A/ccdcddd/ccAddddcFBcccAccFdFcFBcccc/BFdFFcFFdcccc/B", - rules_a="[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]////[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]////[&&&GGF[++^FFdd][--&Fddd]//Fdd[+^Fd][--&Fdd]]", - rules_b="[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]////[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]////[&&&GGF[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]", - rules_c="/", - rules_d="F", - trunk="moretrees:sequoia_trunk", - leaves="moretrees:sequoia_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="crossed", - thin_branches=true -} - -moretrees.birch_model1={ - axiom="FFFFFdddccA/FFFFFFcA/FFFFFFcB", - rules_a="[&&&dddd^^ddddddd][&&&---dddd^^ddddddd][&&&+++dddd^^ddddddd][&&&++++++dddd^^ddddddd]", - rules_b="[&&&ddd^^ddddd][&&&---ddd^^ddddd][&&&+++ddd^^ddddd][&&&++++++ddd^^ddddd]", - rules_c="/", - rules_d="F", - trunk="moretrees:birch_trunk", - leaves="moretrees:birch_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="single", - thin_branches=true -} - -moretrees.birch_model2={ - axiom="FFFdddccA/FFFFFccA/FFFFFccB", - rules_a="[&&&dFFF^^FFFdd][&&&---dFFF^^FFFdd][&&&+++dFFF^^FFFdd][&&&++++++dFFF^^FFFdd]", - rules_b="[&&&dFF^^FFFd][&&&---dFFF^^FFFd][&&&+++dFF^^FFFd][&&&++++++dFF^^FFFd]", - rules_c="/", - rules_d="F", - trunk="moretrees:birch_trunk", - leaves="moretrees:birch_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="single", - thin_branches=true -} - -moretrees.palm_model={ - axiom="FFcccccc&FFFFFddd[^&&&GR][^///&&&GR][^//////&&&GR][^***&&&GR]FA//A//A//A//A//A", - rules_a="[&fb&bbb[++f--&ffff&ff][--f++&ffff&ff]&ffff&bbbb&b]", - rules_b="f", - rules_c="/", - rules_d="F", - trunk="moretrees:palm_trunk", - leaves="moretrees:palm_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="single", - thin_branches=true, - fruit="moretrees:coconut", - fruit_chance=0 -} - -moretrees.spruce_model1={ - axiom="FFFFFAFFFFFFBFFFFFFCFFFFFFDFFFFFF[&&&F^^FF][&&&++F^^FF][&&&++++F^^FF][&&&++++++F^^FF][&&&--F^^FF][&&&----F^^FF][FFFFf]", - rules_a="[&&&FFFFFF^^FFF][&&&++FFFFFF^^FFF][&&&++++FFFFFF^^FFF][&&&++++++FFFFFF^^FFF][&&&--FFFFFF^^FFF][&&&----FFFFFF^^FFF]", - rules_b="[&&&FFFFF^^FFF][&&&++FFFFF^^FFF][&&&++++FFFFF^^FFF][&&&++++++FFFFF^^FFF][&&&--FFFFF^^FFF][&&&----FFFFF^^FFF]", - rules_c="[&&&FFFF^^FFF][&&&++FFFF^^FFF][&&&++++FFFF^^FFF][&&&++++++FFFF^^FFF][&&&--FFFF^^FFF][&&&----FFFF^^FFF]", - rules_d="[&&&FFF^^FFF][&&&++FFF^^FFF][&&&++++FFF^^FFF][&&&++++++FFF^^FFF][&&&--FFF^^FFF][&&&----FFF^^FFF]", - trunk="moretrees:spruce_trunk", - leaves="moretrees:spruce_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="crossed", - thin_branches=true, - fruit="moretrees:spruce_cone", - fruit_chance=8 -} - -moretrees.spruce_model2={ - axiom="FFFFFFBFFFFFFCFFFFFFDFFFFFF[&&&F^^FF][&&&++F^^FF][&&&++++F^^FF][&&&++++++F^^FF][&&&--F^^FF][&&&----F^^FF][FFFFf]", - rules_b="[&&&FFFFF^^FFF][&&&++FFFFF^^FFF][&&&++++FFFFF^^FFF][&&&++++++FFFFF^^FFF][&&&--FFFFF^^FFF][&&&----FFFFF^^FFF]", - rules_c="[&&&FFFF^^FFF][&&&++FFFF^^FFF][&&&++++FFFF^^FFF][&&&++++++FFFF^^FFF][&&&--FFFF^^FFF][&&&----FFFF^^FFF]", - rules_d="[&&&FFF^^FFF][&&&++FFF^^FFF][&&&++++FFF^^FFF][&&&++++++FFF^^FFF][&&&--FFF^^FFF][&&&----FFF^^FFF]", - trunk="moretrees:spruce_trunk", - leaves="moretrees:spruce_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="crossed", - thin_branches=true, - fruit="moretrees:spruce_cone", - fruit_chance=8 -} - -moretrees.cedar_model={ - axiom="FFFFFcccdddB///cFdFB////cFdFB///cFdFB///cFdFA///cFdFA///cFdFB[FF]f", - rules_a="[&&&TTTT[++^TFdd][--&TFd]//Tdd[+^Fd][--&Fdd]]", - rules_b="[&&&TTT[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]", - rules_c="/", - rules_d="F", - trunk="moretrees:cedar_trunk", - leaves="moretrees:cedar_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="single", - thin_branches=true, - fruit="moretrees:cedar_cone", - fruit_chance=8 -} - -moretrees.willow_model={ - axiom="FFFFFFFFccA", - rules_a="[&FF&FFFF&&F&FFFFFFFdddd][**&FF&FFFF&&F&FFFFFFFdddd][//&FF&FFFF&&F&FFFFFFFdddd][////&FF&FFFF&&F&FFFFFFFdddd][//////&FF&FFFF&&F&FFFFFFFdddd][////////&FF&FFFF&&F&FFFFFFFdddd]", - rules_c="/", - rules_d="F", - trunk="moretrees:willow_trunk", - leaves="moretrees:willow_leaves", - angle=30, - iterations=2, - random_level=0, - trunk_type="crossed", - thin_branches=true -} - -moretrees.acacia_model={ - axiom="FFFFFFccccA", - rules_a = "[B]//[B]//[B]//[B]", - rules_b = "&TTTT&TT^^G&&----GGGGGG++GGG++" -- line up with the "canvas" edge - .."fffffffGG++G++" -- first layer, drawn in a zig-zag raster pattern - .."Gffffffff--G--" - .."ffffffffG++G++" - .."fffffffff--G--" - .."fffffffff++G++" - .."fffffffff--G--" - .."ffffffffG++G++" - .."Gffffffff--G--" - .."fffffffGG" - .."^^G&&----GGGGGGG++GGGGGG++" -- re-align to second layer canvas edge - .."ffffGGG++G++" -- second layer - .."GGfffff--G--" - .."ffffffG++G++" - .."fffffff--G--" - .."ffffffG++G++" - .."GGfffff--G--" - .."ffffGGG", - rules_c = "/", - trunk="default:acacia_tree", - leaves="default:acacia_leaves", - angle=45, - iterations=3, - random_level=0, - trunk_type="single", - thin_branches=true, -} - -moretrees.rubber_tree_model={ - axiom="FFFFA", - rules_a="[&FFBFA]////[&BFFFA]////[&FBFFA]", - rules_b="[&FFA]////[&FFA]////[&FFA]", - trunk="moretrees:rubber_tree_trunk", - leaves="moretrees:rubber_tree_leaves", - angle=35, - iterations=3, - random_level=1, - trunk_type="double", - thin_branches=true -} - -moretrees.jungletree_model={ - axiom=nil, - rules_a=nil, - rules_b=nil, - trunk="moretrees:jungletree_trunk", - leaves="default:jungleleaves", - leaves2=nil, - leaves2_chance=nil, - angle=45, - iterations=nil, - random_level=2, - trunk_type=nil, - thin_branches=true, - fruit_chance=15, - fruit="vines:vine" -} - -moretrees.fir_model={ - axiom="FFFAF[&&-F][&&+F][&&---F][&&+++F]Fff", - rules_a=nil, - rules_b=nil, - trunk="moretrees:fir_trunk", - leaves=nil, - angle=45, - iterations=7, - random_level=5, - trunk_type="single", - thin_branches=true, - fruit="moretrees:fir_cone", - fruit_chance=8 -} diff --git a/mods/plantlife_modpack b/mods/plantlife_modpack new file mode 160000 index 00000000..156f068e --- /dev/null +++ b/mods/plantlife_modpack @@ -0,0 +1 @@ +Subproject commit 156f068ead94d4545b29869966085d43dd051f74 diff --git a/mods/plantlife_modpack/.gitignore b/mods/plantlife_modpack/.gitignore deleted file mode 100755 index b25c15b8..00000000 --- a/mods/plantlife_modpack/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*~ diff --git a/mods/plantlife_modpack/3dmushrooms/depends.txt b/mods/plantlife_modpack/3dmushrooms/depends.txt deleted file mode 100755 index abb01ae5..00000000 --- a/mods/plantlife_modpack/3dmushrooms/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -flowers diff --git a/mods/plantlife_modpack/3dmushrooms/init.lua b/mods/plantlife_modpack/3dmushrooms/init.lua deleted file mode 100755 index 55fd5313..00000000 --- a/mods/plantlife_modpack/3dmushrooms/init.lua +++ /dev/null @@ -1,46 +0,0 @@ - --- 3D Mushroom mod by VanessaE --- --- License: WTFPL for everything. - -mushroom = {} - -minetest.override_item("flowers:mushroom_brown", { - drawtype = "mesh", - mesh = "3dmushrooms.obj", - tiles = {"3dmushrooms_brown.png"}, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} - }, - inventory_image = "3dmushrooms_brown_inv.png" -}) - -minetest.override_item("flowers:mushroom_red", { - drawtype = "mesh", - mesh = "3dmushrooms.obj", - tiles = {"3dmushrooms_red.png"}, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} - }, - inventory_image = "3dmushrooms_red_inv.png" -}) - --- aliases to the default mushrooms - -minetest.register_alias("mushroom:brown", "flowers:mushroom_brown") -minetest.register_alias("mushroom:brown_natural", "flowers:mushroom_brown") -minetest.register_alias("mushroom:spore_brown", "flowers:mushroom_brown") -minetest.register_alias("mushroom:spore2", "flowers:mushroom_brown") -minetest.register_alias("mushroom:brown_essence", "flowers:mushroom_brown") - -minetest.register_alias("mushroom:red", "flowers:mushroom_red") -minetest.register_alias("mushroom:red_natural", "flowers:mushroom_red") -minetest.register_alias("mushroom:spore_red", "flowers:mushroom_red") -minetest.register_alias("mushroom:spore1", "flowers:mushroom_red") -minetest.register_alias("mushroom:poison", "flowers:mushroom_red") - -minetest.register_alias("mushroom:identifier", "default:mese_crystal_fragment") - -minetest.log("action", "[3D Mushrooms] loaded.") diff --git a/mods/plantlife_modpack/3dmushrooms/models/3dmushrooms.obj b/mods/plantlife_modpack/3dmushrooms/models/3dmushrooms.obj deleted file mode 100755 index bce1ed6e..00000000 --- a/mods/plantlife_modpack/3dmushrooms/models/3dmushrooms.obj +++ /dev/null @@ -1,329 +0,0 @@ -# Blender v2.73 (sub 0) OBJ File: 'plantlife_mushroom.blend' -# www.blender.org -o Cylinder -v 0.261489 -0.177877 -0.000000 -v 0.165972 -0.203714 -0.000000 -v 0.210761 -0.224729 -0.000000 -v 0.258520 -0.211811 -0.000000 -v 0.185335 -0.171215 -0.184553 -v 0.116925 -0.199423 -0.118862 -v 0.148161 -0.219252 -0.151707 -v 0.182366 -0.205148 -0.184553 -v 0.001484 -0.155130 -0.260997 -v -0.001484 -0.189063 -0.168096 -v -0.002969 -0.206030 -0.214547 -v -0.001484 -0.189063 -0.260997 -v -0.182366 -0.139045 -0.184553 -v -0.119894 -0.178704 -0.118862 -v -0.154099 -0.192808 -0.151707 -v -0.185335 -0.172979 -0.184553 -v -0.258520 -0.132382 -0.000000 -v -0.168941 -0.174413 -0.000000 -v -0.216699 -0.187331 -0.000000 -v -0.261489 -0.166316 -0.000000 -v -0.182366 -0.139045 0.184553 -v -0.119894 -0.178704 0.118862 -v -0.154099 -0.192808 0.151707 -v -0.185335 -0.172979 0.184553 -v 0.001484 -0.155130 0.260997 -v -0.001484 -0.189063 0.168096 -v -0.002969 -0.206030 0.214547 -v -0.001484 -0.189063 0.260997 -v 0.185335 -0.171215 0.184553 -v 0.116925 -0.199423 0.118862 -v 0.148161 -0.219252 0.151708 -v 0.182366 -0.205148 0.184553 -v 0.059333 -0.075538 0.000000 -v 0.044915 -0.074277 -0.034942 -v 0.010106 -0.071232 -0.049416 -v -0.024704 -0.068186 -0.034942 -v -0.039122 -0.066925 0.000000 -v -0.024704 -0.068186 0.034942 -v 0.010106 -0.071232 0.049416 -v 0.044915 -0.074277 0.034942 -v 0.004580 -0.119744 -0.206430 -v 0.149993 -0.132466 -0.145968 -v 0.004580 -0.119744 0.206430 -v -0.140833 -0.107022 0.145968 -v 0.210225 -0.137736 -0.000000 -v 0.149993 -0.132466 0.145968 -v -0.201064 -0.101752 -0.000000 -v -0.140833 -0.107022 -0.145968 -v 0.033054 -0.500000 -0.079800 -v 0.025067 -0.177627 -0.060518 -v 0.079800 -0.500000 -0.033054 -v 0.060518 -0.177627 -0.025067 -v 0.079800 -0.500000 0.033054 -v 0.060518 -0.177627 0.025067 -v 0.033054 -0.500000 0.079800 -v 0.025067 -0.177627 0.060518 -v -0.033054 -0.500000 0.079800 -v -0.025067 -0.177627 0.060518 -v -0.079800 -0.500000 0.033054 -v -0.060518 -0.177627 0.025067 -v -0.079800 -0.500000 -0.033054 -v -0.060518 -0.177627 -0.025067 -v -0.033054 -0.500000 -0.079800 -v -0.025067 -0.177627 -0.060518 -v 0.014323 -0.253674 -0.065067 -v 0.012105 -0.382623 -0.072780 -v 0.052438 -0.253674 -0.026952 -v 0.054739 -0.382623 -0.030146 -v 0.052438 -0.253674 0.026952 -v 0.054739 -0.382623 0.030146 -v 0.014323 -0.253674 0.065067 -v 0.012105 -0.382623 0.072780 -v -0.039580 -0.253674 0.065067 -v -0.048187 -0.382623 0.072780 -v -0.077695 -0.253674 0.026952 -v -0.090820 -0.382623 0.030146 -v -0.077695 -0.253674 -0.026952 -v -0.090820 -0.382623 -0.030146 -v -0.039580 -0.253674 -0.065067 -v -0.048187 -0.382623 -0.072780 -vt 0.261010 0.917920 -vt 0.235559 0.983636 -vt 0.016350 0.764426 -vt 0.080814 0.737724 -vt 0.545568 0.235207 -vt 0.764778 0.454417 -vt 0.690996 0.484978 -vt 0.517617 0.311599 -vt 0.235559 0.235207 -vt 0.515845 0.302693 -vt 0.261010 0.302693 -vt 0.578125 0.234375 -vt 0.765625 0.234375 -vt 0.765625 0.312500 -vt 0.578125 0.312500 -vt 0.015625 0.234375 -vt 0.203125 0.234375 -vt 0.203125 0.312500 -vt 0.015625 0.312500 -vt 0.390625 0.312500 -vt 0.578125 0.390625 -vt 0.390625 0.390625 -vt 0.016350 0.454417 -vt 0.080814 0.482889 -vt 0.545569 0.983636 -vt 0.515845 0.917920 -vt 0.099043 0.730173 -vt 0.272422 0.903553 -vt 0.290733 0.368408 -vt 0.490395 0.368408 -vt 0.149550 0.709253 -vt 0.149550 0.509591 -vt 0.764778 0.764426 -vt 0.696041 0.737725 -vt 0.696041 0.482889 -vt 0.099043 0.484978 -vt 0.203125 0.390625 -vt 0.765625 0.390625 -vt 0.272422 0.311599 -vt 0.631577 0.509591 -vt 0.390625 0.234375 -vt 0.517617 0.903553 -vt 0.690996 0.730173 -vt 0.432320 0.675133 -vt 0.473823 0.633629 -vt 0.015625 0.390625 -vt 0.490395 0.850435 -vt 0.290733 0.850435 -vt 0.631577 0.709253 -vt 0.373624 0.533431 -vt 0.332121 0.574934 -vt 0.473823 0.574934 -vt 0.432320 0.533431 -vt 0.332121 0.633630 -vt 0.373624 0.675133 -vt 0.935126 0.767633 -vt 0.998032 0.830539 -vt 0.998032 0.919502 -vt 0.935126 0.982408 -vt 0.846164 0.982408 -vt 0.783257 0.919502 -vt 0.783258 0.830539 -vt 0.846164 0.767633 -vt 0.375000 0.187500 -vt 0.375000 0.031250 -vt 0.500000 0.031250 -vt 0.500000 0.187500 -vt 0.625000 0.031250 -vt 0.625000 0.187500 -vt 0.750000 0.031250 -vt 0.750000 0.187500 -vt 0.875000 0.031250 -vt 0.875000 0.187500 -vt 1.000000 0.031250 -vt 1.000000 0.187500 -vt 0.000000 0.031250 -vt 0.125000 0.031250 -vt 0.125000 0.187500 -vt 0.000000 0.187500 -vt 0.250000 0.031250 -vt 0.250000 0.187500 -vt 0.542224 0.015885 -vt 0.601585 0.075246 -vt 0.601585 0.159195 -vt 0.542224 0.218556 -vt 0.458275 0.218556 -vt 0.398914 0.159195 -vt 0.398914 0.075246 -vt 0.458275 0.015885 -vt 0.625000 0.125000 -vt 0.500000 0.125000 -vt 0.750000 0.125000 -vt 0.875000 0.125000 -vt 1.000000 0.125000 -vt 0.125000 0.125000 -vt 0.000000 0.125000 -vt 0.250000 0.125000 -vt 0.375000 0.125000 -vn -0.147000 -0.987300 0.060400 -vn -0.648700 -0.460200 0.606100 -vn -0.898800 -0.438400 0.000000 -vn -0.172000 -0.985100 0.000000 -vn 0.672500 0.376500 0.637100 -vn 0.935400 0.353500 0.000000 -vn 0.529200 0.848500 0.000000 -vn 0.396700 0.860200 0.320400 -vn -0.044900 -0.513100 -0.857100 -vn 0.558900 -0.565900 -0.606100 -vn -0.026600 -0.997800 -0.060400 -vn -0.086800 -0.992500 -0.085500 -vn -0.044900 -0.513100 0.857100 -vn 0.037800 0.432000 0.901100 -vn -0.596900 0.487600 0.637100 -vn -0.648700 -0.460200 -0.606100 -vn -0.596900 0.487600 -0.637100 -vn 0.037800 0.432000 -0.901100 -vn 0.809000 -0.587800 0.000000 -vn 0.672500 0.376500 -0.637100 -vn -0.147000 -0.987300 -0.060400 -vn -0.086800 -0.992500 0.085500 -vn -0.859800 0.510500 0.000000 -vn -0.372100 0.928200 0.000000 -vn -0.240600 0.916500 -0.319400 -vn -0.085100 -0.972600 0.216400 -vn -0.237500 -0.959200 0.153000 -vn 0.130500 -0.991400 0.000000 -vn 0.067400 -0.985900 0.153000 -vn 0.558900 -0.565900 0.606100 -vn -0.026600 -0.997800 0.060400 -vn -0.001700 -1.000000 0.000000 -vn -0.240600 0.916500 0.319400 -vn 0.077500 0.888400 0.452400 -vn -0.300700 -0.953700 0.000000 -vn 0.077500 0.888400 -0.452400 -vn 0.396700 0.860200 -0.320400 -vn 0.086200 0.978700 -0.186300 -vn 0.217800 0.967000 -0.132200 -vn -0.085100 -0.972600 -0.216400 -vn 0.067400 -0.985900 -0.153000 -vn -0.237500 -0.959200 -0.153000 -vn 0.086200 0.978700 0.186300 -vn -0.044600 0.990300 0.131300 -vn 0.272600 0.962100 0.000000 -vn 0.217800 0.967000 0.132200 -vn -0.098600 0.995100 0.000000 -vn -0.044600 0.990300 -0.131300 -vn -0.273500 -0.626100 -0.730200 -vn -0.402500 0.040600 -0.914500 -vn 0.360300 0.084000 -0.929000 -vn 0.335600 -0.581700 -0.740900 -vn 0.369900 0.027700 -0.928600 -vn 0.921100 -0.031200 -0.388000 -vn 0.913800 0.116800 -0.388800 -vn 0.921100 -0.031200 0.388000 -vn 0.913800 0.116800 0.388800 -vn 0.369900 0.027700 0.928600 -vn 0.360300 0.084000 0.929000 -vn -0.391600 0.105700 0.914000 -vn -0.402500 0.040600 0.914500 -vn -0.914200 0.156600 0.373800 -vn -0.927200 0.012400 0.374500 -vn -0.914200 0.156600 -0.373800 -vn -0.927200 0.012400 -0.374500 -vn -0.391600 0.105700 -0.914000 -vn 0.774400 -0.552100 -0.309000 -vn 0.774400 -0.552100 0.309000 -vn 0.335600 -0.581700 0.740900 -vn -0.273500 -0.626100 0.730200 -vn -0.690800 -0.658600 0.298100 -vn -0.690800 -0.658600 -0.298100 -vn 0.416700 -0.004500 -0.909100 -vn 0.925800 -0.089300 -0.367400 -vn 0.925800 -0.089300 0.367400 -vn 0.416700 -0.004500 0.909100 -vn -0.344300 0.121400 0.931000 -vn -0.896600 0.212200 0.388700 -vn -0.896600 0.212200 -0.388700 -vn -0.344300 0.121400 -0.931000 -s 1 -f 23/1/1 24/2/2 20/3/3 19/4/4 -f 29/5/5 1/6/6 45/7/7 46/8/8 -f 12/9/9 8/5/10 7/10/11 11/11/12 -f 24/12/2 28/13/13 25/14/14 21/15/15 -f 12/16/9 16/17/16 13/18/17 9/19/18 -f 4/20/19 8/15/10 5/21/20 1/22/6 -f 16/23/16 12/9/9 11/11/12 15/24/21 -f 28/25/13 24/2/2 23/1/1 27/26/22 -f 13/2/17 17/3/23 47/27/24 48/28/25 -f 10/29/26 11/11/12 7/10/11 6/30/27 -f 18/31/28 19/4/4 15/24/21 14/32/29 -f 4/6/19 32/33/30 31/34/31 3/35/32 -f 17/3/23 21/23/15 44/36/33 47/27/24 -f 32/18/30 4/20/19 1/22/6 29/37/5 -f 8/5/10 4/6/19 3/35/32 7/10/11 -f 8/15/10 12/14/9 9/38/18 5/21/20 -f 25/9/14 29/5/5 46/8/8 43/39/34 -f 6/30/27 7/10/11 3/35/32 2/40/35 -f 16/17/16 20/41/3 17/20/23 13/18/17 -f 31/34/31 32/33/30 28/25/13 27/26/22 -f 5/33/20 9/25/18 41/42/36 42/43/37 -f 41/42/36 35/44/38 34/45/39 42/43/37 -f 15/24/21 11/11/12 10/29/26 14/32/29 -f 20/41/3 24/12/2 21/15/15 17/20/23 -f 1/6/6 5/33/20 42/43/37 45/7/7 -f 19/4/4 20/3/3 16/23/16 15/24/21 -f 28/19/13 32/18/30 29/37/5 25/46/14 -f 26/47/40 27/26/22 23/1/1 22/48/41 -f 21/23/15 25/9/14 43/39/34 44/36/33 -f 9/25/18 13/2/17 48/28/25 41/42/36 -f 23/1/1 19/4/4 18/31/28 22/48/41 -f 2/40/35 3/35/32 31/34/31 30/49/42 -f 43/39/34 39/50/43 38/51/44 44/36/33 -f 45/7/7 33/52/45 40/53/46 46/8/8 -f 42/43/37 34/45/39 33/52/45 45/7/7 -f 46/8/8 40/53/46 39/50/43 43/39/34 -f 44/36/33 38/51/44 37/54/47 47/27/24 -f 47/27/24 37/54/47 36/55/48 48/28/25 -f 48/28/25 36/55/48 35/44/38 41/42/36 -f 35/44/38 36/55/48 37/54/47 38/51/44 39/50/43 40/53/46 33/52/45 34/45/39 -f 6/56/27 2/57/35 30/58/42 26/59/40 22/60/41 18/61/28 14/62/29 10/63/26 -f 63/64/49 80/65/50 66/66/51 49/67/52 -f 65/66/53 67/68/54 68/69/55 66/67/51 -f 67/68/54 69/70/56 70/71/57 68/69/55 -f 69/70/56 71/72/58 72/73/59 70/71/57 -f 71/72/58 73/74/60 74/75/61 72/73/59 -f 73/76/60 75/77/62 76/78/63 74/79/61 -f 75/77/62 77/80/64 78/81/65 76/78/63 -f 77/80/64 79/65/66 80/64/50 78/81/65 -f 49/82/52 51/83/67 53/84/68 55/85/69 57/86/70 59/87/71 61/88/72 63/89/49 -f 50/66/73 52/68/74 67/90/54 65/91/53 -f 52/68/74 54/70/75 69/92/56 67/90/54 -f 66/66/51 68/68/55 51/69/67 49/67/52 -f 54/70/75 56/72/76 71/93/58 69/92/56 -f 68/68/55 70/70/57 53/71/68 51/69/67 -f 56/72/76 58/74/77 73/94/60 71/93/58 -f 70/70/57 72/72/59 55/73/69 53/71/68 -f 58/76/77 60/77/78 75/95/62 73/96/60 -f 72/72/59 74/74/61 57/75/70 55/73/69 -f 60/77/78 62/80/79 77/97/64 75/95/62 -f 74/76/61 76/77/63 59/78/71 57/79/70 -f 62/80/79 64/65/80 79/98/66 77/97/64 -f 76/77/63 78/80/65 61/81/72 59/78/71 -f 31/34/31 27/26/22 26/47/40 30/49/42 -f 78/80/65 80/65/50 63/64/49 61/81/72 -f 79/98/66 64/65/80 50/66/73 65/91/53 -f 79/65/66 65/66/53 66/67/51 80/64/50 diff --git a/mods/plantlife_modpack/3dmushrooms/textures/3dmushrooms_brown.png b/mods/plantlife_modpack/3dmushrooms/textures/3dmushrooms_brown.png deleted file mode 100644 index 14776be8de8d42fd9456b3ab6fb2ebcaaac018cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2747 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 V+Onv+v_fAfFhrZ`60~ne{2#nzDhU7p diff --git a/mods/plantlife_modpack/3dmushrooms/textures/3dmushrooms_brown_inv.png b/mods/plantlife_modpack/3dmushrooms/textures/3dmushrooms_brown_inv.png deleted file mode 100644 index f9c63ce04e560fcaf3191210212e93a7e98b896d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4166 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 X%08H}()WZY00000NkvXXu0mjf8Ulk4 diff --git a/mods/plantlife_modpack/LICENSE b/mods/plantlife_modpack/LICENSE deleted file mode 100755 index 594ea2ab..00000000 --- a/mods/plantlife_modpack/LICENSE +++ /dev/null @@ -1,336 +0,0 @@ -Sunflower model and textures by kaeza (CC-BY-SA 3.0). - -For the code, Ironzorg's textures, and everything else: WTFPL - -For Mossmanikin's mods (Ferns, Dryplans, and the components -from the Undergrowth modpack), and all of my own textures: -CC-By-SA 3.0 - ----------- - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. - - This license is also known as "WTFPL" - ------------ - -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS -CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS -PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE -WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW -IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND -AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS -LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS -YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE -OF SUCH TERMS AND CONDITIONS. - -1. Definitions - - "Collective Work" means a work, such as a periodical issue, -anthology or encyclopedia, in which the Work in its entirety in -unmodified form, along with one or more other contributions, -constituting separate and independent works in themselves, are -assembled into a collective whole. A work that constitutes a -Collective Work will not be considered a Derivative Work (as -defined below) for the purposes of this License. - "Creative Commons Compatible License" means a license that is -listed at http://creativecommons.org/compatiblelicenses that has -been approved by Creative Commons as being essentially equivalent -to this License, including, at a minimum, because that license: -(i) contains terms that have the same purpose, meaning and effect -as the License Elements of this License; and, (ii) explicitly -permits the relicensing of derivatives of works made available -under that license under this License or either a Creative Commons -unported license or a Creative Commons jurisdiction license with -the same License Elements as this License. - "Derivative Work" means a work based upon the Work or upon the -Work and other pre-existing works, such as a translation, musical -arrangement, dramatization, fictionalization, motion picture -version, sound recording, art reproduction, abridgment, -condensation, or any other form in which the Work may be recast, -transformed, or adapted, except that a work that constitutes a -Collective Work will not be considered a Derivative Work for the -purpose of this License. For the avoidance of doubt, where the -Work is a musical composition or sound recording, the -synchronization of the Work in timed-relation with a moving image -("synching") will be considered a Derivative Work for the purpose -of this License. - "License Elements" means the following high-level license -attributes as selected by Licensor and indicated in the title of -this License: Attribution, ShareAlike. - "Licensor" means the individual, individuals, entity or -entities that offers the Work under the terms of this License. - "Original Author" means the individual, individuals, entity or -entities who created the Work. - "Work" means the copyrightable work of authorship offered -under the terms of this License. - "You" means an individual or entity exercising rights under -this License who has not previously violated the terms of this -License with respect to the Work, or who has received express -permission from the Licensor to exercise rights under this License -despite a previous violation. - -2. Fair Use Rights. Nothing in this license is intended to reduce, -limit, or restrict any rights arising from fair use, first sale or -other limitations on the exclusive rights of the copyright owner -under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this -License, Licensor hereby grants You a worldwide, royalty-free, -non-exclusive, perpetual (for the duration of the applicable -copyright) license to exercise the rights in the Work as stated -below: - - to reproduce the Work, to incorporate the Work into one or -more Collective Works, and to reproduce the Work as incorporated -in the Collective Works; - to create and reproduce Derivative Works provided that any -such Derivative Work, including any translation in any medium, -takes reasonable steps to clearly label, demarcate or otherwise -identify that changes were made to the original Work. For example, -a translation could be marked "The original work was translated -from English to Spanish," or a modification could indicate "The -original work has been modified."; - to distribute copies or phonorecords of, display publicly, -perform publicly, and perform publicly by means of a digital audio -transmission the Work including as incorporated in Collective -Works; - to distribute copies or phonorecords of, display publicly, -perform publicly, and perform publicly by means of a digital audio -transmission Derivative Works. - - For the avoidance of doubt, where the Work is a musical -composition: - Performance Royalties Under Blanket Licenses. Licensor -waives the exclusive right to collect, whether individually or, in -the event that Licensor is a member of a performance rights -society (e.g. ASCAP, BMI, SESAC), via that society, royalties for -the public performance or public digital performance (e.g. -webcast) of the Work. - Mechanical Rights and Statutory Royalties. Licensor waives -the exclusive right to collect, whether individually or via a -music rights agency or designated agent (e.g. Harry Fox Agency), -royalties for any phonorecord You create from the Work ("cover -version") and distribute, subject to the compulsory license -created by 17 USC Section 115 of the US Copyright Act (or the -equivalent in other jurisdictions). - Webcasting Rights and Statutory Royalties. For the avoidance -of doubt, where the Work is a sound recording, Licensor waives the -exclusive right to collect, whether individually or via a -performance-rights society (e.g. SoundExchange), royalties for the -public digital performance (e.g. webcast) of the Work, subject to -the compulsory license created by 17 USC Section 114 of the US -Copyright Act (or the equivalent in other jurisdictions). - -The above rights may be exercised in all media and formats whether -now known or hereafter devised. The above rights include the right -to make such modifications as are technically necessary to -exercise the rights in other media and formats. All rights not -expressly granted by Licensor are hereby reserved. - -4. Restrictions. The license granted in Section 3 above is -expressly made subject to and limited by the following -restrictions: - - You may distribute, publicly display, publicly perform, or -publicly digitally perform the Work only under the terms of this -License, and You must include a copy of, or the Uniform Resource -Identifier for, this License with every copy or phonorecord of the -Work You distribute, publicly display, publicly perform, or -publicly digitally perform. You may not offer or impose any terms -on the Work that restrict the terms of this License or the ability -of a recipient of the Work to exercise of the rights granted to -that recipient under the terms of the License. You may not -sublicense the Work. You must keep intact all notices that refer -to this License and to the disclaimer of warranties. When You -distribute, publicly display, publicly perform, or publicly -digitally perform the Work, You may not impose any technological -measures on the Work that restrict the ability of a recipient of -the Work from You to exercise of the rights granted to that -recipient under the terms of the License. This Section 4(a) -applies to the Work as incorporated in a Collective Work, but this -does not require the Collective Work apart from the Work itself to -be made subject to the terms of this License. If You create a -Collective Work, upon notice from any Licensor You must, to the -extent practicable, remove from the Collective Work any credit as -required by Section 4(c), as requested. If You create a Derivative -Work, upon notice from any Licensor You must, to the extent -practicable, remove from the Derivative Work any credit as -required by Section 4(c), as requested. - You may distribute, publicly display, publicly perform, or -publicly digitally perform a Derivative Work only under: (i) the -terms of this License; (ii) a later version of this License with -the same License Elements as this License; (iii) either the -Creative Commons (Unported) license or a Creative Commons -jurisdiction license (either this or a later license version) that -contains the same License Elements as this License (e.g. -Attribution-ShareAlike 3.0 (Unported)); (iv) a Creative Commons -Compatible License. If you license the Derivative Work under one -of the licenses mentioned in (iv), you must comply with the terms -of that license. If you license the Derivative Work under the -terms of any of the licenses mentioned in (i), (ii) or (iii) (the -"Applicable License"), you must comply with the terms of the -Applicable License generally and with the following provisions: -(I) You must include a copy of, or the Uniform Resource Identifier -for, the Applicable License with every copy or phonorecord of each -Derivative Work You distribute, publicly display, publicly -perform, or publicly digitally perform; (II) You may not offer or -impose any terms on the Derivative Works that restrict the terms -of the Applicable License or the ability of a recipient of the -Work to exercise the rights granted to that recipient under the -terms of the Applicable License; (III) You must keep intact all -notices that refer to the Applicable License and to the disclaimer -of warranties; and, (IV) when You distribute, publicly display, -publicly perform, or publicly digitally perform the Work, You may -not impose any technological measures on the Derivative Work that -restrict the ability of a recipient of the Derivative Work from -You to exercise the rights granted to that recipient under the -terms of the Applicable License. This Section 4(b) applies to the -Derivative Work as incorporated in a Collective Work, but this -does not require the Collective Work apart from the Derivative -Work itself to be made subject to the terms of the Applicable -License. - If You distribute, publicly display, publicly perform, or -publicly digitally perform the Work (as defined in Section 1 -above) or any Derivative Works (as defined in Section 1 above) or -Collective Works (as defined in Section 1 above), You must, unless -a request has been made pursuant to Section 4(a), keep intact all -copyright notices for the Work and provide, reasonable to the -medium or means You are utilizing: (i) the name of the Original -Author (or pseudonym, if applicable) if supplied, and/or (ii) if -the Original Author and/or Licensor designate another party or -parties (e.g. a sponsor institute, publishing entity, journal) for -attribution ("Attribution Parties") in Licensor's copyright -notice, terms of service or by other reasonable means, the name of -such party or parties; the title of the Work if supplied; to the -extent reasonably practicable, the Uniform Resource Identifier, if -any, that Licensor specifies to be associated with the Work, -unless such URI does not refer to the copyright notice or -licensing information for the Work; and, consistent with Section -3(b) in the case of a Derivative Work, a credit identifying the -use of the Work in the Derivative Work (e.g., "French translation -of the Work by Original Author," or "Screenplay based on original -Work by Original Author"). The credit required by this Section -4(c) may be implemented in any reasonable manner; provided, -however, that in the case of a Derivative Work or Collective Work, -at a minimum such credit will appear, if a credit for all -contributing authors of the Derivative Work or Collective Work -appears, then as part of these credits and in a manner at least as -prominent as the credits for the other contributing authors. For -the avoidance of doubt, You may only use the credit required by -this Section for the purpose of attribution in the manner set out -above and, by exercising Your rights under this License, You may -not implicitly or explicitly assert or imply any connection with, -sponsorship or endorsement by the Original Author, Licensor and/or -Attribution Parties, as appropriate, of You or Your use of the -Work, without the separate, express prior written permission of -the Original Author, Licensor and/or Attribution Parties. - -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, -LICENSOR OFFERS THE WORK AS-IS AND ONLY TO THE EXTENT OF ANY -RIGHTS HELD IN THE LICENSED WORK BY THE LICENSOR. THE LICENSOR -MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE -WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT -LIMITATION, WARRANTIES OF TITLE, MARKETABILITY, MERCHANTIBILITY, -FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE -OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE -OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT -ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY -NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY -APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY -LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE -OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE -WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - -7. Termination - - This License and the rights granted hereunder will terminate -automatically upon any breach by You of the terms of this License. -Individuals or entities who have received Derivative Works or -Collective Works from You under this License, however, will not -have their licenses terminated provided such individuals or -entities remain in full compliance with those licenses. Sections -1, 2, 5, 6, 7, and 8 will survive any termination of this License. - Subject to the above terms and conditions, the license granted -here is perpetual (for the duration of the applicable copyright in -the Work). Notwithstanding the above, Licensor reserves the right -to release the Work under different license terms or to stop -distributing the Work at any time; provided, however that any such -election will not serve to withdraw this License (or any other -license that has been, or is required to be, granted under the -terms of this License), and this License will continue in full -force and effect unless terminated as stated above. - -8. Miscellaneous - - Each time You distribute or publicly digitally perform the -Work (as defined in Section 1 above) or a Collective Work (as -defined in Section 1 above), the Licensor offers to the recipient -a license to the Work on the same terms and conditions as the -license granted to You under this License. - Each time You distribute or publicly digitally perform a -Derivative Work, Licensor offers to the recipient a license to the -original Work on the same terms and conditions as the license -granted to You under this License. - If any provision of this License is invalid or unenforceable -under applicable law, it shall not affect the validity or -enforceability of the remainder of the terms of this License, and -without further action by the parties to this agreement, such -provision shall be reformed to the minimum extent necessary to -make such provision valid and enforceable. - No term or provision of this License shall be deemed waived -and no breach consented to unless such waiver or consent shall be -in writing and signed by the party to be charged with such waiver -or consent. - This License constitutes the entire agreement between the -parties with respect to the Work licensed here. There are no -understandings, agreements or representations with respect to the -Work not specified here. Licensor shall not be bound by any -additional provisions that may appear in any communication from -You. This License may not be modified without the mutual written -agreement of the Licensor and You. - - Creative Commons Notice - - Creative Commons is not a party to this License, and makes no -warranty whatsoever in connection with the Work. Creative Commons -will not be liable to You or any party on any legal theory for any -damages whatsoever, including without limitation any general, -special, incidental or consequential damages arising in connection -to this license. Notwithstanding the foregoing two (2) sentences, -if Creative Commons has expressly identified itself as the -Licensor hereunder, it shall have all rights and obligations of -Licensor. - - Except for the limited purpose of indicating to the public -that the Work is licensed under the CCPL, Creative Commons does -not authorize the use by either party of the trademark "Creative -Commons" or any related trademark or logo of Creative Commons -without the prior written consent of Creative Commons. Any -permitted use will be in compliance with Creative Commons' -then-current trademark usage guidelines, as may be published on -its website or otherwise made available upon request from time to -time. For the avoidance of doubt, this trademark restriction does -not form part of this License. - - Creative Commons may be contacted at -http://creativecommons.org/. - diff --git a/mods/plantlife_modpack/README b/mods/plantlife_modpack/README deleted file mode 100755 index 8c62e494..00000000 --- a/mods/plantlife_modpack/README +++ /dev/null @@ -1,72 +0,0 @@ -README file for Plantlife mod, by Vanessa Ezekowitz ---------------------------------------------------- - -Plantlife is a combined form of my Flowers and Poison Ivy mods and an expanded -version of the old Bushes mod, now called bushes_classic. The entire package -has been significantly rewritten and re-organized. This mod supplies all -three of these components and should be 100% compatible with mods that used -the old versions. - -Its purpose is to add various kinds of flowers, cotton plants, water foliage, -poison ivy, and fruit bushes, obviously. :-) All of these are spawned as -normal nodes and can be collected and used in any recipes that depend on the -old mods. - -Spawning of plants is sensitive to the amount of available light. Flowers, -cotton, and waterlilies only spawn when there at least a signficant amount of -light. Seaweed will grow only in dimly-lit areas. Poison ivy also grows only -in the daytime, but require less light than flowers. - -Growing of poison ivy will only occur for plants that are on the same surface -that is necessary for them to spawn on, so they won't grow if placed on e.g. -cobble or homedecor flower pot, etc. This doesn't affect wall-climbing poison -ivy, since it uses a different growth pattern. - -All plants use multiple controls provided by biome_lib, to keep where they -grow under control - no more random spread of plants! In addition, the density -of the plants in any region they appear in has been fixed and brought under -control. - -Poison ivy is found sparsely among junglegrass, but will not grow near flowers. - ------------------------------------------------------------------------------- - -Important details: - -Configuration: Any of the three components of this mod can be disabled -by just removing their respective directories. - -Dependencies: Just the game's default stuff. - -Recommends: Nothing in particular. - -Conflicts: This mod should not be installed alongside the original, separate -Poison Ivy, or old Bushes mods. If those exist, delete them, as this mod -supplies their functionality. If you still use the old Jungle Grass mod -either as previously supplied with this modpack, or in its standalone form, -you'll want to delete the "junglegrass" directory from this modpack to get rid -of the aliases-to-air that it supplies. - -Software Requirements: This mod requires Minetest 0.4.11 or later. It is -unlikely to work with old versions. - ------------------------------------------------------------------------------- - -Crafting: - -For crafting recipes, please see the forum thread for this modpack: - -https://forum.minetest.net/viewtopic.php?f=11&t=3898 - ------------------------------------------------------------------------------- - -Notes: - -Poison Ivy will spawn on grass and in some cases, on vertical surfaces -including trees and jungle trees where they meet the dirt or grass. Ivy -previously spawned on the ground taller/thicker or start climbing up said -vertical surfaces and trees. - -At present, the poison ivy presents little more than an annoyance - they can -only be cut down and either re-planted or thrown away. No damage is done by -harvesting them, yet. ;-) diff --git a/mods/plantlife_modpack/along_shore/depends.txt b/mods/plantlife_modpack/along_shore/depends.txt deleted file mode 100755 index a63765af..00000000 --- a/mods/plantlife_modpack/along_shore/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ -default -biome_lib -flowers_plus? \ No newline at end of file diff --git a/mods/plantlife_modpack/along_shore/init.lua b/mods/plantlife_modpack/along_shore/init.lua deleted file mode 100755 index 8b957dd1..00000000 --- a/mods/plantlife_modpack/along_shore/init.lua +++ /dev/null @@ -1,9 +0,0 @@ ------------------------------------------------------------------------------------------------ -local title = "Along the Shore" -local version = "0.0.4" -local mname = "along_shore" ------------------------------------------------------------------------------------------------ - ------------------------------------------------------------------------------------------------ -minetest.log("action", "[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") ------------------------------------------------------------------------------------------------ \ No newline at end of file diff --git a/mods/plantlife_modpack/along_shore/textures/along_shore_seaweed_1Darker.png b/mods/plantlife_modpack/along_shore/textures/along_shore_seaweed_1Darker.png deleted file mode 100755 index 76cafa0f713922342bc5f35b54f2cf57adbfe2f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!bbwEYE08vJ)G&5uv+}gI3X-t# zF?5ZPbW3LS&laD1Zr2{5G-FASUoeBivm0qZPMN2RV~E6M-SZm@860^I9}qoTz4CvT z?2Q?YO*|Z@)3#i2yOy<@W2cVURQZ z;!gtdrCES{8zBA*#2^=~hpIVHa|s+g}=b4lmP~03^1L50=pU%_dsk2#EXDf z0oi~V7%_kvy@615>=;Qjs8Eg-X!}ci(Fw%f|NsAIzzU)(wB!hAeh2i9AWj3K$~E|a z&i#u+^KW1nc;~h|GBV%;z`&}(l9ayz11}vUpWo?%S3iSao+J}caU9ULUZCbyAkGG2 h*~}IjP)fzA4*;}6GSO}J9+v@l3`Ay-1V2mxItD6W1mXJm_TZR7 z#&7^K0LBJNhyk%U5KDlf2&5TFjuFXbMz|c%07j^(OlZ#IK+?>F&HrFSw(aj?Mm8Ni zfN;qH#ihXpOkNPgj4LXkni=rPGxX2#rp$n<4gE0Df>tJ5)o!6}i!If=m~ znb9?c$t{)HJ&na9oz*jo#VecDJBQ6Dm))m;(KnC7w~)y%pVP01*}s@2poBHBlr5-? zJ-D1Bs$8selJT=Q`@X#NYq?cz3^bRiB*-tA!L>lOLLJEK@^o`fjuCcURzVo`6%8|L;CuQ+v8${p)=$wqgoTP5stzp7<^Eo9$$GMCO%hMVDF!Q})*X#(qx*g~$22WQ%mvv4FO#t^2YFPjP diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_2.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_2.png deleted file mode 100755 index 90f5364ad5393bd828d6ca4f717e566937494855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}QGic~E0C_AZ{Ie>=Kufy-r1rM zMpcJF{~Yhh3xc-o@7i-@GDHwa!jWSFgHs}da}t9~GNWq>lUpjYdm4*JI;&?Ei+2v2 zPcFMp0i$mohi@U1UlFr^F-t%RYhWo`P#Jr0ImfrqmaRZrg-U|_K(1h5WMpIp0akuN zF>#4L9)|{?;7U&y#}Elg)`Of*ha3bL4o)jO%Iq@pWLn{3MfU&y7lp3SGE`ZyXw}yB z)vLOsrrx=(+c|APTK~26mm_}fQRmB@JKHnm$u5>-Ti&c>J8RZEM^bs?l;zEaEOQ=y z`uaE0BwDsnTtdp>U+#YM2Xl9v=e#L@Ix6^HR{V2YZ<}wqJD2Y{RvSHCqjc8x$~~tx zetm7$+xly>Z>Nm0WD`@Rw20jVhl()Kb25I*nHDhp-*3aGym-k4P`EO9y85}Sb4q9e E0Q|a+V*mgE diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_3.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_3.png deleted file mode 100755 index 94d00d2f083e12354627366078ca3ca200c94c3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}V1Q4EE0F&G|9?=STvWM6bcL2< z0)tZ`gL4vtOERNt3X@wZvwIqgM>?x#7K>Llt9K5YPcFMp0i$mohi@U1Up}W_5wm|W zOF#*0U@2Qr8GCR!N6ZA3c|b#1OM?7>may{4Ezr5L9Vjr_)5S4FLelnNW7uH@0oQ}S zuWWKy;Ivr!P`GiV9Fk;74Hgfi}~#gQAj;gvFci%s7Hd$)A8?E&ZI%7zS5_SPb2cXA_nzoy^QUA#{lu=afqhM~=1gy(^B6o`{an^L HB{Ts59Qtw< diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_4.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_lilypads_4.png deleted file mode 100755 index d1c4199b4de441f64f36940c526c65e4115b1f0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VE0F&G|G#q*gG(}_YYLNF zDzisAt5-IwPXVKE9*1uslV3ikUlFr^F-t%RYhWo`P#L@Y$3{z_Hl~swKcF#Xlh0ZJ zd0w6_jv*Dd)}GtV*I>Zo9B7`I(YWW||7=NJLnRxz${iBx|1vX_NI4kn{KnX{?!*+$ zmV2TvSypy^2(eRI{Y#DKvz@D>L>AkF>R-%y+nKT+%+>n^G?l^A)z4*}Q$iB}Rvte~ diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_pondscum_1.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_pondscum_1.png deleted file mode 100755 index 35023547473e7c3ba6086d13fa3f2b1f9a46d01d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)G zUE%UaxENJ7U^Tw%3NL=)8V;@By>-RY~!>SZ@Oz9KBGtwb4WJ^?@P#GW`rKpoth`I=o)(8g4=O`Y< z1ba!36CEM=Of*BjO0$<}6$|7wf?@O!^-!F^5aC$dnHqLuFHswPWOcGb#1-P#WSiuB zDD9?AN7ikU>uaGRU{AEkHQ5uJF^)JBm)NDR6IsOrMX}u(1 zgnRf;03C?VCU1UMpPQJhUFe+9y4d+1{{;L$f`g4anW+7sOib!uN^H!bniFJE~e!n%H4`J{4B@e9ZH)|_KLDgO4C$^-9p?ZF=vUm%PoW1?TLb&{u%4L1)q8@v;J7; zUi~i4*W##9=gYJ2I+b4DIP|CUsoFU?{ma@i#qafxAFP{K{h8TuB~#K4nZs9sHZyp- L`njxgN@xNA%N0>s diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_3.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_3.png deleted file mode 100755 index 471072751681a903496bf8f41015b959e9673912..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!M1W6-E0F&G|G&1ssBw&#O^URA zrl^0pVRWt9tCx2xfO1SFL4H8BWs}cZ0C_o{E{-7;jH+iYX1W^kIBZzopr0A?^z1ONa4 diff --git a/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_4.png b/mods/plantlife_modpack/along_shore/textures/old/along_shore_seaweed_4.png deleted file mode 100755 index 887c1839385a4982a0b08605cca5eec126c50016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=9cj|JU{xHI5OpNs+eC z6!kARjILFC_3~~7P>!i2$S;_Ip=|P53n0(k)5S4_LzeZRp=g7F0PBW&VeQ6mrEXk& zD_X1={&Raa2vtmA)?;G3*mz~r2BuaX6V(hIMh{ap+c^c#5B(G5>DZRoRdw?xBaa@p V&;5$!zko(Ec)I$ztaD0e0swghHQ4|F diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_seaweed.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_seaweed.png deleted file mode 100755 index 4240d7953d914d83084671a9f0856f31b9d0c39a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xn;?ME0EUq7d4I%vq_P*&lL49 zH;k@TYmCrU21+oN1o;IsI6S+N2IS;4anW+7sOib!uN^H!bniFJE~e!n%H4`J{4B@e9ZH)|_KLDgO4C$^-9p?E+c;Ois&AP)L3MkC>1yqD8MKobVe zbkgZ$rl+d9rWu>r*f?fLinLD{yvt<_&jE~58EXd&+ZRzdz6CGjXuYiBtN$je*I2|< zfK(-d!mS0jWuesJs64Nr_x*~W&m7)+U6jKml&%t(q?)Dc3DcNnC zGE4UydyflpJo_}N1{lhxW+%{uq8M^b4aLwHfe^`NRWU}oHZL0afW2)AGfiyO7|54= z(~uxuXJ9aqjRCA5GQma)Ot=9@rvBHI7C_l+O&F_5pOhX@ki+?=3Hxlkfs{Btmx?BS yqg|at{)U5oM75ba4Fj}jQ&(7N&_AQu%*8L>#?!f{KjSC>0000f zMe?l;hXu1|t+UtKhp~TK`xgvmH2~9<5GhEA6&e0SjFlKtEe5-%A$6-D<0-H^Doz?< z!D((U7T}&!t&q6+Y^W2e;&3s3^ZR5Z(CMnkxFJ6~Q4hlEaDpxf zzXD{z?#qOVm?S^kK%%jRXlW);qsl{5#n_yb>B+F#6kwMNDARA=y6E%&;#V^QrW+9B zX9qfEKGe?5vDVk+Os`ftaWY!rps`Aqaa@PH@TQYo5(+IBJIgAYYL(T zwn!j|quP8US!ZNL6XQGdHWreXl~D;G;mTx5B~%f)Tv6bF2v$eKVR=QO?}e^9_A2!Q X{G!+Nm;u^)00000NkvXXu0mjfT*1HW diff --git a/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_45.png b/mods/plantlife_modpack/along_shore/textures/old/flowers_waterlily_45.png deleted file mode 100755 index c870df486eb64d90f1d8bdca60dc699b87a5db8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmV;Z0ayNsP)RqBpTtxe?bAAa* zDn@A0fx}$jyPWSFA^vS8Pb4<#A*34;$zzGYz*tEj(-qimS=jYVy;neEE70YpGCH(!STY#T^Onzm)?CH-rW*j zMh~dnM87Apk9{cknnIpxj#omEcyDD6_gCMU#M} z?2mzttBsuyAv<^)4b-#HvAzk{nb^H}Lqp+;c`+yx?XJR)z*1Y4_p9#UiEX*ABpadp_P2!0bh4rjtEWpJi# zB6bvzV6`ggfCO3AV0SgjMMu0eg?hY77kQ@BISbf5iFkR6bN&dHw=)^+pVvEuh1kG_ Sg7EDC0000Pq z>CGbB^CDd1qmbo2hOGvdfJ9TH08KiOkS`}DK{LHM6z&!fDt?oS?|{LdV~CzGY@QMD zoMZc1x6^1-N~HF~65fVSDBdqlE@~jpkhtX1$7sV3RAdF=ifcST zOkYfPLllnNqEt4HRER+n|BMBMs!l}6ex&A>pzyIh*22}V-opyDHCS>_{|^4TJ^`yx V;8ViRB?JHf002ovPDHLkV1h*ny959L diff --git a/mods/plantlife_modpack/along_shore/textures/old/lillyPad5x16.png b/mods/plantlife_modpack/along_shore/textures/old/lillyPad5x16.png deleted file mode 100755 index 761beb95d18268995d0850786f1c4e2c0f3b5b9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmV-40n7f0P)DI4 zVUP>38cIOpdx8dFa~2YI$6^3Gh5_h?0K-5Is(}-x8H9o2GRW$HfyfM!;D;$d$3O*) zAY4D+9vm~s7!E)Nz}P?uF(4KPVhKM)>=0YHv1nj||k8nGrcP{4vi zc+Zi^pgHm#FKil-y&??6Z?Vb4!r>S$1AKtEev(}vE_s*%GUyUP1ycXpXS)8sa=GdM z*|Rk%cnv^`CT*BRai?k1sWVmo?i}!Zbo+YS_rw~t7X%GJ2Dfjts{--6+h?;c1L=S1 z4chy#81MyZvk1ucP$1rctRNs?^3jC(KCgP`dM+sLGL=S)sn0+h1=7fjCkBvl0o0qK zKx_oWTrhtt1MyNIJ_y9$@fh$8lv)|Eq;E-RT5u+i9za+Mn*ksf{3gN+AlGqY4RN5v z6e0|$0c9dw27q!}9}wRF;x|zLeuXCA`#{_P#7x-q0sxkwSBdCGzGMIZ002ovPDHLk FV1j0|sV@Kk diff --git a/mods/plantlife_modpack/along_shore/textures/old/pondscum16xc.png b/mods/plantlife_modpack/along_shore/textures/old/pondscum16xc.png deleted file mode 100755 index 35023547473e7c3ba6086d13fa3f2b1f9a46d01d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)G zUE%UaxENJ7U^Tw%3NL=)8V;@By>-RY~!>SZ@Oz9KBGtwb4WJ^?@P#GW`rKpoth`I=o)(8g4=O`Y< z1ba!36CEM=Of*BjO0$<}6$|7wf?@O!^-!F^5aC$dnHqLuFHswPWOcGb#1-P#WSiuB zDD9?AN7ikU>uaGRU{AEkHQ5uJF^)JBm)NDR6IsOrMX}u(1 zgnRf;03C?VCU1UMpPQJhUFe+9y4d+1{{;L$f`g 5 then - local right_pos = {x=pos.x+1, y=pos.y+bush_side_height, z=pos.z} - abstract_bushes.grow_bush_node(right_pos,3,leaf_type) - end - local chance_of_bush_node_left = math.random(1,10) - if chance_of_bush_node_left> 5 then - bush_side_height = math.random(0,1) - local left_pos = {x=pos.x-1, y=pos.y+bush_side_height, z=pos.z} - abstract_bushes.grow_bush_node(left_pos,1,leaf_type) - end - local chance_of_bush_node_front = math.random(1,10) - if chance_of_bush_node_front> 5 then - bush_side_height = math.random(0,1) - local front_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z+1} - abstract_bushes.grow_bush_node(front_pos,2,leaf_type) - end - local chance_of_bush_node_back = math.random(1,10) - if chance_of_bush_node_back> 5 then - bush_side_height = math.random(0,1) - local back_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z-1} - abstract_bushes.grow_bush_node(back_pos,0,leaf_type) - end - -abstract_bushes.grow_bush_node(pos,5,leaf_type) -end - -abstract_bushes.grow_bush_node = function(pos,dir, leaf_type) - - - local right_here = {x=pos.x, y=pos.y+1, z=pos.z} - local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z} - - local bush_branch_type = 2 - - -- MM: I'm not sure if it's slower now than before... - if dir ~= 5 and leaf_type == 1 then - bush_branch_type = 2 - end - if dir ~= 5 and leaf_type == 2 then - bush_branch_type = 4 - end - if dir == 5 and leaf_type == 1 then - bush_branch_type = 1 - dir = 1 - end - if dir == 5 and leaf_type == 2 then - bush_branch_type = 3 - dir = 1 - end - - if minetest.get_node(right_here).name == "air" -- instead of check_air = true, - or minetest.get_node(right_here).name == "default:junglegrass" then - minetest.set_node(right_here, {name="bushes:bushbranches"..bush_branch_type , param2=dir}) - --minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")") - minetest.set_node(above_right_here, {name="bushes:BushLeaves"..leaf_type}) - local chance_of_high_leaves = math.random(1,10) - if chance_of_high_leaves> 5 then - local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z} - --minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")") - minetest.set_node(two_above_right_here, {name="bushes:BushLeaves"..leaf_type}) - end - end -end - - -biome_lib:register_generate_plant({ - surface = { - "default:dirt_with_grass", - "stoneage:grass_with_silex", - "sumpf:peat", - "sumpf:sumpf", - "default:dirt_with_dry_grass" - }, - max_count = 15, --10,15 - rarity = 101 - 4, --3,4 - min_elevation = 1, -- above sea level - plantlife_limit = -0.9, - }, - abstract_bushes.grow_bush -) - - abstract_bushes.grow_youngtree2 = function(pos) - local height = math.random(4,5) - return abstract_bushes.grow_youngtree_node2(pos,height) -end - -abstract_bushes.grow_youngtree_node2 = function(pos, height) - - - local right_here = {x=pos.x, y=pos.y+1, z=pos.z} - local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z} - local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z} - local three_above_right_here = {x=pos.x, y=pos.y+4, z=pos.z} - - if minetest.get_node(right_here).name == "air" -- instead of check_air = true, - or minetest.get_node(right_here).name == "default:junglegrass" then - if height == 4 then - local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1} - local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1} - minetest.set_node(right_here, {name="bushes:youngtree2_bottom"}) - minetest.set_node(above_right_here, {name="bushes:youngtree2_bottom"}) - minetest.set_node(two_above_right_here, {name="bushes:bushbranches2" , param2=2}) - minetest.set_node(two_above_right_here_south, {name="bushes:bushbranches2" , param2=0}) - minetest.set_node(three_above_right_here, {name="bushes:BushLeaves1" }) - minetest.set_node(three_above_right_here_south, {name="bushes:BushLeaves1" }) - end - - end -end - -biome_lib:register_generate_plant({ - surface = { - "default:dirt_with_grass", - "stoneage:grass_with_silex", - "sumpf:peat", - "sumpf:sumpf", - "default:dirt_with_dry_grass" - }, - max_count = 55, --10,15 - rarity = 101 - 4, --3,4 - min_elevation = 1, -- above sea level - plantlife_limit = -0.9, - }, - abstract_bushes.grow_youngtree2 -) - - --http://dev.minetest.net/Node_Drawtypes diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_center_1.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_center_1.png deleted file mode 100755 index bac3ee457bdc20df6f70ef3d4150e84704cd60a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}Y=BRQ>;M1%Pn|mY;?ez6XHL9$ z{^Zz+!&k3g&JA%;(O`G-;*C&akFu1FHkXY_7m9V!jdRtDb2p6hFpl#!jki%sFp)^` zwMYoGO}3Cpb~ng$*UR=cDe*Ti3jiXE?($UL$2rS@7IBmW`2{nW+q=651iV*WD{>Vm zR_*EH7$PCbdXU{ohLMNG;9~BE#IlDkPX3?YnNsbNYn|^MoR*v!Sv~PpVV3Ht8*f5l z)bP0l+XkKD~NVl diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_center_2.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_center_2.png deleted file mode 100755 index c21edf6a69368afc3e5710a19a5012c6e6530bef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}Y=BRQ>;M1%Pn|mY;?ez6XHL9$ z{^Zz+!&k3g&JA(k)nt?K=26NJj8J2bvXqTBmyLDNjdRtDb2p6hFpl#!jki%sFp)^` zwMYoGO}3Cpb~ng$*UR=cDe*Ti3jiXE?()nmPUOlPj$ zAz>;Od-39>?5LS?Vg8og;;~mkE^f8hlbFbQ`sAncFWdKi@Nvp}bl~AdrSIXE2aX+M z=Tz8Pz2Q3d1I@_!?->*Jf6r!axPJG~f7bc~FW6q5war%rI)lN})z4*}Q$iB};zW5c diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_left_1.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_left_1.png deleted file mode 100755 index 120f100f043a44627e2c3962806f517e7f2ab2b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)+{!vu@x{;5K;=_JKM)OF+xeoNGa0g59Bwb zOT)jQprfFoKuH1OUo87p3_=kN8R>3kc4ywadBd18e{WWLB5_!63{x*$Tg-~>*(Mcr_I-dv8}u&bMIJe!|l zb^Gh3819rm&Hgp&6gZ~k3w}bP;mvDgmK6PS_z({uYRt2nViJbvEAdYBNOs~>3*0d6 zty)pOuO;ewEWs}VVRYGDro@Y?HRS;`bYD)R5NihD2RF;d?ZpUKsEy3ATV3x2qY+@x z2VkQLpAFsgB0$-F48ox^m;}qFg_GUaunDk$4xTmthy9O%g(~bT_@5cf P00000NkvXXu0mjfFCr85 diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_left_2.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_left_2.png deleted file mode 100755 index 1c17bac34b66b43c5131f80b7ba984fde03d3e67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)OED#F!IGQLz-IS56J9B65nKNh17&rA{a_AY-tE4_Xq!@mGy_60% zn?uBO|EPUkMh@>U(n2#2hMT=z}tqBikKlWXkDHKDp3p9iZKG)ZRV4{CcX>pLgvXmBOZ;m zp`>v7tt%H$!%z%V>V$94Ddk;5{D>T4*ATwb2+@dZ#e{E3Zy9yP*{x-lso?2Wa~7v( z2(O>Ht(a@3pQA~yo|Q>#Vi|#SG^Nm~%I#gdu!=(06b~NUSelAv=kb;)PWx8+1sD6v zo}=cYQOg-Q0_bR2i`4cs>0oj!+!3ozHIqU-?hNa%FB+j;v;s@rpl&!H->JmM?CQ#0 zPZy7{y8T<%61e039Q)U(Q(!5YZ-|E^8ggDEyUOVw!{>tjii9=A_v6PT4AJM}9Y!PR z(orOEL(w^llbxDW$31WGDKO+VJI%OwalWPkfO_`TxgCAs^9W4%cHhp417{`1fBmm~ zBlF`&xyAFRg3$=D(RPHBzA0V|ZFL2p>?{W1{EBeQnfwkaingsS{9$J`Y=Ud?W3+PN k1N$EXfM31zlI!sEFKRySCoKR*eEi_@% diff --git a/mods/plantlife_modpack/bushes/textures/bushes_branches_right_1.png b/mods/plantlife_modpack/bushes/textures/bushes_branches_right_1.png deleted file mode 100755 index af5de67cee12c651147a1b740e897ee0bc4bc3eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0Ww$>dOeLL$t$*ICC0`FditXNb()9{y zoFj&BmG#l>s&>?MiX(isv^J6iRqdOIU88~@zGyF4xAEVq=clOgFyb$tc9UJt(yqW9 zwhFIm*taWwXT`W5B>YOTs=LBk! z#y?^dtC3~qY~P=`2XsY?Y6Op?#&*p&n{Fv-H;U^h3}p7_&Qjq4a(e##iP*o}P&De+ zEIgG`0nShw3BkPa6rDdrPp*LuPj;z` zUFr)wFsX>0+$4AHRID@!X(OQ{?XtRuF7tVZ-b)ccX!yEm<;9@wua<9wGIR3wdHp7o zja;*?id}P)J~ckh`BjQv4QfW7`H0@cEwy7$AEoW2)JCe>57H&ex&6@xjnxJUHA&Gk zHqf+HGhGPEc{KiSwW9sd@YO!aSWxip)$EM;7XvCrMPcyx&Uxq<3xDMKHv?)UjTfNt es%lJ$|FjDNJrcy_bwT zUVa>Y*wD>ldMvc~X2&UvO5fCl!?ADiN37v$^LWS~tp#HW?`9=CNx&npLrZyg!!!7x zn1k5Xi1T)u#7~qx7N<)Pa>vUKXJ5CpRI~9 zD#kHr6ktTyV$w{+(g85pDsY~E)BAucu~ zM|b@CUg*e4Jz%Kb_VP)&8k&6tRgtjn>Z$FG=q|vAV3zvKH~HI6Et94P@B1a*M}S|} zE&};(bbgPRZ@_%ys83qe+}x1h9i6gQqDSbFNM%b zJqF;-nvrEYrMFbv7nsWX+gB?431~BN^@>P#^-J`L_CuS$mRHGs7dobok*A-bn>ZwP z?4`$OI|-3Uoe?jpj0I=A0BAigps&-R5J-Z~SPRPPM$^_^5IQW>J+dp8wN7jGRhz$o zeXXQ?#jY`T*Ul;IUql{HX!0+9Y5H5>XbXRw^KU{s{SlekRU+}zs-;b`|CFD;0{Ei^ STJ7rq0000z5Zo) zhNrRAi-PS78m}+*;?@~ diff --git a/mods/plantlife_modpack/bushes/textures/bushes_leaves_2.png b/mods/plantlife_modpack/bushes/textures/bushes_leaves_2.png deleted file mode 100755 index e6de4829367c815615988c4d36808a134cc20e1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bRmu<)G~<-;=Hb<31ByL% zxgiRqSWANZg8u^n!|!c;!9alwPZ!4!j_a%k8wFb&IG7Lo@nB72mf~_~W7<>j_xhLJ z8J@;cFABCVXuQ7Ii&ty5-1@{5vCCV2&v{jlB%i3a`@rwjeNq}P+uaxKjJ9fh5tEyf xl4&yggKPH>PQj?HDHWSfK4_NRy!hTvX0d9~KfK|(5BZ^jdNbOoQR@^Z=;26Ur9D_ zRX&%1Y;#*iY*apBNi)o?m3dxEe_%z4YgF34sE>PUmVj@Na#?X!Ky_F?Yg9swZ&hVW zH;#5;dtgVNf^VjXa+7#sc3nwvSVLt^IelPEVM#fEU`BUgOjSNBaa2BSSVvYtF=IzG zYEnC1LNIbzLwQ?6k8f3LPdai|LTyq$oPB7vmVb0tL#~Q&;J>KHs+GW>hk0I1nS5n% zRzq%4J8@M)d0a(vSVMebO?6sErh#Z>Nj7y+JEDYba#%raP&|ZYPlabub5=l-b6kLE zREK9xjBZw)d}N}0UU*+ib67-tUP_U1ScYg%Yfm|fZCGteGmvjsQ8y@TR6&MmRANdv zc344lTuM$pFjYb_fM`|Fsf~qYOKed;n|WY!Qa*@iQk#2Yd{a4CLo%d-XKqY3k#%B^ zaa?InJ%nUQgJDR5V@!u_T90;Mg=kTGVohvJH*Zxxa#KLGl6!?{RA)^(k8oOKO*KO@ zBym+grG#u)LNk|iT6|kWqJU>~RzXEFBSteNk8xV2eqp4Da&S*MlyFvAK`c@`Dsxjk zUPCdCa$R{|NqSsFRzNI)Uq_jFVofbv zSZ7W;T0=0Mby$X6KzLh3hiOw_L@B=&g#7RTb*B~?0reE2gsgtN+zd0RMCXA-8&W_+-`Vs zsMYl|q13=IHU_lp$zn{}p^S&s$EV0395o3k#IT;1(@FyZoFOI7Z+^=6h5uy;{sPG} sn`ypqA(*)bO$5R<%W4A@nU)8L|B>{4p{EVKi~s-t07*qoM6N<$f?E)^UjP6A diff --git a/mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk_inv.png b/mods/plantlife_modpack/bushes/textures/bushes_youngtree2trunk_inv.png deleted file mode 100755 index 7d6728f2c262708145b2d966a55189b2f8811c59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 872 zcmWlXU2GZ!0LSqox=j}~i^<%JOLVpAw%E~?mNJfyY3F9QcGaZ3xYUoNZix??W-;}_#P~F0;;Wg@#)uF9|1bZS-_w89ZZn@f zbK#6kCOZpF8=M2a`F~EmH0a^0Z(uUni^p~tH-3M=d9)rnDEkjLq+ZfpW1*Bw+Y1kiC@0@?2qHaH0#(Z@;AMZL>cM}_LFZO zK5R%$(f9RseWw<^UlnE{MT`J$7kJTQ;&H$ajXgc+W_;E>V_c2kzkRpg&Ms^gqU(v7 zIH^riKm^w}qeRd;(MtKVjQP`2bg!QHD9xt4P@DpTi1HQ#`ypkXG2QgT1aLWy0|I3x zb=Lys>kCemPd}QVz>EiMM~MhJl_2$k6WG4R9d70&7uavao;}|G;fwB*yDJ$V+{*=H zB)I5M#R+|eHi{IOW09oWv{&SUkRs_&?No#Wr4#HoDj~EQc8H|5Bhm#9UkM{?i{zc$ z+)mDyp0$dUA?LGf#HkvGMo?u#pajdSU`N9!93xG4~uY4$9w;6Pn!$PwB^QOYWQp+$n@5QfHLEXBxZIj=T4k z{SWGi7^?g@M$YK2I8`GeruKo?S_yB)2QASCQhTL1Ywl%OL^-nLF)rhiz0B;vs?ZF= zyzPc-@={wM$^mG`INnK6xO$`$v9GdFnFjS&FRq2r1yo&Str=3YL}}siAs$k24j}I} zrU=cNK!t5nZgBKYlB&_#w8yYAk1>YPdJs)v>JXx;hwb~n57UElzaTknm`wZUuc5(! zA%hM--wiN@LIM~rpEiAY@AN+*)4BAIwSMUwQo!CiF7$SPS{u6f_p6BZ6>s(Yx2p8X v!Q21Vhn_rt2YL3_xVsiT`Oj@` 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 z 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ÐGK6-y0{ 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 A4FCWD diff --git a/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1L.png b/mods/plantlife_modpack/bushes/textures/old & unused/BlockBranch1L.png deleted file mode 100644 index 5159c95c7c0bd6bf4b2b4d92bf30ea133461a5d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32475 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