Skip to content
Snippets Groups Projects
Commit e5c5c263 authored by Auke Kok's avatar Auke Kok Committed by paramat
Browse files

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.
parent 55a16cd2
No related branches found
No related tags found
No related merge requests found
......@@ -116,6 +116,7 @@ local function furnace_node_timer(pos, elapsed)
local srclist, fuellist
local cookable, cooked
local fuel
local update = true
while update do
......@@ -154,7 +155,8 @@ local function furnace_node_timer(pos, elapsed)
-- Furnace ran out of fuel
if cookable then
-- 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
-- No valid fuel in fuel list
......@@ -164,7 +166,6 @@ local function furnace_node_timer(pos, elapsed)
-- Take fuel from fuel list
inv:set_stack("fuel", 1, afterfuel.items[1])
update = true
fuel_totaltime = fuel.time + (fuel_time - fuel_totaltime)
src_time = src_time + elapsed
end
......@@ -179,6 +180,13 @@ local function furnace_node_timer(pos, elapsed)
elapsed = 0
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
--
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment