Don't consume items or drain power when there isn't room for the results
| | |
| | | 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) |
| | |
| | | -- 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") |
| | |
| | | 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) |
| | |
| | | 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) |
| | | |
| | |
| | | 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") |