fix various bugs
parent
ed8d1e1f00
commit
2adf3a643c
12
README.txt
12
README.txt
|
@ -1,6 +1,6 @@
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
* *
|
* *
|
||||||
* Advanced spawning mod (adv_spawning) 0.0.4 *
|
* Advanced spawning mod (adv_spawning) 0.0.5 *
|
||||||
* *
|
* *
|
||||||
* URL: http://github.com/sapier/adv_spawning *
|
* URL: http://github.com/sapier/adv_spawning *
|
||||||
* Author: sapier *
|
* Author: sapier *
|
||||||
|
@ -187,4 +187,12 @@ Statistics:
|
||||||
cur = 0, -- load caused in last step
|
cur = 0, -- load caused in last step
|
||||||
avg = 0 -- average load caused
|
avg = 0 -- average load caused
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Changelog:
|
||||||
|
|
||||||
|
0.0.5
|
||||||
|
-fix MIN/MAX to always return a number value
|
||||||
|
-fix default activity range to use a initial value if not manually configured
|
||||||
|
-don't calculate statistics with zero dtime
|
||||||
|
-fix invalid debug log using old variable name
|
4
init.lua
4
init.lua
|
@ -8,7 +8,7 @@
|
||||||
--
|
--
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
local version = "0.0.4"
|
local version = "0.0.5"
|
||||||
|
|
||||||
if adv_spawning ~= nil then
|
if adv_spawning ~= nil then
|
||||||
minetest.log("error","MOD: adv_spawning requires adv_spawning variable to be available")
|
minetest.log("error","MOD: adv_spawning requires adv_spawning variable to be available")
|
||||||
|
@ -29,4 +29,4 @@ dofile (adv_modpath .. "/spawn_seed.lua")
|
||||||
|
|
||||||
adv_spawning.initialize()
|
adv_spawning.initialize()
|
||||||
|
|
||||||
print("Advanced spawning mod version " .. version .. " loaded")
|
print("Advanced spawning mod version " .. version .. " loaded")
|
||||||
|
|
42
internal.lua
42
internal.lua
|
@ -16,15 +16,15 @@
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function adv_spawning.MAX(a,b)
|
function adv_spawning.MAX(a,b)
|
||||||
if a == nil then
|
if a == nil then
|
||||||
return b
|
return (b or 0)
|
||||||
end
|
end
|
||||||
if b == nil then
|
if b == nil then
|
||||||
return a
|
return (a or 0)
|
||||||
end
|
end
|
||||||
if a > b then
|
if a > b then
|
||||||
return a
|
return (a or 0)
|
||||||
else
|
else
|
||||||
return b
|
return (b or 0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -36,15 +36,15 @@ end
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function adv_spawning.MIN(a,b)
|
function adv_spawning.MIN(a,b)
|
||||||
if a == nil then
|
if a == nil then
|
||||||
return b
|
return (b or 0)
|
||||||
end
|
end
|
||||||
if b == nil then
|
if b == nil then
|
||||||
return a
|
return (a or 0)
|
||||||
end
|
end
|
||||||
if a > b then
|
if a > b then
|
||||||
return b
|
return (b or 0)
|
||||||
else
|
else
|
||||||
return a
|
return (a or 0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -64,7 +64,14 @@ function adv_spawning.initialize()
|
||||||
adv_spawning.max_spawning_frequency_hz = 5
|
adv_spawning.max_spawning_frequency_hz = 5
|
||||||
adv_spawning.max_mapgen_tries_per_step = 3
|
adv_spawning.max_mapgen_tries_per_step = 3
|
||||||
|
|
||||||
adv_spawning.active_range = minetest.setting_get("active_block_range") * 16
|
adv_spawning.active_range = minetest.setting_get("active_block_range")
|
||||||
|
|
||||||
|
if (adv_spawning.active_range == nil) then
|
||||||
|
adv_spawning.log("info", "No \"active_block_range\" set, defaulting to 5")
|
||||||
|
adv_spawning.active_range = 5
|
||||||
|
else
|
||||||
|
adv_spawning.active_range = adv_spawning.active_range * 16
|
||||||
|
end
|
||||||
|
|
||||||
adv_spawning.spawner_definitions = {}
|
adv_spawning.spawner_definitions = {}
|
||||||
adv_spawning.mapgen_jobqueue = {}
|
adv_spawning.mapgen_jobqueue = {}
|
||||||
|
@ -172,6 +179,11 @@ end
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function adv_spawning.global_onstep(dtime)
|
function adv_spawning.global_onstep(dtime)
|
||||||
|
|
||||||
|
if dtime == 0 then
|
||||||
|
-- don't try to calc differences for no time
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
adv_spawning.statistics.step.last =
|
adv_spawning.statistics.step.last =
|
||||||
math.floor(adv_spawning.quota_reload - adv_spawning.quota_left + 0.5)
|
math.floor(adv_spawning.quota_reload - adv_spawning.quota_left + 0.5)
|
||||||
|
|
||||||
|
@ -372,7 +384,9 @@ function adv_spawning.handlespawner(spawnername,spawnerpos,minp,maxp,ignore_acti
|
||||||
spawndef.relative_height,
|
spawndef.relative_height,
|
||||||
spawndef.spawn_inside) then
|
spawndef.spawn_inside) then
|
||||||
adv_spawning.log("info",
|
adv_spawning.log("info",
|
||||||
minetest.pos_to_string(new_pos) .. " didn't meet surface check")
|
minetest.pos_to_string(new_pos) ..
|
||||||
|
" didn't meet surface check, is: " ..
|
||||||
|
minetest.get_node({x=new_pos.x,z=new_pos.z,y=new_pos.y-1}).name)
|
||||||
return false,nil
|
return false,nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1145,7 +1159,7 @@ function adv_spawning.check_flat_area(new_pos,flat_area,spawn_inside,surfaces)
|
||||||
|
|
||||||
if #ground_nodes > current_deviation then
|
if #ground_nodes > current_deviation then
|
||||||
adv_spawning.log("info","check_flat_area: " .. range .. " "
|
adv_spawning.log("info","check_flat_area: " .. range .. " "
|
||||||
..dump(deviation).. " " .. #ground_nodes )
|
..dump(current_deviation).. " " .. #ground_nodes )
|
||||||
--adv_spawning.dump_area({x=back_left.x,y=new_pos.y-1,z=back_left.z},
|
--adv_spawning.dump_area({x=back_left.x,y=new_pos.y-1,z=back_left.z},
|
||||||
-- front_right)
|
-- front_right)
|
||||||
return false
|
return false
|
||||||
|
@ -1155,7 +1169,8 @@ function adv_spawning.check_flat_area(new_pos,flat_area,spawn_inside,surfaces)
|
||||||
minetest.find_nodes_in_area(back_left, front_right, surfaces)
|
minetest.find_nodes_in_area(back_left, front_right, surfaces)
|
||||||
|
|
||||||
if #ground_nodes < required_nodes then
|
if #ground_nodes < required_nodes then
|
||||||
adv_spawning.log("info","check_flat_area: " .. range .. " " ..dump(deviation).. " " .. #ground_nodes )
|
adv_spawning.log("info","check_flat_area: " .. range .. " " ..
|
||||||
|
dump(current_deviation).. " " .. #ground_nodes )
|
||||||
--adv_spawning.dump_area({x=back_left.x,y=new_pos.y-1,z=back_left.z},
|
--adv_spawning.dump_area({x=back_left.x,y=new_pos.y-1,z=back_left.z},
|
||||||
-- front_right)
|
-- front_right)
|
||||||
return false
|
return false
|
||||||
|
@ -1169,7 +1184,8 @@ function adv_spawning.check_flat_area(new_pos,flat_area,spawn_inside,surfaces)
|
||||||
minetest.find_nodes_in_area(back_left, front_right, spawn_inside)
|
minetest.find_nodes_in_area(back_left, front_right, spawn_inside)
|
||||||
|
|
||||||
if #inside_nodes < required_nodes then
|
if #inside_nodes < required_nodes then
|
||||||
adv_spawning.log("info","check_flat_area: " .. range .. " " .. dump(deviation) .. " "
|
adv_spawning.log("info","check_flat_area: " .. range .. " " ..
|
||||||
|
dump(current_deviation) .. " "
|
||||||
.. #inside_nodes .. "/" .. required_nodes)
|
.. #inside_nodes .. "/" .. required_nodes)
|
||||||
--adv_spawning.dump_area({x=back_left.x,y=new_pos.y-1,z=back_left.z},
|
--adv_spawning.dump_area({x=back_left.x,y=new_pos.y-1,z=back_left.z},
|
||||||
-- front_right)
|
-- front_right)
|
||||||
|
|
Loading…
Reference in New Issue