Debug output made optional in settings
parent
26a2749bfc
commit
0b504e9cb4
|
@ -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!
|
||||
|
||||
|
|
|
@ -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!
|
||||
|
|
60
cottages.lua
60
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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
default
|
||||
mobs
|
||||
handle_schematics?
|
||||
protector?
|
||||
fireflies?
|
||||
mobs_monster?
|
||||
doors?
|
||||
|
|
14
init.lua
14
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)
|
||||
|
|
|
@ -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,
|
||||
|
|
2
mod.conf
2
mod.conf
|
@ -1,4 +1,4 @@
|
|||
name = witches
|
||||
descriptions = adds witches and their cottages
|
||||
depends = default, mobs
|
||||
optional_depends = protection
|
||||
optional_depends = protector
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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()))
|
||||
|
|
|
@ -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 = {}
|
||||
|
|
Loading…
Reference in New Issue