From 61408dc1b6fd58b9b9754ea37752d5c6e9ff6d94 Mon Sep 17 00:00:00 2001
From: kno10 <erich.schubert@gmail.com>
Date: Thu, 16 Jan 2025 23:58:10 +0100
Subject: [PATCH] Guard logging in mcl_dungeons (#4857)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

No dungeon logging by default.

Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4857
Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
---
 mods/MAPGEN/mcl_dungeons/init.lua | 17 +++++++++++++----
 settingtypes.txt                  |  3 +++
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/mods/MAPGEN/mcl_dungeons/init.lua b/mods/MAPGEN/mcl_dungeons/init.lua
index 24b5c6b4a..29201789d 100644
--- a/mods/MAPGEN/mcl_dungeons/init.lua
+++ b/mods/MAPGEN/mcl_dungeons/init.lua
@@ -2,6 +2,7 @@
 
 mcl_dungeons = {}
 
+local logging = minetest.settings:get_bool("mcl_logging_dungeons", false)
 local mg_name = minetest.get_mapgen_setting("mg_name")
 -- Are dungeons disabled?
 if mcl_vars.mg_dungeons == false or mg_name == "singlenode" then return end
@@ -234,7 +235,9 @@ local function ecb_spawn_dungeon(blockpos, action, calls_remaining, param)
 	-- Check conditions. If okay, start generating
 	if check and (openings_counter < 1 or openings_counter > 5) then return end
 
-	minetest.log("action","[mcl_dungeons] Placing new dungeon at "..minetest.pos_to_string(vector_new(x, y, z)))
+	if logging then
+		minetest.log("action","[mcl_dungeons] Placing new dungeon at "..minetest.pos_to_string(vector_new(x, y, z)))
+	end
 	-- Okay! Spawning starts!
 
 	-- Remember spawner chest positions to set metadata later
@@ -369,7 +372,9 @@ local function ecb_spawn_dungeon(blockpos, action, calls_remaining, param)
 
 		set_node(pos, {name="mcl_chests:chest", param2=facedir})
 		local meta = get_meta(pos)
-		minetest.log("action", "[mcl_dungeons] Filling chest " .. tostring(c) .. " at " .. minetest.pos_to_string(pos))
+		if logging then
+			minetest.log("action", "[mcl_dungeons] Filling chest " .. tostring(c) .. " at " .. minetest.pos_to_string(pos))
+		end
 		mcl_loot.fill_inventory(meta:get_inventory(), "main", mcl_loot.get_multi_loot(loottable, pr), pr)
 	end
 
@@ -404,7 +409,9 @@ local function dungeons_nodes(minp, maxp, blockseed)
 			local z = pr:next(minp.z, maxp.z-dim.z-1)
 			local p1 = vector_new(x, y, z)
 			local p2 = vector_new(x+dim.x+1, y+dim.y+1, z+dim.z+1)
-			minetest.log("verbose","[mcl_dungeons] size=" ..minetest.pos_to_string(dim) .. ", emerge from "..minetest.pos_to_string(p1) .. " to " .. minetest.pos_to_string(p2))
+			if logging then
+				minetest.log("verbose","[mcl_dungeons] size=" ..minetest.pos_to_string(dim) .. ", emerge from "..minetest.pos_to_string(p1) .. " to " .. minetest.pos_to_string(p2))
+			end
 			emerge_area(p1, p2, ecb_spawn_dungeon, {p1=p1, p2=p2, dim=dim, pr=pr})
 		end
 	end
@@ -414,7 +421,9 @@ function mcl_dungeons.spawn_dungeon(p1, _, pr)
 	if not p1 or not pr or not p1.x or not p1.y or not p1.z then return end
 	local dim = dungeonsizes[pr:next(1, #dungeonsizes)]
 	local p2 = vector_new(p1.x+dim.x+1, p1.y+dim.y+1, p1.z+dim.z+1)
-	minetest.log("verbose","[mcl_dungeons] size=" ..minetest.pos_to_string(dim) .. ", emerge from "..minetest.pos_to_string(p1) .. " to " .. minetest.pos_to_string(p2))
+	if logging then
+		minetest.log("verbose","[mcl_dungeons] size=" ..minetest.pos_to_string(dim) .. ", emerge from "..minetest.pos_to_string(p1) .. " to " .. minetest.pos_to_string(p2))
+	end
 	emerge_area(p1, p2, ecb_spawn_dungeon, {p1=p1, p2=p2, dim=dim, pr=pr, dontcheck=true})
 end
 
diff --git a/settingtypes.txt b/settingtypes.txt
index 443d29440..5deaf2d8f 100644
--- a/settingtypes.txt
+++ b/settingtypes.txt
@@ -346,6 +346,9 @@ mcl_logging_mobs_movement (Log Mob Movement) bool false
 # If enabled mapgen timings will be dumped to log
 mcl_logging_mapgen (Chunk generation logging) bool false
 
+# If enabled generated dungeons will be logged
+mcl_logging_dungeons (Dungeons generation logging) bool false
+
 # If enabled generated structures will be logged
 mcl_logging_structures (Structure generation logging) bool false