add default spawn block
parent
49179a886f
commit
f0d4004f45
|
@ -37,6 +37,7 @@ Note that the spawn generation is performed in the background on a timer, allowi
|
|||
* default `true`
|
||||
* if `false`, will randomize around the static spawn point
|
||||
* `rspawn.kick_on_fail` - whether to kick the player if a randomized spawn cannot be set, default `false`
|
||||
* `rspawn.spawn_block` - place this custom block under the user's spawn point
|
||||
* `rspawn.debug` - whether to print debugging messages, default `false`
|
||||
|
||||
## License
|
||||
|
|
12
init.lua
12
init.lua
|
@ -31,6 +31,7 @@ rspawn.kick_on_fail = notnil_or(false, minetest.settings:get_bool("rspawn.kick_o
|
|||
rspawn.max_pregen_spawns = tonumber(minetest.settings:get("rspawn.max_pregen") or 5)
|
||||
rspawn.search_radius = tonumber(minetest.settings:get("rspawn.search_radius") or 32)
|
||||
rspawn.gen_frequency = tonumber(minetest.settings:get("rspawn.gen_frequency") or 30)
|
||||
rspawn.spawn_block = minetest.settings:get("rspawn.spawn_block")
|
||||
|
||||
dofile(mpath.."/src/data.lua")
|
||||
dofile(mpath.."/src/commands.lua")
|
||||
|
@ -42,6 +43,12 @@ dofile(mpath.."/src/debugging.lua")
|
|||
|
||||
rspawn:spawnload()
|
||||
|
||||
local function set_default_node(pos)
|
||||
if rspawn.spawn_block then
|
||||
minetest.set_node(pos, {name=rspawn.spawn_block})
|
||||
end
|
||||
end
|
||||
|
||||
local function daylight_above(min_daylight, pos)
|
||||
local level = minetest.get_node_light(pos, 0.5)
|
||||
return min_daylight <= level
|
||||
|
@ -87,7 +94,10 @@ function rspawn:newspawn(pos, radius)
|
|||
|
||||
if #validnodes > 0 then
|
||||
rspawn:debug("Valid spawn points found with radius "..tostring(radius))
|
||||
return validnodes[math.random(1,#validnodes)]
|
||||
local newpos = validnodes[math.random(1,#validnodes)]
|
||||
set_default_node({x=newpos.x,y=newpos.y-1,z=newpos.z})
|
||||
|
||||
return newpos
|
||||
else
|
||||
rspawn:debug("No valid air nodes")
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue