mirror of
https://git.minetest.land/MineClone2/MineClone2.git
synced 2024-11-30 23:03:45 +01:00
Address most of the next round of review comments
This commit is contained in:
parent
94586e0a6d
commit
75e8ffc74d
@ -59,24 +59,28 @@ local function min_neighbor_fire_age(lowest, pos)
|
|||||||
return lowest
|
return lowest
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_adjacent_fire_age(pos)
|
local function get_adjacent_fire_age(orig_pos)
|
||||||
local lowest_age = nil
|
local lowest_age = nil
|
||||||
-- Unrolled loop to find minimum age (param2) among adjacent fire nodes
|
|
||||||
pos.x = pos.x - 1
|
-- find minimum age (param2) among adjacent fire nodes
|
||||||
|
local pos = vector.offset(orig_pos, 1, 0, 0)
|
||||||
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
||||||
pos.x = pos.x + 2
|
|
||||||
|
pos.x = orig_pos.x + 1
|
||||||
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
||||||
pos.x = pos.x - 1
|
|
||||||
pos.y = pos.y - 1
|
pos.x, pos.y = orig_pos.x, orig_pos.y - 1
|
||||||
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
||||||
pos.y = pos.y + 2
|
|
||||||
|
pos.y = orig_pos.y + 1
|
||||||
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
||||||
pos.y = pos.y - 1
|
|
||||||
pos.z = pos.z - 1
|
pos.y, pos.z = orig_pos.y, orig_pox.z - 1
|
||||||
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
||||||
pos.z = pos.z + 2
|
|
||||||
|
pos.z = orig_pos.z + 1
|
||||||
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
lowest_age = min_neighbor_fire_age(lowest_age, pos)
|
||||||
pos.z = pos.z - 1
|
|
||||||
return lowest_age
|
return lowest_age
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -136,9 +140,7 @@ local function spawn_fire(pos, age, force)
|
|||||||
if age <= 1 then
|
if age <= 1 then
|
||||||
minetest.log("warning","new flash point at "..vector.to_string(pos).." age="..tostring(age)..",backtrace = "..debug.traceback())
|
minetest.log("warning","new flash point at "..vector.to_string(pos).." age="..tostring(age)..",backtrace = "..debug.traceback())
|
||||||
end
|
end
|
||||||
if age >= 255 then
|
if age >= 255 then age = 255 end
|
||||||
age = 255
|
|
||||||
end
|
|
||||||
|
|
||||||
local node = get_node(pos)
|
local node = get_node(pos)
|
||||||
local node_is_flammable = get_item_group(node.name, "flammable")
|
local node_is_flammable = get_item_group(node.name, "flammable")
|
||||||
@ -154,7 +156,7 @@ local function spawn_fire(pos, age, force)
|
|||||||
end
|
end
|
||||||
|
|
||||||
set_node(pos, {name="mcl_fire:fire", param2 = age})
|
set_node(pos, {name="mcl_fire:fire", param2 = age})
|
||||||
minetest.check_single_for_falling({x=pos.x, y=pos.y+1, z=pos.z})
|
minetest.check_single_for_falling(vector.offset(pos,0,1,0))
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("mcl_fire:fire", {
|
minetest.register_node("mcl_fire:fire", {
|
||||||
@ -377,7 +379,7 @@ end
|
|||||||
|
|
||||||
-- [...] a fire block can turn any air block that is adjacent to a flammable block into a fire block. This can happen at a distance of up to one block downward, one block sideways (including diagonals), and four blocks upward of the original fire block (not the block the fire is on/next to).
|
-- [...] a fire block can turn any air block that is adjacent to a flammable block into a fire block. This can happen at a distance of up to one block downward, one block sideways (including diagonals), and four blocks upward of the original fire block (not the block the fire is on/next to).
|
||||||
local function get_ignitable(pos)
|
local function get_ignitable(pos)
|
||||||
return check_aircube(vector.add(pos,vector.new(-1,-1,-1)),vector.add(pos,vector.new(1,4,1)))
|
return check_aircube(vector.offset(pos, -1, -1, -1), vector.offset(pos, 1, 4, 1))
|
||||||
end
|
end
|
||||||
-- Fire spreads from a still lava block similarly: any air block one above and up to one block sideways (including diagonals) or two above and two blocks sideways (including diagonals) that is adjacent to a flammable block may be turned into a fire block.
|
-- Fire spreads from a still lava block similarly: any air block one above and up to one block sideways (including diagonals) or two above and two blocks sideways (including diagonals) that is adjacent to a flammable block may be turned into a fire block.
|
||||||
local function get_ignitable_by_lava(pos)
|
local function get_ignitable_by_lava(pos)
|
||||||
|
Loading…
Reference in New Issue
Block a user