From bd3cc74d0576250af06a367369b7ea709d5581f4 Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Tue, 24 Sep 2013 17:09:20 -0400 Subject: [PATCH] Don't consume items or drain power when there isn't room for the results --- technic/machines/register/alloy_furnace.lua | 4 ++-- technic/machines/register/common.lua | 2 +- technic/machines/register/electric_furnace.lua | 9 ++------- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/technic/machines/register/alloy_furnace.lua b/technic/machines/register/alloy_furnace.lua index b771134..bbae151 100644 --- a/technic/machines/register/alloy_furnace.lua +++ b/technic/machines/register/alloy_furnace.lua @@ -240,7 +240,8 @@ function technic.register_alloy_furnace(data) srcstack = src2stack src2stack = temp end - if not result then + if not result or + not inv:room_for_item("dst", result) then hacky_swap_node(pos, machine_node) meta:set_string("infotext", machine_name.." Idle") meta:set_int(data.tier.."_EU_demand", 0) @@ -251,7 +252,6 @@ function technic.register_alloy_furnace(data) -- Unpowered - go idle hacky_swap_node(pos, machine_node) meta:set_string("infotext", machine_name.." Unpowered") - next_state = 1 elseif eu_input >= machine_demand[EU_upgrade+1] then -- Powered hacky_swap_node(pos, machine_node.."_active") diff --git a/technic/machines/register/common.lua b/technic/machines/register/common.lua index 475e35b..664f43b 100644 --- a/technic/machines/register/common.lua +++ b/technic/machines/register/common.lua @@ -70,7 +70,7 @@ function technic.smelt_item(meta, result, speed) if result and result.item then meta:set_int("cook_time", 0) -- check if there's room for output in "dst" list - if inv:room_for_item("dst", result) then + if inv:room_for_item("dst", result.item) then srcstack = inv:get_stack("src", 1) srcstack:take_item() inv:set_stack("src", 1, srcstack) diff --git a/technic/machines/register/electric_furnace.lua b/technic/machines/register/electric_furnace.lua index 2a7642f..7d57a59 100644 --- a/technic/machines/register/electric_furnace.lua +++ b/technic/machines/register/electric_furnace.lua @@ -152,12 +152,6 @@ function technic.register_electric_furnace(data) local machine_node = "technic:"..string.lower(data.tier).."_electric_furnace" local machine_demand = data.demand - -- Setup meta data if it does not exist. state is used as an indicator of this - if not eu_input then - meta:set_int(data.tier.."_EU_demand", machine_demand[1]) - meta:set_int(data.tier.."_EU_input", 0) - end - -- Power off automatically if no longer connected to a switching station technic.switching_station_timeout_count(pos, data.tier) @@ -174,7 +168,8 @@ function technic.register_electric_furnace(data) method = "cooking", width = 1, items = inv:get_list("src")}) - if not result or result.time == 0 then + if not result or result.time == 0 or + not inv:room_for_item("dst", result.item) then meta:set_int(data.tier.."_EU_demand", 0) hacky_swap_node(pos, machine_node) meta:set_string("infotext", machine_name.." Idle")