map converted from Minecraft with mcimport tool from sofar, I just restored it from the many errors during importing. All houses have an interior.
To use the map:
- mods: abriglass, abripanes, basic_materials, bedrock, biome_lib, carpet, crops, flowerpot, hardenedclay, lapis, mesecons, nether, plantlife_modpack*, quartz, signs_lib, xdecor;
*in the modpack, delete the mods dryplants, along_shore, molehills, woodsoils, bushes, bushes_classic, youngtrees, 3dmushrooms, cavestuff, poisonivy, trunks; - To avoid getting the map overrun by weeds and pesky sunflowers, turn off their generation and spread in plantlife_modpack mods (ferns, flowers_plus, nature_classic, vines); replace the contents of each file, respectively:
- paste this in .../worldmods/plantlife_modpack/ferns/settings.lua
Spoiler
Code: Select all
-- In case you don't wanna have errors: -- Only change what's behind a "=" (or "--"). -- Don't use caps (behind a "="). -- If there's a "false" (behind a "=") you can change it to "true" (and the other way around). -- Spelling is important. -- If "true" or "false" is necessary as setting, everything(!) which is not spelled "true" will be read as if it were "false" (even "1", "True"...) -- If you wanna comment something (for example to remember the default value), you can do this by putting "--" in front of the comment. -- You can put "--" at the end of a line with "=" in it, or at the beginning of an empty/new line (minetest will ignore what's behind it then). -- But don't put "--" in front of a line with "=" in it (or else minetest will ignore the setting and you might get an error). -- If something is still unclear, don't hesitate to post your question @ https://forum.minetest.net/viewtopic.php?id=6921 abstract_ferns.config = {} -- Which plants should generate/spawn? abstract_ferns.config.enable_lady_fern = false --Eris changed from default value = true abstract_ferns.config.enable_horsetails = false --Eris changed from default value = true abstract_ferns.config.enable_treefern = true abstract_ferns.config.enable_giant_treefern = false --Eris changed from default value = true -- Where should they generate/spawn? (if they generate/spawn) -- -- Lady-Fern abstract_ferns.config.lady_ferns_near_tree = true abstract_ferns.config.lady_ferns_near_rock = true abstract_ferns.config.lady_ferns_near_ores = true -- if there's a bunch of ferns there's ores nearby, this one causes a huge fps drop abstract_ferns.config.lady_ferns_in_groups = false -- this one is meant as a replacement of Ferns_near_Ores: ferns tend to generate in groups, less fps drop, no hint for nearby ores -- -- Horsetails abstract_ferns.config.enable_horsetails_spawning = false -- horsetails will grow in already explored areas, over time, near water or gravel abstract_ferns.config.enable_horsetails_on_grass = true -- on dirt with grass and swamp (sumpf mod) abstract_ferns.config.enable_horsetails_on_stones = true -- on gravel, mossy cobble and silex (stoneage mod) -- -- Tree_Fern abstract_ferns.config.enable_treeferns_in_jungle = false --Eris changed from default value = true abstract_ferns.config.enable_treeferns_in_oases = false -- for oases and tropical beaches|--Eris changed from default value = true -- -- Giant_Tree_Fern abstract_ferns.config.enable_giant_treeferns_in_jungle = true abstract_ferns.config.enable_giant_treeferns_in_oases = true -- for oases and tropical beaches
- paste this in .../worldmods/plantlife_modpack/flowers_plus/init.lua
Spoiler
Code: Select all
-- support for i18n local S = minetest.get_translator("flowers_plus") -- This file supplies a few additional plants and some related crafts -- for the plantlife modpack. Last revision: 2013-04-24 flowers_plus = {} local SPAWN_DELAY = 1000 local SPAWN_CHANCE = -1 --Eris changed from default value = 200 local flowers_seed_diff = 329 local lilies_max_count = -1 --Eris changed from default value = 320 local lilies_rarity = 33 local seaweed_max_count = -1 --Eris changed from default value = 320 local seaweed_rarity = 33 local sunflowers_max_count = -1 --Eris changed from default value = 10 local sunflowers_rarity = 25 -- register the various rotations of waterlilies local lilies_list = { { nil , nil , 1 }, { "225", "22.5" , 2 }, { "45" , "45" , 3 }, { "675", "67.5" , 4 }, { "s1" , "small_1" , 5 }, { "s2" , "small_2" , 6 }, { "s3" , "small_3" , 7 }, { "s4" , "small_4" , 8 }, } for i in ipairs(lilies_list) do local deg1 = "" local deg2 = "" local lily_groups = {snappy = 3,flammable=2,flower=1} if lilies_list[i][1] ~= nil then deg1 = "_"..lilies_list[i][1] deg2 = "_"..lilies_list[i][2] lily_groups = { snappy = 3,flammable=2,flower=1, not_in_creative_inventory=1 } end minetest.register_node(":flowers:waterlily"..deg1, { description = S("Waterlily"), drawtype = "nodebox", tiles = { "flowers_waterlily"..deg2..".png", "flowers_waterlily"..deg2..".png^[transformFY" }, inventory_image = "flowers_waterlily.png", wield_image = "flowers_waterlily.png", sunlight_propagates = true, paramtype = "light", paramtype2 = "facedir", walkable = false, groups = lily_groups, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 }, }, node_box = { type = "fixed", fixed = { -0.5, -0.49, -0.5, 0.5, -0.49, 0.5 }, }, buildable_to = true, node_placement_prediction = "", liquids_pointable = true, drop = "flowers:waterlily", on_place = function(itemstack, placer, pointed_thing) local keys=placer:get_player_control() local pt = pointed_thing local place_pos = nil local top_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} local under_node = minetest.get_node(pt.under) local above_node = minetest.get_node(pt.above) local top_node = minetest.get_node(top_pos) if biome_lib.get_nodedef_field(under_node.name, "buildable_to") then if under_node.name ~= "default:water_source" then place_pos = pt.under elseif top_node.name ~= "default:water_source" and biome_lib.get_nodedef_field(top_node.name, "buildable_to") then place_pos = top_pos else return end elseif biome_lib.get_nodedef_field(above_node.name, "buildable_to") then place_pos = pt.above end if place_pos and not minetest.is_protected(place_pos, placer:get_player_name()) then local nodename = "default:cobble" -- if this block appears, something went....wrong :-) if not keys["sneak"] then local node = minetest.get_node(pt.under) local waterlily = math.random(1,8) if waterlily == 1 then nodename = "flowers:waterlily" elseif waterlily == 2 then nodename = "flowers:waterlily_225" elseif waterlily == 3 then nodename = "flowers:waterlily_45" elseif waterlily == 4 then nodename = "flowers:waterlily_675" elseif waterlily == 5 then nodename = "flowers:waterlily_s1" elseif waterlily == 6 then nodename = "flowers:waterlily_s2" elseif waterlily == 7 then nodename = "flowers:waterlily_s3" elseif waterlily == 8 then nodename = "flowers:waterlily_s4" end minetest.swap_node(place_pos, {name = nodename, param2 = math.random(0,3) }) else local fdir = minetest.dir_to_facedir(placer:get_look_dir()) minetest.swap_node(place_pos, {name = "flowers:waterlily", param2 = fdir}) end if not biome_lib.expect_infinite_stacks then itemstack:take_item() end return itemstack end end, }) end local algae_list = { {nil}, {2}, {3}, {4} } for i in ipairs(algae_list) do local num = "" local algae_groups = {snappy = 3,flammable=2,flower=1} if algae_list[i][1] ~= nil then num = "_"..algae_list[i][1] algae_groups = { snappy = 3,flammable=2,flower=1, not_in_creative_inventory=1 } end minetest.register_node(":flowers:seaweed"..num, { description = S("Seaweed"), drawtype = "nodebox", tiles = { "flowers_seaweed"..num..".png", "flowers_seaweed"..num..".png^[transformFY" }, inventory_image = "flowers_seaweed_2.png", wield_image = "flowers_seaweed_2.png", sunlight_propagates = true, paramtype = "light", paramtype2 = "facedir", walkable = false, groups = algae_groups, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 }, }, node_box = { type = "fixed", fixed = { -0.5, -0.49, -0.5, 0.5, -0.49, 0.5 }, }, buildable_to = true, liquids_pointable = true, drop = "flowers:seaweed", on_place = function(itemstack, placer, pointed_thing) local keys=placer:get_player_control() local pt = pointed_thing local place_pos = nil local top_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} local under_node = minetest.get_node(pt.under) local above_node = minetest.get_node(pt.above) local top_node = minetest.get_node(top_pos) if biome_lib.get_nodedef_field(under_node.name, "buildable_to") then if under_node.name ~= "default:water_source" then place_pos = pt.under elseif top_node.name ~= "default:water_source" and biome_lib.get_nodedef_field(top_node.name, "buildable_to") then place_pos = top_pos else return end elseif biome_lib.get_nodedef_field(above_node.name, "buildable_to") then place_pos = pt.above end if not place_pos then return end -- something went wrong :P if not minetest.is_protected(place_pos, placer:get_player_name()) then local nodename = "default:cobble" -- :D if not keys["sneak"] then --local node = minetest.get_node(pt.under) local seaweed = math.random(1,4) if seaweed == 1 then nodename = "flowers:seaweed" elseif seaweed == 2 then nodename = "flowers:seaweed_2" elseif seaweed == 3 then nodename = "flowers:seaweed_3" elseif seaweed == 4 then nodename = "flowers:seaweed_4" end minetest.swap_node(place_pos, {name = nodename, param2 = math.random(0,3) }) else local fdir = minetest.dir_to_facedir(placer:get_look_dir()) minetest.swap_node(place_pos, {name = "flowers:seaweed", param2 = fdir}) end if not biome_lib.expect_infinite_stacks then itemstack:take_item() end return itemstack end end, }) end local box = { type="fixed", fixed = { { -0.2, -0.5, -0.2, 0.2, 0.5, 0.2 } }, } local sunflower_drop = "farming:seed_wheat" if minetest.registered_items["farming:seed_spelt"] then sunflower_drop = "farming:seed_spelt" end minetest.register_node(":flowers:sunflower", { description = S("Sunflower"), drawtype = "mesh", paramtype = "light", paramtype2 = "facedir", inventory_image = "flowers_sunflower_inv.png", mesh = "flowers_sunflower.obj", tiles = { "flowers_sunflower.png" }, walkable = false, buildable_to = true, is_ground_content = true, groups = { dig_immediate=3, flora=1, flammable=3, attached_node=1 }, sounds = default.node_sound_leaves_defaults(), selection_box = box, collision_box = box, drop = { max_items = 1, items = { {items = {sunflower_drop}, rarity = 8}, {items = {"flowers:sunflower"}}, } } }) local extra_aliases = { "waterlily", "waterlily_225", "waterlily_45", "waterlily_675", "seaweed" } for i in ipairs(extra_aliases) do local flower = extra_aliases[i] minetest.register_alias("flowers:flower_"..flower, "flowers:"..flower) end minetest.register_alias( "trunks:lilypad" , "flowers:waterlily_s1" ) minetest.register_alias( "along_shore:lilypads_1" , "flowers:waterlily_s1" ) minetest.register_alias( "along_shore:lilypads_2" , "flowers:waterlily_s2" ) minetest.register_alias( "along_shore:lilypads_3" , "flowers:waterlily_s3" ) minetest.register_alias( "along_shore:lilypads_4" , "flowers:waterlily_s4" ) minetest.register_alias( "along_shore:pondscum_1" , "flowers:seaweed" ) minetest.register_alias( "along_shore:seaweed_1" , "flowers:seaweed" ) minetest.register_alias( "along_shore:seaweed_2" , "flowers:seaweed_2" ) minetest.register_alias( "along_shore:seaweed_3" , "flowers:seaweed_3" ) minetest.register_alias( "along_shore:seaweed_4" , "flowers:seaweed_4" ) -- ongen registrations flowers_plus.grow_waterlily = function(pos) local right_here = {x=pos.x, y=pos.y+1, z=pos.z} for i in ipairs(lilies_list) do local chance = math.random(1,8) local ext = "" local num = lilies_list[i][3] if lilies_list[i][1] ~= nil then ext = "_"..lilies_list[i][1] end if chance == num then minetest.swap_node(right_here, {name="flowers:waterlily"..ext, param2=math.random(0,3)}) end end end biome_lib.register_on_generate({ surface = {"default:water_source"}, max_count = lilies_max_count, rarity = lilies_rarity, min_elevation = 1, max_elevation = 40, near_nodes = {"default:dirt_with_grass"}, near_nodes_size = 4, near_nodes_vertical = 1, near_nodes_count = 1, plantlife_limit = -0.9, temp_max = -0.22, temp_min = 0.22, }, flowers_plus.grow_waterlily ) flowers_plus.grow_seaweed = function(pos) local right_here = {x=pos.x, y=pos.y+1, z=pos.z} minetest.swap_node(right_here, {name="along_shore:seaweed_"..math.random(1,4), param2=math.random(1,3)}) end biome_lib.register_on_generate({ surface = {"default:water_source"}, max_count = seaweed_max_count, rarity = seaweed_rarity, min_elevation = 1, max_elevation = 40, near_nodes = {"default:dirt_with_grass"}, near_nodes_size = 4, near_nodes_vertical = 1, near_nodes_count = 1, plantlife_limit = -0.9, }, flowers_plus.grow_seaweed ) -- seaweed at beaches -- MM: not satisfied with it, but IMHO some beaches should have some algae biome_lib.register_on_generate({ surface = {"default:water_source"}, max_count = seaweed_max_count, rarity = seaweed_rarity, min_elevation = 1, max_elevation = 40, near_nodes = {"default:sand"}, near_nodes_size = 1, near_nodes_vertical = 0, near_nodes_count = 3, plantlife_limit = -0.9, temp_max = -0.64, -- MM: more or less random values, just to make sure it's not everywhere temp_min = -0.22, -- MM: more or less random values, just to make sure it's not everywhere }, flowers_plus.grow_seaweed ) biome_lib.register_on_generate({ surface = {"default:sand"}, max_count = seaweed_max_count*2, rarity = seaweed_rarity/2, min_elevation = 1, max_elevation = 40, near_nodes = {"default:water_source"}, near_nodes_size = 1, near_nodes_vertical = 0, near_nodes_count = 3, plantlife_limit = -0.9, temp_max = -0.64, -- MM: more or less random values, just to make sure it's not everywhere temp_min = -0.22, -- MM: more or less random values, just to make sure it's not everywhere }, flowers_plus.grow_seaweed ) biome_lib.register_on_generate({ surface = {"default:dirt_with_grass"}, avoid_nodes = { "flowers:sunflower" }, max_count = sunflowers_max_count, rarity = sunflowers_rarity, min_elevation = 0, plantlife_limit = -0.9, temp_max = 0.53, random_facedir = {0,3}, }, "flowers:sunflower" ) -- spawn ABM registrations biome_lib.register_active_spawner({ spawn_delay = SPAWN_DELAY/2, spawn_plants = { "flowers:waterlily", "flowers:waterlily_225", "flowers:waterlily_45", "flowers:waterlily_675", "flowers:waterlily_s1", "flowers:waterlily_s2", "flowers:waterlily_s3", "flowers:waterlily_s4" }, avoid_radius = 2.5, spawn_chance = SPAWN_CHANCE*4, spawn_surfaces = {"default:water_source"}, avoid_nodes = {"group:flower", "group:flora" }, seed_diff = flowers_seed_diff, light_min = 9, depth_max = 2, random_facedir = {0,3} }) biome_lib.register_active_spawner({ spawn_delay = SPAWN_DELAY*2, spawn_plants = {"flowers:seaweed"}, spawn_chance = SPAWN_CHANCE*2, spawn_surfaces = {"default:water_source"}, avoid_nodes = {"group:flower", "group:flora"}, seed_diff = flowers_seed_diff, light_min = 4, light_max = 10, neighbors = {"default:dirt_with_grass"}, facedir = 1 }) biome_lib.register_active_spawner({ spawn_delay = SPAWN_DELAY*2, spawn_plants = {"flowers:seaweed"}, spawn_chance = SPAWN_CHANCE*2, spawn_surfaces = {"default:dirt_with_grass"}, avoid_nodes = {"group:flower", "group:flora" }, seed_diff = flowers_seed_diff, light_min = 4, light_max = 10, neighbors = {"default:water_source"}, ncount = 1, facedir = 1 }) biome_lib.register_active_spawner({ spawn_delay = SPAWN_DELAY*2, spawn_plants = {"flowers:seaweed"}, spawn_chance = SPAWN_CHANCE*2, spawn_surfaces = {"default:stone"}, avoid_nodes = {"group:flower", "group:flora" }, seed_diff = flowers_seed_diff, light_min = 4, light_max = 10, neighbors = {"default:water_source"}, ncount = 6, facedir = 1 }) biome_lib.register_active_spawner({ spawn_delay = SPAWN_DELAY*2, spawn_plants = {"flowers:sunflower"}, spawn_chance = SPAWN_CHANCE*2, spawn_surfaces = {"default:dirt_with_grass"}, avoid_nodes = {"group:flower", "flowers:sunflower"}, seed_diff = flowers_seed_diff, light_min = 11, light_max = 14, min_elevation = 0, plantlife_limit = -0.9, temp_max = 0.53, random_facedir = {0,3}, avoid_radius = 5 }) -- Cotton plants are now provided by the default "farming" mod. -- old cotton plants -> farming cotton stage 8 -- cotton wads -> string (can be crafted into wool blocks) -- potted cotton plants -> potted white dandelions minetest.register_alias("flowers:cotton_plant", "farming:cotton_8") minetest.register_alias("flowers:flower_cotton", "farming:cotton_8") minetest.register_alias("flowers:flower_cotton_pot", "flowers:potted_dandelion_white") minetest.register_alias("flowers:potted_cotton_plant", "flowers:potted_dandelion_white") minetest.register_alias("flowers:cotton", "farming:string") minetest.register_alias("flowers:cotton_wad", "farming:string") minetest.register_alias("sunflower:sunflower", "flowers:sunflower") print("[Flowers] Loaded.")
- paste this in .../worldmods/plantlife_modpack/nature_classic/init.lua
Spoiler
Code: Select all
-- Nature Classic mod -- Originally by neko259 -- Nature is slowly capturing the world! local current_mod_name = minetest.get_current_modname() nature = {} -- support for i18n local S = minetest.get_translator("nature_classic") nature.blossomqueue = {} nature.blossomqueue_max = 1000 nature.blossom_decay = 2 nature.blossom_trunk = "default:tree" nature.blossom_node = "nature:blossom" nature.blossom_leaves = "default:leaves" nature.blossom_textures = { "default_leaves.png^nature_blossom.png" } nature.blossom_groups = { snappy = 3, leafdecay = 1, leaves = 1, flammable = 2 } if minetest.get_modpath("moretrees") then nature.blossom_decay = moretrees.leafdecay_radius nature.blossom_trunk = "moretrees:apple_tree_trunk" nature.blossom_node = "moretrees:apple_blossoms" nature.blossom_leaves = "moretrees:apple_tree_leaves" nature.blossom_textures = { "moretrees_apple_tree_leaves.png^nature_blossom.png" } nature.blossom_groups = { snappy = 3, leafdecay = 1, leaves = 1, flammable = 2, moretrees_leaves = 1 }, minetest.register_alias("nature:blossom", "default:leaves") end nature.leaves_blossom_chance = 15 nature.blossom_leaves_chance = 0 --Eris changed from default value = 5 nature.blossom_delay = 3600 nature.apple_delay = 3600 nature.apple_chance = 0 --Eris changed from default value = 10 nature.apple_spread = 0 --Eris changed from default value = 2 nature.meta_blossom_time = "blossom_time" nature.blossom_duration = nature.blossom_delay function dumppos(pos) return "("..pos.x..","..pos.y..","..pos.z..")" end dofile(minetest.get_modpath(current_mod_name) .. "/config.lua") dofile(minetest.get_modpath(current_mod_name) .. "/global_function.lua") dofile(minetest.get_modpath(current_mod_name) .. "/blossom.lua") minetest.log("info", S("[Nature Classic] loaded!"))
- paste this in .../worldmods/plantlife_modpack/vines/init.lua
Spoiler
Code: Select all
vines = { name = 'vines', recipes = {} } local enable_roots = minetest.settings:get_bool("vines_enable_roots") -- support for i18n local S = minetest.get_translator("vines") -- ITEMS minetest.register_craftitem("vines:vines", { description = S("Vines"), inventory_image = "vines_item.png", groups = {vines = 1, flammable = 2} }) -- FUNCTIONS local function dig_down(pos, node, digger) if digger == nil then return end local np = {x = pos.x, y = pos.y - 1, z = pos.z} local nn = minetest.get_node(np) if minetest.get_item_group(nn.name, "vines") > 0 then minetest.node_dig(np, nn, digger) end end vines.register_vine = function( name, defs, biome ) local groups = {vines = 1, snappy = 3, flammable = 2, attached_node = 1} local vine_name_end = 'vines:' .. name .. '_end' local vine_name_middle = 'vines:' .. name .. '_middle' local vine_image_end = "vines_" .. name .. "_end.png" local vine_image_middle = "vines_" .. name .. "_middle.png" local drop_node = vine_name_end biome.spawn_plants = {vine_name_end} local vine_group = 'group:' .. name .. '_vines' biome.spawn_surfaces[#biome.spawn_surfaces + 1] = vine_group local selection_box = {type = "wallmounted",} local drawtype = 'signlike' -- different properties for bottom and side vines. if not biome.spawn_on_side then selection_box = { type = "fixed", fixed = { -0.4, -1/2, -0.4, 0.4, 1/2, 0.4 } } drawtype = 'plantlike' end minetest.register_node(vine_name_end, { description = defs.description, walkable = false, climbable = true, wield_image = vine_image_end, drop = "vines:vines", sunlight_propagates = true, paramtype = "light", paramtype2 = "wallmounted", buildable_to = false, tiles = {vine_image_end}, drawtype = drawtype, inventory_image = vine_image_end, groups = groups, sounds = default.node_sound_leaves_defaults(), selection_box = selection_box, on_construct = function(pos) local timer = minetest.get_node_timer(pos) timer:start(math.random(5, 10)) end, on_timer = function(pos) local node = minetest.get_node(pos) local bottom = {x = pos.x, y = pos.y - 1, z = pos.z} local bottom_node = minetest.get_node( bottom ) if bottom_node.name == "air" then if not math.random(defs.average_length) == 1 then minetest.set_node(pos, { name = vine_name_middle, param2 = node.param2}) minetest.set_node(bottom, { name = node.name, param2 = node.param2}) local timer = minetest.get_node_timer(bottom_node) timer:start(math.random(5, 10)) end end end, after_dig_node = function(pos, node, metadata, digger) dig_down(pos, node, digger) end, }) minetest.register_node( vine_name_middle, { description = S("Matured") .. " " .. defs.description, walkable = false, climbable = true, drop = "vines:vines", sunlight_propagates = true, paramtype = "light", paramtype2 = "wallmounted", buildable_to = false, tiles = {vine_image_middle}, wield_image = vine_image_middle, drawtype = drawtype, inventory_image = vine_image_middle, groups = groups, sounds = default.node_sound_leaves_defaults(), selection_box = selection_box, after_dig_node = function(pos, node, metadata, digger) dig_down(pos, node, digger) end, }) biome_lib.register_active_spawner(biome) end -- ALIASES -- used to remove the old vine nodes and give room for the new. minetest.register_alias( 'vines:root', 'air' ) minetest.register_alias( 'vines:root_rotten', 'air' ) minetest.register_alias( 'vines:vine', 'air' ) minetest.register_alias( 'vines:vine_rotten', 'air' ) minetest.register_alias( 'vines:side', 'air' ) minetest.register_alias( 'vines:side_rotten', 'air' ) minetest.register_alias( 'vines:jungle', 'air' ) minetest.register_alias( 'vines:jungle_rotten', 'air' ) minetest.register_alias( 'vines:willow', 'air' ) minetest.register_alias( 'vines:willow_rotten', 'air' ) -- CRAFTS minetest.register_craft({ output = 'vines:rope_block', recipe = { {'group:vines', 'group:vines', 'group:vines'}, {'group:vines', 'group:wood', 'group:vines'}, {'group:vines', 'group:vines', 'group:vines'}, } }) if minetest.get_modpath("moreblocks") then minetest.register_craft({ output = 'vines:rope_block', recipe = { {'moreblocks:rope', 'moreblocks:rope', 'moreblocks:rope'}, {'moreblocks:rope', 'group:wood', 'moreblocks:rope'}, {'moreblocks:rope', 'moreblocks:rope', 'moreblocks:rope'}, } }) end minetest.register_craft({ output = 'vines:shears', recipe = { {'', 'default:steel_ingot', ''}, {'group:stick', 'group:wood', 'default:steel_ingot'}, {'', '', 'group:stick'} } }) -- NODES minetest.register_node("vines:rope_block", { description = S("Rope"), sunlight_propagates = true, paramtype = "light", tiles = { "default_wood.png^vines_rope.png", "default_wood.png^vines_rope.png", "default_wood.png", "default_wood.png", "default_wood.png^vines_rope.png", "default_wood.png^vines_rope.png", }, groups = {flammable = 2, choppy = 2, oddly_breakable_by_hand = 1}, after_place_node = function(pos) local p = {x = pos.x, y = pos.y - 1, z = pos.z} local n = minetest.get_node(p) if n.name == "air" then minetest.add_node(p, {name = "vines:rope_end"}) end end, after_dig_node = function(pos, node, digger) local p = {x = pos.x, y = pos.y - 1, z = pos.z} local n = minetest.get_node(p) while n.name == 'vines:rope' or n.name == 'vines:rope_end' do minetest.remove_node(p) p = {x = p.x, y = p.y - 1, z = p.z} n = minetest.get_node(p) end end }) minetest.register_node("vines:rope", { description = S("Rope"), walkable = false, climbable = true, sunlight_propagates = true, paramtype = "light", drop = {}, tiles = {"vines_rope.png"}, drawtype = "plantlike", groups = {flammable = 2, not_in_creative_inventory = 1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, }, }) minetest.register_node("vines:rope_end", { description = S("Rope"), walkable = false, climbable = true, sunlight_propagates = true, paramtype = "light", drop = {}, tiles = {"vines_rope_end.png"}, drawtype = "plantlike", groups = {flammable = 2, not_in_creative_inventory = 1}, sounds = default.node_sound_leaves_defaults(), after_place_node = function(pos) local yesh = {x = pos.x, y = pos.y - 1, z = pos.z} minetest.add_node(yesh, {name = "vines:rope"}) end, selection_box = { type = "fixed", fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, }, on_construct = function(pos) local timer = minetest.get_node_timer(pos) timer:start(1) end, on_timer = function( pos, elapsed ) local p = {x = pos.x, y = pos.y - 1, z = pos.z} local n = minetest.get_node(p) if n.name == "air" then minetest.set_node(pos, {name = "vines:rope"}) minetest.add_node(p, {name = "vines:rope_end"}) else local timer = minetest.get_node_timer(pos) timer:start(1) end end }) -- SHEARS minetest.register_tool("vines:shears", { description = S("Shears"), inventory_image = "vines_shears.png", wield_image = "vines_shears.png", stack_max = 1, max_drop_level = 3, tool_capabilities = { full_punch_interval = 1.0, max_drop_level = 1, groupcaps = { snappy = {times = {[3] = 0.2}, uses = 60, maxlevel = 3}, } }, }) -- VINES local spawn_root_surfaces = {} if enable_roots ~= false then spawn_root_surfaces = { "default:dirt_with_grass", "default:dirt" } end vines.register_vine('root', {description = S("Roots"), average_length = 9}, { choose_random_wall = true, avoid_nodes = {"vines:root_middle"}, avoid_radius = 5, spawn_delay = 500, spawn_chance = -1, --Eris changed from default value = 10 spawn_surfaces = spawn_root_surfaces, spawn_on_bottom = true, plantlife_limit = -0.6, humidity_min = 0.4, }) vines.register_vine('vine', {description = S("Vines"), average_length = 5}, { choose_random_wall = true, avoid_nodes = {"group:vines"}, avoid_radius = 5, spawn_delay = 500, spawn_chance = -1, --Eris changed from default value = 100 spawn_surfaces = { -- "default:leaves", "default:jungleleaves", "moretrees:jungletree_leaves_red", "moretrees:jungletree_leaves_yellow", "moretrees:jungletree_leaves_green" }, spawn_on_bottom = true, plantlife_limit = -0.9, humidity_min = 0.7, }) vines.register_vine('side', {description = S("Vines"), average_length = 6}, { choose_random_wall = true, avoid_nodes = {"group:vines", "default:apple"}, avoid_radius = 3, spawn_delay = 500, spawn_chance = -1, --Eris changed from default value = 100 spawn_surfaces = { -- "default:leaves", "default:jungleleaves", "moretrees:jungletree_leaves_red", "moretrees:jungletree_leaves_yellow", "moretrees:jungletree_leaves_green" }, spawn_on_side = true, plantlife_limit = -0.9, humidity_min = 0.4, }) vines.register_vine("jungle", {description = S("Jungle Vines"), average_length = 7}, { choose_random_wall = true, neighbors = { "default:jungleleaves", "moretrees:jungletree_leaves_red", "moretrees:jungletree_leaves_yellow", "moretrees:jungletree_leaves_green" }, avoid_nodes = { "vines:jungle_middle", "vines:jungle_end", }, avoid_radius = 5, spawn_delay = 500, spawn_chance = -1, --Eris changed from default value = 100 spawn_surfaces = { "default:jungletree", "moretrees:jungletree_trunk" }, spawn_on_side = true, plantlife_limit = -0.9, humidity_min = 0.2, }) vines.register_vine( 'willow', {description = S("Willow Vines"), average_length = 9}, { choose_random_wall = true, avoid_nodes = {"vines:willow_middle"}, avoid_radius = 5, near_nodes = {'default:water_source'}, near_nodes_size = 1, near_nodes_count = 1, near_nodes_vertical = 7, plantlife_limit = -0.8, spawn_chance = 10, spawn_delay = 500, spawn_on_side = true, spawn_surfaces = {"moretrees:willow_leaves"}, humidity_min = 0.5 }) print("[Vines] Loaded!")
- paste this in .../worldmods/plantlife_modpack/ferns/settings.lua
- You are ready, enjoy!