ShadowNinja
2013-09-24 bd3cc74d0576250af06a367369b7ea709d5581f4
Don't consume items or drain power when there isn't room for the results
3 files modified
15 ■■■■■ changed files
technic/machines/register/alloy_furnace.lua 4 ●●●● patch | view | raw | blame | history
technic/machines/register/common.lua 2 ●●● patch | view | raw | blame | history
technic/machines/register/electric_furnace.lua 9 ●●●● patch | view | raw | blame | history
technic/machines/register/alloy_furnace.lua
@@ -240,7 +240,8 @@
                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 @@
                -- 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")
technic/machines/register/common.lua
@@ -70,7 +70,7 @@
    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)
technic/machines/register/electric_furnace.lua
@@ -152,12 +152,6 @@
            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 @@
                    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")