From 0b504e9cb416e0cce2473730ce5e6333510519d2 Mon Sep 17 00:00:00 2001 From: francisco athens Date: Sun, 13 Feb 2022 15:33:07 -0800 Subject: [PATCH] Debug output made optional in settings --- README.md | 6 ++--- changelog | 3 ++- cottages.lua | 60 ++++++++++++++++++++++++------------------------ depends.txt | 2 +- init.lua | 14 ++++++++--- items.lua | 2 +- mod.conf | 2 +- settingtypes.txt | 16 ++++--------- utilities.lua | 10 ++++---- witches.lua | 8 +++---- 10 files changed, 62 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index fe988e9..2d2e5ef 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,11 @@ Witches inhabit the land! They are currently in development but, can already: * Witches have magic! They will defend themselves and each other against aggressive players and mobs! -* If you are repeatedly helpful to a witch... +* If you are repeatedly helpful to a witch something good is likely to happen! * New Witch cottage code with no additional mod requirements! -* If Protection mod is available and enabled, Witches will no build in these areas! +* If protector (or similar) mod is available and enabled, Witches will no build in these areas! * Some cottages will spawn over a dungeon if they are near the surface @@ -39,7 +39,7 @@ Witches inhabit the land! They are currently in development but, can already: * Mobs Redo git repository: https://notabug.org/TenPlus1/mobs_redo ## Optional Mods: -* Protection to prevent Witches from placing cottages in protected areas! +* protector (or similar) - to prevent Witches from placing cottages in protected areas! * Any mobs from any mobs mod attacking Witches may be turned into a sheep! diff --git a/changelog b/changelog index b7c56c5..a2815ef 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,5 @@ - 2022/02/12: Witches honor protected nodes ("protection" mod support) + 2022/02/13: Debug output can be enabled from game Settings tab > All Settings > Mods > witches + 2022/02/12: Witches honor protected nodes ("protector" mod support) 2020/08/10: Testing new cottage building code. 2020/08/06: Fixed witches not registered when handle_schematics is not loaded! D'oh! 2020/08/01: Witches have two new wands from Damon and Simone! diff --git a/cottages.lua b/cottages.lua index 2aee5db..6461cae 100644 --- a/cottages.lua +++ b/cottages.lua @@ -65,13 +65,13 @@ function witches.grounding(self,vol_vec,required_list,exception_list,replacement local protected_area = minetest.is_area_protected(ck_pos1, ck_pos2, "", 2) if #exceptions and #exceptions >= 1 then - print("exceptions count = "..#exceptions) + witches.debug("exceptions count = "..#exceptions) return elseif protected_area then - print("protected area found at "..mtpts(protected_area)) + witches.debug("protected area found at "..mtpts(protected_area)) return else - print("SUCCESS!".."pos1 = ".. mtpts(pos1).."pos2 = ".. mtpts(pos2)) + witches.debug("SUCCESS!".."pos1 = ".. mtpts(pos1).."pos2 = ".. mtpts(pos2)) local volume = {pos1,pos2} local ck_volume = {ck_pos1,ck_pos2} @@ -366,10 +366,10 @@ function witches.generate_cottage(pos1,pos2,params) --local door_pos= p_door_pos - print("door: "..mts(door_pos)) + witches.debug("door: "..mts(door_pos)) for k,v in pairs(door_pos) do - print(mts(v)) + witches.debug(mts(v)) local f_pos1 = vector.new(v) --get the offsets f_pos1[v.fp[1] ] = f_pos1[v.fp[1] ] + v.fp[2] @@ -418,7 +418,7 @@ function witches.generate_cottage(pos1,pos2,params) local window_pos = {w ={},n={},e={},s={}} local az = math.floor((area.z-2)/2) local ax = math.floor((area.x-2)/2) - print("az/ax= "..az.." "..ax) + witches.debug("az/ax= "..az.." "..ax) for i=1, az do local wz = {x = ffpos1.x, z = ffpos1.z+math.random(2,area.z-2), y = ffpos1.y+2, p= "z", fp = {"x", 1} } table.insert(window_pos.w,wz) @@ -431,18 +431,18 @@ function witches.generate_cottage(pos1,pos2,params) local sx = {x = ffpos1.x+math.random(2,area.x-2), z = ffpos1.z, y = ffpos1.y+2, p= "x", fp = {"z", 1} } table.insert(window_pos.s,sx) end - print(mts(window_pos)) + witches.debug(mts(window_pos)) for k,v in pairs(door_pos) do --v is the door pos vector table for i=v[v.p]+1,v[v.p]-1,-1 do --start with lateral axis (p) pos on either side of door - print("doorpos "..v.p.." "..i) + witches.debug("doorpos "..v.p.." "..i) for j,_ in ipairs(window_pos[k]) do --we want the vector table value of each - print("windowpos "..mts(window_pos[k][j]).." vs "..i) + witches.debug("windowpos "..mts(window_pos[k][j]).." vs "..i) if window_pos[k][j] and i == window_pos[k][j][v.p] then - print("windowpos "..window_pos[k][j][v.p].." vs "..i) - print("removing window_pos[k][j][v.p] = ".. mtpts(window_pos[k][j])) + witches.debug("windowpos "..window_pos[k][j][v.p].." vs "..i) + witches.debug("removing window_pos[k][j][v.p] = ".. mtpts(window_pos[k][j])) --table.remove(window_pos[k],j) window_pos[k][j] = nil end @@ -457,7 +457,7 @@ function witches.generate_cottage(pos1,pos2,params) for i=1,window_height do - print("window set: "..mtpts(v)) + witches.debug("window set: "..mtpts(v)) minetest.set_node({x= v.x, y=v.y-1+i, z=v.z},{ name=window_node }) @@ -494,7 +494,7 @@ function witches.generate_cottage(pos1,pos2,params) if math.random() < .5 then local ck = minetest.get_node(ck_pos1) - print("ck: "..ck.name) + witches.debug("ck: "..ck.name) if ck.name ~= window_node then minetest.set_node(t_pos1,{ name="default:torch_wall", @@ -505,7 +505,7 @@ function witches.generate_cottage(pos1,pos2,params) end else local ck = minetest.get_node(ck_pos2) - print("ck: "..ck.name) + witches.debug("ck: "..ck.name) if ck.name ~= window_node then minetest.set_node(t_pos2,{ name="default:torch_wall", @@ -529,8 +529,8 @@ function witches.generate_cottage(pos1,pos2,params) f_pos1[v.fp[1] ] = f_pos1[v.fp[1] ]+v.fp[2] f_pos1.y = f_pos1.y-1 - print("window:"..mtpts(v)) - print("furniture:"..mtpts(f_pos1)) + witches.debug("window:"..mtpts(v)) + witches.debug("furniture:"..mtpts(f_pos1)) local dir1=vector.direction(f_pos1,v) local dir2=vector.direction(v,f_pos1) local f_facedir1 = minetest.dir_to_facedir(dir1) @@ -555,8 +555,8 @@ function witches.generate_cottage(pos1,pos2,params) paramtype2 = "facedir", param2 = f_facedir2 }) - print("bed1:"..mtpts(f_pos1)) - print("bed2:"..mtpts(f_pos2)) + witches.debug("bed1:"..mtpts(f_pos1)) + witches.debug("bed2:"..mtpts(f_pos2)) minetest.set_node(f_pos2,{ name=f_name, paramtype2 = "facedir", @@ -793,7 +793,7 @@ local stovepipe_pos = {} end end - print("ladder l_pos: "..mts(l_pos)) + witches.debug("ladder l_pos: "..mts(l_pos)) --extend the stovepipe if furnace_pos and furnace_pos.x then --print("furnace pos: "..mtpts(furnace_pos)) @@ -809,7 +809,7 @@ local stovepipe_pos = {} end --drop a ladder from the center of the gable, avoiding any doors or windows - print("door: ".. mts(door_pos)) + witches.debug("door: ".. mts(door_pos)) if door_pos and l_pos then for _,d in pairs(door_pos) do for k,l in pairs(l_pos) do @@ -824,10 +824,10 @@ local stovepipe_pos = {} for v,_ in pairs(window_pos) do for _,w in ipairs(window_pos[v]) do for k,l in pairs(l_pos) do - print("possible window before check: ".. mtpts(w)) - print("possible ladder before check: ".. mtpts(l)) + witches.debug("possible window before check: ".. mtpts(w)) + witches.debug("possible ladder before check: ".. mtpts(l)) if math.ceil(l.x) == w.x and math.ceil(l.z) == w.z then - print("removing".. mtpts(l_pos[k])) + witches.debug("removing".. mtpts(l_pos[k])) table.remove(l_pos,k) end end @@ -835,7 +835,7 @@ local stovepipe_pos = {} end end - print("possible ladder: ".. mts(l_pos)) + witches.debug("possible ladder: ".. mts(l_pos)) if l_pos and #l_pos >= 1 then local lpn = math.random(#l_pos) @@ -850,7 +850,7 @@ local stovepipe_pos = {} local dir1=vector.direction(fpos,lpc) local dir1_wm = minetest.dir_to_wallmounted(dir1) - print("ladder chosen: ".. mts(lpc)) + witches.debug("ladder chosen: ".. mts(lpc)) lpc[ lpc.fp[1] ] = lpc[ lpc.fp[1] ] + lpc.fp[2] --l_pos.y = l_pos.y-1 @@ -863,18 +863,18 @@ local stovepipe_pos = {} end - print("ladder: "..mtpts(lpc)) + witches.debug("ladder: "..mtpts(lpc)) else local loftpos1 = {x= sfpos1.x+2, y = sfpos1.y+1, z=sfpos1.z+1} local loftpos2 = {x= sfpos2.x-2, y = sfpos1.y+1, z=sfpos2.z-1} local loftarea = vector.subtract(loftpos2,loftpos1) - print(dump(loftpos1)) - print(dump(loftpos2)) - print(dump(loftarea)) + witches.debug(dump(loftpos1)) + witches.debug(dump(loftpos2)) + witches.debug(dump(loftarea)) for i=1, loftarea.z+1 do for j=1, loftarea.x+1 do local pos = {x= loftpos1.x-1 + j, y = loftpos1.y, z = loftpos1.z-1 + i} - print(mts(pos)) + witches.debug(mts(pos)) minetest.set_node(pos, {name = "air"}) end end diff --git a/depends.txt b/depends.txt index becab14..43784d1 100644 --- a/depends.txt +++ b/depends.txt @@ -1,6 +1,6 @@ default mobs -handle_schematics? +protector? fireflies? mobs_monster? doors? diff --git a/init.lua b/init.lua index 8ccd5f6..5eab939 100644 --- a/init.lua +++ b/init.lua @@ -5,7 +5,7 @@ local path = minetest.get_modpath("witches") witches = {} -witches.version = "20220212" +witches.version = "20220213" print("This is Witches "..witches.version.."!") -- Strips any kind of escape codes (translation, colors) from a string @@ -41,12 +41,20 @@ local function print_s(input) end local S = minetest.get_translator("witches") +local settings = minetest.settings + +function witches.debug(input) + local witches_debug = settings:get_bool("witches_debug") + if witches_debug then + print_s(input) + end +end local witches_version = witches.version if mobs.version then if tonumber(mobs.version) >= tonumber(20200516) then - print_s(S("Mobs Redo 20200516 or greater found!")) + print_s(S("Mobs Redo 20200516 or greater found! ("..mobs.version..")")) else print_s(S("You should find a more recent version of Mobs Redo!")) print_s(S("https://notabug.org/TenPlus1/mobs_redo")) @@ -87,7 +95,7 @@ function witches.generate(witch_types,witch_template) g_template[x] = g_type[x] end - print_s("Registering the "..g_template.description..": witches:witch_"..k) + witches.debug("Registering the "..g_template.description..": witches:witch_"..k) if g_template.lore then print_s(" "..g_template.lore) end --print_s("resulting template: " ..dump(g_template)) mobs:register_mob("witches:witch_"..k, g_template) diff --git a/items.lua b/items.lua index 10c8e33..64a3600 100644 --- a/items.lua +++ b/items.lua @@ -54,7 +54,7 @@ minetest.register_entity("witches:witch_tool_wand_sp",witch_tool_wand_sp) minetest.register_tool("witches:witch_wand_btb", { - description = "Better Thank Bacon!", + description = "Better Than Bacon!", inventory_image = "witches_wand_better_than_bacon.png", tool_capabilities = { full_punch_interval = 1.2, diff --git a/mod.conf b/mod.conf index 6d4e837..e62f136 100644 --- a/mod.conf +++ b/mod.conf @@ -1,4 +1,4 @@ name = witches descriptions = adds witches and their cottages depends = default, mobs -optional_depends = protection +optional_depends = protector diff --git a/settingtypes.txt b/settingtypes.txt index fbce870..44b98bc 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -1,16 +1,8 @@ -#maximum number of houses per mapchunk -witches_house_max_per_mapchunk (maximum number of houses per mapchunk) int 2 - -#average number of houses to mapchunks over the world -witches_houses_wanted_per_mapchunk (average number of houses to mapchunks over the world) float .05 - - -# chance (1-99) of a witch house spawning over a dungeon instead of anywhere else (requires Sokomines handle_schematics mod!) -witches_dungeon_cellar_chance (chance as decimal like .5 of a witch house spawning over a dungeon instead of anywhere else) float .5 - -# depth (1-20) maximum depth of a dungeon to spawn a witch house over (requires Sokomines handle_schematics mod!) -witches_dungeon_cellar_depth (maximum depth 0 to -20 of a dungeon to spawn a witch house over) int -5 +# debug mode +witches_debug (enable debug) bool false + + diff --git a/utilities.lua b/utilities.lua index b9d70f4..af32cbe 100644 --- a/utilities.lua +++ b/utilities.lua @@ -44,7 +44,7 @@ local function quest_dialogs(self) S("Why must my task require the @1? ",self.item_request.item.desc), S("Is it so difficult to find the @1? ",self.item_request.item.desc), S("Wherefor about this land art the @1? ",self.item_request.item.desc), - S("Must there be but a few of the @1 about? ",self.item_request.item.desc), + S("Must not there be but a few of the @1 about? ",self.item_request.item.desc), S("Could I trouble you for some kind of @1? ",self.item_request.item.desc), S("The @1 would make my collection complete! ",self.item_request.item.desc), S("I sense the @1 are not far away...",self.item_request.item.desc), @@ -234,11 +234,11 @@ end function witches.gift(self, pname, drop_chance_min, drop_chance_max, item_wear ) if not pname then - print("no player defined!") + witches.debug("no player defined!") return end if not self.drops then - print("no droplist defined in this mob!") + witches.debug("no droplist defined in this mob!") return end local list = {} @@ -355,7 +355,7 @@ function witches.claim_witches_chest(self) -- if sn then print(sn) end local o = meta:get_string("owner") if o and sn and sn == o then - print("unbound chest: "..sn) + witches.debug("unbound chest: "..sn) meta:set_string("owner", self.secret_name) meta:set_string("infotext", self.secret_name.."'s sealed chest of ".. sn) @@ -523,7 +523,7 @@ function witches.quests(self, clicker) if var1 == var2 then self.dev_mode = pname - print("dev mode active for: "..pname) + witches.debug("dev mode active for: "..pname) end --print("we are holding a "..dump(item:get_name())) diff --git a/witches.lua b/witches.lua index 02bd93f..0812d90 100644 --- a/witches.lua +++ b/witches.lua @@ -17,7 +17,7 @@ local spawning = { day_toggle = nil, on_spawn = function(self) local pos = self.object:get_pos() - print(self.secret_name.." spawned at ".. minetest.pos_to_string(vector.round(pos))) + witches.debug(self.secret_name.." spawned at ".. minetest.pos_to_string(vector.round(pos))) end, }, @@ -34,7 +34,7 @@ local spawning = { day_toggle = nil, on_spawn = function(self) local pos = self.object:get_pos() - print(self.secret_name.." spawned at ".. minetest.pos_to_string(vector.round(pos))) + witches.debug(self.secret_name.." spawned at ".. minetest.pos_to_string(vector.round(pos))) end @@ -88,7 +88,7 @@ witches.witch_types = { local volume = witches.grounding(self) if volume then - print("volume passed: "..dump(volume)) + witches.debug("volume passed: "..dump(volume)) local pos = self.object:get_pos() pos.y = pos.y+3 @@ -296,7 +296,7 @@ witches.witch_template = { --your average witch, --self.item_request.text = witches.generate_name(witches.quest_dialogs, {"item_request"}) --print(self.secret_name.." has spawned") --print("self: "..dump(self.follow)) - -- print("self properties "..dump(self.object:get_properties())) + --print("self properties "..dump(self.object:get_properties())) --self.follow = {} if not self.follow or #self.follow < 1 or type(self.follow) == string then self.follow = {}