Processing logic ported from updated gasfurnace code.
Fixed checking for space in output tray for water in buckets.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Code updated to make machine fully compatible with Tubelib2 framework.
Major changes:
* supports Tubelib2 by using NodeStates class and new metadata
* BLOCKED state introduced when no space left in output tray
* set to FAULT when Biogas tank is empty
* on_punch diagnostics removed
* processing logic updated (fuel checks reorganized, desired_state
metadata introduced, improved state transition logic)
Fixed:
* proper checking for space in output tray for items with vessels
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Code updated to make machine fully compatible with Tubelib2 framework.
Major changes:
* supports Tubelib2 by using NodeStates class and new metadata
* BLOCKED state introduced when no space left in output tray
* on_punch diagnostics removed
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Code updated to make machine fully compatible with Tubelib2 framework.
Major changes:
* supports Tubelib2 by using NodeStates class and new metadata
* BLOCKED state introduced when no space left in output tray
* set to FAULT when Biogas tank is empty
* on_punch diagnostics removed
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Changing hint bar recipe updates help image in source inventory as well
(ported from compactor).
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Standby/resume logic fixed when one of working trays is empty
while machine is power-cycled.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Unified_Inventory recipe registration code splitted: type is registered
before adding default recipes via API; recipe registration moved to
API function so it gets called every time function successfully runs
(ported from compactor.lua).
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Compactor machine compresses material using Biogas as fuel
and Ice cubes as coolant. Recipes are added using public
API function.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
During code replication from base freezer.lua to other Biogas Machines
in on_punch() callback a unnecessary call to biogasmachines.is_pipe_with_water()
function has been overlooked and left over. This commit removes that call
for gasifier and furnaces.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Backported from Jet Furnace. When no fuel, device waits for some time
(the same value as for standby) before it shuts down automatically.
This timeout allows fuel to reach device in more complicated Tubelib
machineries.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Jet Furnace that is 2 times faster than standard version in both item cooking
time and Biogas consumption. Additionally it supports stack pulling from output
tray (can be paired with High Perf Pusher) and longer auto-poweroff delay
(to allow fuel to reach device before it automatically shuts down).
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Biogas Furnace is Tubelib-compatible version of standard furnace that
uses Biogas as fuel. All default furnace cooking recipes apply.
See gasfurnace.lua for details and differences.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Coal block output changed to 9 Biogas units.
Timer code optimized by using local recipe variable.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Coal gasification recipe now produces Gravel instead of Biofuel
as a secondary product. Recipe hint bar number width changed back
from 3 to 2. README.md updated.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Putting 'cur' at the end of listring in formspec brings back
shift-click access to 'src' which had been broken by putting
'cur' in the middle.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Items can be taken from working tray ('cur' inventory list) when
machine is stopped. This functionality is identical to gasifier behaviour.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Fixed incorrect behaviour when machine was restarted with non-empty
working tray. Now device checks this tray before source (input) inventory
and if item is present, sets it for processing.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Working tray has now blue background that gets brighter when machine
is operating. It is used to indicate that this tray is a special one
and cannot be accessed by player like normal inventory cell.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Formspec data that needs to be calculated only once is stored in
a special array (method introduced in gasifier) and never re-calculated.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
This machine is designed to extract Biogas from highly compressed
dry organic matter, such as fossil fuels (coal block) and straw.
It requires no fuel to avoid complex processing loops.
Its recipe base is expandable via API function.
All functionality and Tubelib integration is in place.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Crafting recipe added. When unified_inventory is installed, crafting guide
is expanded with 'freezing' type and ice generation recipe.
What's left: textures and look.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Freezer now accepts pipe connections from all sides, thanks to improved
pipe detection logic in functions.lua. Function that checks if an element
belongs to an array has been made public to all module files, module
has been rewritten to utilize this function instead of duplicating
code.
What's left: textures, crafting.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Freezer now interacts with tubelib devices and can be a part of
complex machines (i.e. paired with Liquid Sampler).
Minor code adjustments: inventory reshaping, on_punch logic.
What's left: textures, crafting.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Freezer can now work as a standalone device, producing ice
from water supplied in bucket or through pipes.
What works: ice production logic, manual on/off.
Todo: tubelib integration (tubes and message i/o), crafting,
textures.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Simple freezer node created to test pipeworks water supply.
Node has temporary textures, no formspecs and no inventories.
When punched node shows if water is flowing into it via pipes.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>