mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2025-04-15 20:25:16 +02:00
Resolve some review comments
This commit is contained in:
parent
35fafc9928
commit
e4b5673642
3 changed files with 17 additions and 13 deletions
mods
|
@ -51,6 +51,9 @@ function table.find(t, item)
|
|||
return nil
|
||||
end
|
||||
|
||||
---@param a table
|
||||
---@param b table
|
||||
---@return table
|
||||
function table.intersect(a, b)
|
||||
local values_map = {}
|
||||
|
||||
|
@ -60,7 +63,7 @@ function table.intersect(a, b)
|
|||
-- Get all the values that are in both tables
|
||||
local result = {}
|
||||
for v,count in pairs(values_map) do
|
||||
if count == 2 then table.insert(result, v) end
|
||||
if count == 2 then result[#result + 1] = v end
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
|
||||
function mcl_mobs.check_line_of_sight(origin, target)
|
||||
local raycast = minetest.raycast(origin, target, false, true)
|
||||
local raycast = core.raycast(origin, target, false, true)
|
||||
|
||||
local los_blocked = false
|
||||
for hitpoint in raycast do
|
||||
if hitpoint.type == "node" then
|
||||
--TODO type object could block vision, for example chests
|
||||
local node = minetest.get_node(minetest.get_pointed_thing_position(hitpoint))
|
||||
--TODO: type object could block vision, for example minecarts
|
||||
local node = core.get_node(core.get_pointed_thing_position(hitpoint))
|
||||
|
||||
if node.name ~= "air" then
|
||||
local nodef = minetest.registered_nodes[node.name]
|
||||
local nodef = core.registered_nodes[node.name]
|
||||
if nodef and nodef.walkable then
|
||||
los_blocked = true
|
||||
break
|
||||
|
|
|
@ -507,7 +507,7 @@ end
|
|||
local function get_water_spawn(p)
|
||||
local nn = minetest.find_nodes_in_area(vector.offset(p,-2,-1,-2),vector.offset(p,2,-15,2),{"group:water"})
|
||||
if nn and #nn > 0 then
|
||||
return nn[math.random(#nn)]
|
||||
return nn[math_random(#nn)]
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -970,7 +970,7 @@ if mobs_spawn then
|
|||
cumulative_chance = cumulative_chance + spawn_table[i].chance
|
||||
end
|
||||
|
||||
local mob_chance_offset = math_random(1, 1e6) / 1e6 * cumulative_chance
|
||||
local mob_chance_offset = math_random() * cumulative_chance
|
||||
--minetest.log("action", "mob_chance_offset = "..tostring(mob_chance_offset).."/"..tostring(cumulative_chance))
|
||||
|
||||
for i = 1,#spawn_table do
|
||||
|
@ -984,7 +984,9 @@ if mobs_spawn then
|
|||
mob_chance_offset = mob_chance_offset - mob_chance
|
||||
end
|
||||
|
||||
assert(not "failed")
|
||||
-- We should never reach this point
|
||||
-- TODO: remove this before merging
|
||||
error("failed")
|
||||
end
|
||||
|
||||
local spawn_lists = {}
|
||||
|
@ -1000,7 +1002,7 @@ if mobs_spawn then
|
|||
end
|
||||
local cap_space_passive = mob_cap_space(pos, "passive", mob_counts_close, mob_counts_wide, cap_space_hostile, cap_space_non_hostile )
|
||||
if cap_space_passive > 0 then
|
||||
if math.random(100) < peaceful_percentage_spawned then
|
||||
if math_random(100) < peaceful_percentage_spawned then
|
||||
spawn_passive = true
|
||||
end
|
||||
end
|
||||
|
@ -1103,7 +1105,7 @@ if mobs_spawn then
|
|||
local group_min = mob_def_ent.spawn_in_group_min or 1
|
||||
if not group_min then group_min = 1 end
|
||||
|
||||
local amount_to_spawn = math.random(group_min, spawn_in_group)
|
||||
local amount_to_spawn = math_random(group_min, spawn_in_group)
|
||||
mcl_log("Spawning quantity: " .. amount_to_spawn)
|
||||
amount_to_spawn = math.min(amount_to_spawn, cap_space_available)
|
||||
mcl_log("throttled spawning quantity: " .. amount_to_spawn)
|
||||
|
@ -1175,7 +1177,7 @@ if mobs_spawn then
|
|||
timer = next_spawn
|
||||
if timer > MAX_SPAWN_CYCLE_TIME then timer = MAX_SPAWN_CYCLE_TIME end
|
||||
|
||||
if took > debug_time_threshold then
|
||||
if logging and took > debug_time_threshold then
|
||||
minetest.log("action","[mcl_mobs] took "..took.." us")
|
||||
minetest.log("Next spawn attempt in "..tostring(timer))
|
||||
end
|
||||
|
@ -1226,7 +1228,7 @@ function mob_class:check_despawn(pos, dtime)
|
|||
mcl_util.remove_entity(self)
|
||||
return true
|
||||
elseif self.lifetimer <= 10 then
|
||||
if math.random(10) < 4 then
|
||||
if math_random(10) < 4 then
|
||||
self.despawn_immediately = true
|
||||
else
|
||||
self.lifetimer = 20
|
||||
|
|
Loading…
Add table
Reference in a new issue