From 8e976d919196fd10f6cf394bf72ecf302ad33876 Mon Sep 17 00:00:00 2001 From: cora Date: Wed, 22 Jun 2022 16:37:44 +0200 Subject: [PATCH] Do not log generation of terrain features this leads to excessive io otherwise --- mods/MAPGEN/mcl_structures/api.lua | 17 +++++++++++++---- mods/MAPGEN/mcl_terrain_features/init.lua | 5 +++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/mods/MAPGEN/mcl_structures/api.lua b/mods/MAPGEN/mcl_structures/api.lua index ed589e75cf..5bcee086a5 100644 --- a/mods/MAPGEN/mcl_structures/api.lua +++ b/mods/MAPGEN/mcl_structures/api.lua @@ -2,6 +2,7 @@ mcl_structures.registered_structures = {} function mcl_structures.place_structure(pos, def, pr) if not def then return end + local logging = not def.terrain_feature local y_offset = 0 if type(def.y_offset) == "function" then y_offset = def.y_offset(pr) @@ -9,22 +10,30 @@ function mcl_structures.place_structure(pos, def, pr) y_offset = def.y_offset end if def.on_place and not def.on_place(pos,def,pr) then - minetest.log("warning","[mcl_structures] "..def.name.." at "..minetest.pos_to_string(pos).." not placed. Conditions not satisfied.") + if logging then + minetest.log("warning","[mcl_structures] "..def.name.." at "..minetest.pos_to_string(pos).." not placed. Conditions not satisfied.") + end return false end if def.filenames then local file = def.filenames[pr:next(1,#def.filenames)] local pp = vector.offset(pos,0,y_offset,0) mcl_structures.place_schematic(pp, file, "random", nil, true, "place_center_x,place_center_z",def.after_place,pr,{pos,def}) - minetest.log("action","[mcl_structures] "..def.name.." placed at "..minetest.pos_to_string(pos)) + if logging then + minetest.log("action","[mcl_structures] "..def.name.." placed at "..minetest.pos_to_string(pos)) + end return true elseif def.place_func and def.place_func(pos,def,pr) then if not def.after_place or ( def.after_place and def.after_place(pos,def,pr) ) then - minetest.log("action","[mcl_structures] "..def.name.." placed at "..minetest.pos_to_string(pos)) + if logging then + minetest.log("action","[mcl_structures] "..def.name.." placed at "..minetest.pos_to_string(pos)) + end return true end end - minetest.log("warning","[mcl_structures] placing "..def.name.." failed at "..minetest.pos_to_string(pos)) + if logging then + minetest.log("warning","[mcl_structures] placing "..def.name.." failed at "..minetest.pos_to_string(pos)) + end end function mcl_structures.register_structure(name,def,nospawn) --nospawn means it will be placed by another (non-nospawn) structure that contains it's structblock i.e. it will not be placed by mapgen directly diff --git a/mods/MAPGEN/mcl_terrain_features/init.lua b/mods/MAPGEN/mcl_terrain_features/init.lua index 34f29e38dc..60555f0fff 100644 --- a/mods/MAPGEN/mcl_terrain_features/init.lua +++ b/mods/MAPGEN/mcl_terrain_features/init.lua @@ -80,6 +80,7 @@ end mcl_structures.register_structure("lavapool",{ place_on = {"group:sand", "group:dirt", "group:stone"}, + terrain_feature = true, noise_params = { offset = 0, scale = 0.0000022, @@ -99,6 +100,7 @@ mcl_structures.register_structure("lavapool",{ mcl_structures.register_structure("water_lake",{ place_on = {"group:dirt","group:stone"}, + terrain_feature = true, noise_params = { offset = 0, scale = 0.000032, @@ -119,6 +121,7 @@ mcl_structures.register_structure("water_lake",{ mcl_structures.register_structure("basalt_column",{ place_on = {"mcl_blackstone:blackstone","mcl_blackstone:basalt"}, + terrain_feature = true, spawn_by = {"air"}, num_spawn_by = 2, noise_params = { @@ -155,6 +158,7 @@ mcl_structures.register_structure("basalt_column",{ }) mcl_structures.register_structure("basalt_pillar",{ place_on = {"mcl_blackstone:blackstone","mcl_blackstone:basalt"}, + terrain_feature = true, noise_params = { offset = 0, scale = 0.001, @@ -192,6 +196,7 @@ mcl_structures.register_structure("lavadelta",{ place_on = {"mcl_blackstone:blackstone","mcl_blackstone:basalt"}, spawn_by = {"mcl_blackstone:basalt","mcl_blackstone:blackstone"}, num_spawn_by = 2, + terrain_feature = true, noise_params = { offset = 0, scale = 0.01,