summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShadowNinja <noreply@gmail.com>2013-09-24 17:09:20 -0400
committerShadowNinja <noreply@gmail.com>2013-09-24 17:09:20 -0400
commitbd3cc74d0576250af06a367369b7ea709d5581f4 (patch)
treea2265fdba1212373c4beb047cd6d54396e51c385
parent3107618c9e710b753b5ce81052b3765d92c01312 (diff)
Don't consume items or drain power when there isn't room for the results
-rw-r--r--technic/machines/register/alloy_furnace.lua4
-rw-r--r--technic/machines/register/common.lua2
-rw-r--r--technic/machines/register/electric_furnace.lua9
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")