forked from minetest-mods/technic
Merge pull request #152 from goblin/coal_alloy_return_bucket
alloy furnaces and generators should not eat fuel buckets
This commit is contained in:
commit
dd468c3aaa
|
@ -142,10 +142,11 @@ minetest.register_abm({
|
||||||
|
|
||||||
-- Next take a hard look at the fuel situation
|
-- Next take a hard look at the fuel situation
|
||||||
local fuel = nil
|
local fuel = nil
|
||||||
|
local afterfuel
|
||||||
local fuellist = inv:get_list("fuel")
|
local fuellist = inv:get_list("fuel")
|
||||||
|
|
||||||
if fuellist then
|
if fuellist then
|
||||||
fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
||||||
end
|
end
|
||||||
|
|
||||||
if fuel.time <= 0 then
|
if fuel.time <= 0 then
|
||||||
|
@ -158,9 +159,7 @@ minetest.register_abm({
|
||||||
meta:set_string("fuel_totaltime", fuel.time)
|
meta:set_string("fuel_totaltime", fuel.time)
|
||||||
meta:set_string("fuel_time", 0)
|
meta:set_string("fuel_time", 0)
|
||||||
|
|
||||||
local stack = inv:get_stack("fuel", 1)
|
inv:set_stack("fuel", 1, afterfuel.items[1])
|
||||||
stack:take_item()
|
|
||||||
inv:set_stack("fuel", 1, stack)
|
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -71,15 +71,15 @@ function technic.smelt_item(meta, result, speed)
|
||||||
if meta:get_int("cook_time") < result.time / speed then
|
if meta:get_int("cook_time") < result.time / speed then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local result = minetest.get_craft_result({method = "cooking", width = 1, items = inv:get_list("src")})
|
local result
|
||||||
|
local afterfuel
|
||||||
|
result, afterfuel = minetest.get_craft_result({method = "cooking", width = 1, items = inv:get_list("src")})
|
||||||
|
|
||||||
if result and result.item then
|
if result and result.item then
|
||||||
meta:set_int("cook_time", 0)
|
meta:set_int("cook_time", 0)
|
||||||
-- check if there's room for output in "dst" list
|
-- check if there's room for output in "dst" list
|
||||||
if inv:room_for_item("dst", result.item) then
|
if inv:room_for_item("dst", result.item) then
|
||||||
srcstack = inv:get_stack("src", 1)
|
inv:set_stack("src", 1, afterfuel.items[1])
|
||||||
srcstack:take_item()
|
|
||||||
inv:set_stack("src", 1, srcstack)
|
|
||||||
inv:add_item("dst", result.item)
|
inv:add_item("dst", result.item)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -51,7 +51,9 @@ function technic.register_generator(data)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
if not inv:is_empty("src") then
|
if not inv:is_empty("src") then
|
||||||
local fuellist = inv:get_list("src")
|
local fuellist = inv:get_list("src")
|
||||||
local fuel = minetest.get_craft_result(
|
local fuel
|
||||||
|
local afterfuel
|
||||||
|
fuel, afterfuel = minetest.get_craft_result(
|
||||||
{method = "fuel", width = 1,
|
{method = "fuel", width = 1,
|
||||||
items = fuellist})
|
items = fuellist})
|
||||||
if not fuel or fuel.time == 0 then
|
if not fuel or fuel.time == 0 then
|
||||||
|
@ -61,9 +63,7 @@ function technic.register_generator(data)
|
||||||
end
|
end
|
||||||
meta:set_int("burn_time", fuel.time)
|
meta:set_int("burn_time", fuel.time)
|
||||||
meta:set_int("burn_totaltime", fuel.time)
|
meta:set_int("burn_totaltime", fuel.time)
|
||||||
local stack = inv:get_stack("src", 1)
|
inv:set_stack("src", 1, afterfuel.items[1])
|
||||||
stack:take_item()
|
|
||||||
inv:set_stack("src", 1, stack)
|
|
||||||
technic.swap_node(pos, "technic:"..ltier.."_generator_active")
|
technic.swap_node(pos, "technic:"..ltier.."_generator_active")
|
||||||
meta:set_int(tier.."_EU_supply", data.supply)
|
meta:set_int(tier.."_EU_supply", data.supply)
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue
Block a user