forked from minetest/minetest_game
Furnace: Attempt to fix exploits
The fuel would remain active even if source went empty, giving free cook time to newly inserted items. This patch is supposed to stop this.
This commit is contained in:
parent
55a16cd2c6
commit
e5c5c2637e
@ -116,6 +116,7 @@ local function furnace_node_timer(pos, elapsed)
|
|||||||
local srclist, fuellist
|
local srclist, fuellist
|
||||||
|
|
||||||
local cookable, cooked
|
local cookable, cooked
|
||||||
|
local fuel
|
||||||
|
|
||||||
local update = true
|
local update = true
|
||||||
while update do
|
while update do
|
||||||
@ -154,7 +155,8 @@ local function furnace_node_timer(pos, elapsed)
|
|||||||
-- Furnace ran out of fuel
|
-- Furnace ran out of fuel
|
||||||
if cookable then
|
if cookable then
|
||||||
-- We need to get new fuel
|
-- We need to get new fuel
|
||||||
local fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
local afterfuel
|
||||||
|
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
||||||
|
|
||||||
if fuel.time == 0 then
|
if fuel.time == 0 then
|
||||||
-- No valid fuel in fuel list
|
-- No valid fuel in fuel list
|
||||||
@ -164,7 +166,6 @@ local function furnace_node_timer(pos, elapsed)
|
|||||||
-- Take fuel from fuel list
|
-- Take fuel from fuel list
|
||||||
inv:set_stack("fuel", 1, afterfuel.items[1])
|
inv:set_stack("fuel", 1, afterfuel.items[1])
|
||||||
update = true
|
update = true
|
||||||
|
|
||||||
fuel_totaltime = fuel.time + (fuel_time - fuel_totaltime)
|
fuel_totaltime = fuel.time + (fuel_time - fuel_totaltime)
|
||||||
src_time = src_time + elapsed
|
src_time = src_time + elapsed
|
||||||
end
|
end
|
||||||
@ -179,6 +180,13 @@ local function furnace_node_timer(pos, elapsed)
|
|||||||
elapsed = 0
|
elapsed = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if fuel and fuel_totaltime > fuel.time then
|
||||||
|
fuel_totaltime = fuel.time
|
||||||
|
end
|
||||||
|
if srclist[1]:is_empty() then
|
||||||
|
src_time = 0
|
||||||
|
end
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Update formspec, infotext and node
|
-- Update formspec, infotext and node
|
||||||
--
|
--
|
||||||
|
Loading…
Reference in New Issue
Block a user