From 4184caa64134fae63c31d3699b55dd4c150f3f8a Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Mon, 8 Apr 2013 22:54:22 -0400 Subject: [PATCH 1/3] removed all code that tries to disable default trees because the minetest dev team is being completely obstinant about letting me properly disable them from this mod. Instead, made beech trees respond to enable flags in settings.lua (disabled by default). If you want beeches, turn that flag on in settings.lua and remove the "trees" flag from yourworld/map_meta.txt in the mg_flags line. --- biome_defs.lua | 4 +-- init.lua | 15 ++++----- node_defs.lua | 82 ++------------------------------------------------ settings.lua | 8 +---- 4 files changed, 11 insertions(+), 98 deletions(-) diff --git a/biome_defs.lua b/biome_defs.lua index b92c2d6..323433c 100644 --- a/biome_defs.lua +++ b/biome_defs.lua @@ -2,10 +2,10 @@ moretrees.beech_biome = { surface = "default:dirt_with_grass", avoid_nodes = moretrees.avoidnodes, - avoid_radius = 10, + avoid_radius = 8, seed_diff = 2, rarity = 50, - max_count = 15, + max_count = 20, } moretrees.palm_biome = { diff --git a/init.lua b/init.lua index 90e8111..6773e41 100644 --- a/init.lua +++ b/init.lua @@ -19,22 +19,19 @@ moretrees = {} dofile(minetest.get_modpath("moretrees").."/settings.lua") -dofile(minetest.get_modpath("moretrees").."/node_defs.lua") dofile(minetest.get_modpath("moretrees").."/tree_models.lua") dofile(minetest.get_modpath("moretrees").."/biome_defs.lua") +dofile(minetest.get_modpath("moretrees").."/node_defs.lua") +dofile(minetest.get_modpath("moretrees").."/saplings.lua") dofile(minetest.get_modpath("moretrees").."/crafts.lua") dofile(minetest.get_modpath("moretrees").."/leafdecay.lua") -dofile(minetest.get_modpath("moretrees").."/saplings.lua") - -if moretrees.enable_replace_default_trees then - minetest.register_alias("mapgen_tree", "air") - minetest.register_alias("mapgen_leaves", "air") - minetest.register_alias("mapgen_apple", "air") - plantslib:register_generate_plant(moretrees.beech_biome, moretrees.beech_model) -end -- tree spawning setup +if moretrees.enable_beech then + plantslib:register_generate_plant(moretrees.beech_biome, moretrees.beech_model) +end + if moretrees.enable_apple_tree then plantslib:register_generate_plant(moretrees.apple_tree_biome, moretrees.apple_tree_model) end diff --git a/node_defs.lua b/node_defs.lua index a56795d..bc594a8 100644 --- a/node_defs.lua +++ b/node_defs.lua @@ -1,6 +1,7 @@ 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"}, @@ -200,92 +201,13 @@ if moretrees.enable_redefine_apple then }) end -if moretrees.enable_replace_default_trees then - - minetest.register_node(":default:tree", { - description = "Beech Trunk", - tiles = {"moretrees_beech_trunk_top.png", "moretrees_beech_trunk_top.png", "moretrees_beech_trunk.png"}, - groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, - sounds = default.node_sound_wood_defaults(), - }) - - minetest.register_node(":default:leaves", { - description = "Beech Leaves", - drawtype = "allfaces_optional", - visual_scale = 1.3, - tiles = {"moretrees_beech_leaves.png"}, - paramtype = "light", - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, - drop = { - max_items = 1, - items = { - { - -- player will get sapling with 1/20 chance - items = {'default:sapling'}, - rarity = 20, - }, - { - -- player will get leaves only if he get no saplings, - -- this is because max_items is 1 - items = {'default:leaves'}, - } - } - }, - sounds = default.node_sound_leaves_defaults(), - }) - - minetest.register_node(":default:wood", { - description = "Beech Planks", - tiles = {"moretrees_beech_wood.png"}, - groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, - sounds = default.node_sound_wood_defaults(), - }) - - minetest.register_node(":default:sapling", { - description = "Beech Sapling", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"moretrees_beech_sapling.png"}, - inventory_image = "moretrees_beech_sapling.png", - wield_image = "moretrees_beech_sapling.png", - paramtype = "light", - 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}, - sounds = default.node_sound_defaults(), - }) -end - -minetest.register_node("moretrees:beech_trunk_sideways", { - description = "Sideways Beech Trunk", - tiles = { - "moretrees_beech_trunk.png^[transformR90", - "moretrees_beech_trunk.png^[transformR90", - "moretrees_beech_trunk_top.png", - "moretrees_beech_trunk_top.png", - "moretrees_beech_trunk.png^[transformR90", - "moretrees_beech_trunk.png^[transformR90" - }, - 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", -}) - table.insert(moretrees.avoidnodes, "default:jungletree") table.insert(moretrees.avoidnodes, "moretrees:jungletree_trunk") table.insert(moretrees.avoidnodes, "moretrees:fir_trunk") +table.insert(moretrees.avoidnodes, "default:tree") -- For compatibility with old nodes and recently-changed nodes. -minetest.register_alias("moretrees:beech_trunk", "default:tree") -minetest.register_alias("moretrees:beech_leaves", "default:leaves") -minetest.register_alias("moretrees:beech_planks", "default:wood") -minetest.register_alias("moretrees:beech_sapling", "default:sapling") - minetest.register_alias("moretrees:jungletree_trunk", "default:jungletree") minetest.register_alias("moretrees:jungletree_planks", "default:junglewood") minetest.register_alias("moretrees:jungletree_sapling", "default:junglesapling") diff --git a/settings.lua b/settings.lua index 66fefeb..766d193 100644 --- a/settings.lua +++ b/settings.lua @@ -13,13 +13,7 @@ moretrees.enable_birch = true moretrees.enable_spruce = true moretrees.enable_jungle_tree = true moretrees.enable_fir = true - --- Enable replacement of default trees with moretrees beech. --- Note: The code that uses this variable is in leafdecay.lua --- because of how it interacts with settings related to that --- function. - -moretrees.enable_replace_default_trees = true +moretrees.enable_beech = false -- Set this to true to enable leaf decay of all trees except the default ones. From 8a1ebec9513535f6f8f4488599eb7ca5560ead96 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Tue, 9 Apr 2013 00:15:24 -0400 Subject: [PATCH 2/3] Made settings world-specific - look for moretrees_settings.txt in your world folder. If it isn't found, the mod will create it with the contents of default_settings.txt and then read those default settings and use them. Otherwise, it will read its settings from the world folder. --- settings.lua => default_settings.txt | 0 init.lua | 36 ++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 7 deletions(-) rename settings.lua => default_settings.txt (100%) diff --git a/settings.lua b/default_settings.txt similarity index 100% rename from settings.lua rename to default_settings.txt diff --git a/init.lua b/init.lua index 6773e41..d36baf4 100644 --- a/init.lua +++ b/init.lua @@ -18,13 +18,35 @@ moretrees = {} -dofile(minetest.get_modpath("moretrees").."/settings.lua") -dofile(minetest.get_modpath("moretrees").."/tree_models.lua") -dofile(minetest.get_modpath("moretrees").."/biome_defs.lua") -dofile(minetest.get_modpath("moretrees").."/node_defs.lua") -dofile(minetest.get_modpath("moretrees").."/saplings.lua") -dofile(minetest.get_modpath("moretrees").."/crafts.lua") -dofile(minetest.get_modpath("moretrees").."/leafdecay.lua") +-- If the config file is not found in the world directory, copy the default +-- settings to that location and read them in. + +local worldpath=minetest.get_worldpath() +local modpath=minetest.get_modpath("moretrees") + +if io.open(worldpath.."/moretrees_settings.txt","r") == nil then + + dofile(modpath.."/default_settings.txt") + + io.input(modpath.."/default_settings.txt") + io.output(worldpath.."/moretrees_settings.txt") + + local size = 2^13 -- good buffer size (8K) + while true do + local block = io.read(size) + if not block then break end + io.write(block) + end +end + +dofile(worldpath.."/moretrees_settings.txt") + +dofile(modpath.."/tree_models.lua") +dofile(modpath.."/biome_defs.lua") +dofile(modpath.."/node_defs.lua") +dofile(modpath.."/saplings.lua") +dofile(modpath.."/crafts.lua") +dofile(modpath.."/leafdecay.lua") -- tree spawning setup From 85e07fb787104b055fd24b7856d1de35d7e4120c Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Tue, 9 Apr 2013 00:32:15 -0400 Subject: [PATCH 3/3] forgot to test if the file can be read the second time the mod is run. Should be fixed now. --- init.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index d36baf4..90768ab 100644 --- a/init.lua +++ b/init.lua @@ -37,9 +37,10 @@ if io.open(worldpath.."/moretrees_settings.txt","r") == nil then if not block then break end io.write(block) end -end -dofile(worldpath.."/moretrees_settings.txt") +else + dofile(worldpath.."/moretrees_settings.txt") +end dofile(modpath.."/tree_models.lua") dofile(modpath.."/biome_defs.lua")