Commit Graph

12 Commits

Author SHA1 Message Date
Auke Kok
e5c5c2637e Furnace: Attempt to fix exploits
The fuel would remain active even if source went empty, giving
free cook time to newly inserted items. This patch is supposed
to stop this.
2016-12-17 20:01:46 +00:00
HybridDog
4a5206e3a7 Furnace: Make furnaces work when unloaded
This is slightly modified after #1279 - the setting for furnace
timer was removed and hardcoded to 1.0s, which is the old furnace
timer interval.
2016-12-07 08:28:53 +00:00
Auke Kok
75caa9167c Fix whitespace errors to silence luacheck.
Currently all minetest_game PR's are failing travis since the
upstream luacheck now also warns about whitespace issues, and
there are a few of those in the code. This fixes all of them
so we can yet again rely on luacheck.
2016-11-19 19:39:51 -08:00
Wuzzy
d92034e3f7 Add fuel slot to furnace listring 2016-10-31 14:17:38 -07:00
Auke Kok
1d6fbe04cd Default/furnace: Indicate dst full
Indicate in the infotext when a furnace has filled up `dst` but still
has fuel. The info text shows the item as 100% with added "(output
full)" text, indicating that while it can cook the item, there is no
place for it in the `dst`. Emptying the `dst` should make the item
cook immediately and furnace resume normal operation.
2016-09-03 01:08:29 +01:00
Tim
4473627de0 Remove unused and clean up missused variable-value assignments.
* Unused variables
* Unused values (assigned to variables, but overwritten before use)
* Defining already defined variables instead of reassigning to them.
2016-07-15 21:58:49 +01:00
Auke Kok
54b87e955d TNT: Add on_blast to all nodes with an inventory
Adds a minor helper function that allows efficient retrieval of
several inventories from a node inventory. We use this helper to
quickly retrieve the items in chests, vessel shelves, book shelves
and furnaces, and return these with the nodes itself to the TNT caller.

The TNT caller then performs the entity physics, and we don't need
to do anything else.

We disable TNT doing anything with bones.

We expose a bug in the code that drops the items - metadata was lost
entirely. This patch corrects that by properly copying the metadata
and creating the drops list inclusive metadata.
2016-04-26 22:33:59 +01:00
Auke Kok
4d7dbfc826 Start timer as well when moving items around.
It's possible to hit this when using an e.g. charcoal mod
where a tree is both a fuel and a source.
2016-03-30 23:10:59 +01:00
Auke Kok
8f095c62a8 Convert furnace ABM to node timer
Node timers are higher precision and a better guarantee
of happening at regular intervals, whereas ABM's may be
postponed, cancelled or missed if a player is too far.

The largest benefit is that once the furnace is done
cooking, no more ABM's are fired - the timer is stopped
instead and no more events are created until items
are put in the furnace.

This patch is larger due to the migration of the timer
function and indentation change as a result of the somewhat
reduced complexity. I've tested with several furnaces and
this works correctly and behavior is not affected, although
people may find that their furnaces now work more
regularly.

If you place several furnaces next to eachother, you will
still find all furnace timers firing exactly at the same
time. This is a bug in core that should not coalesce node
timers at second intervals.
2016-02-13 03:47:38 +00:00
Amaz
7361eb5e05 Add the listring functionality c977fbd928 2015-06-23 19:17:57 +02:00
PilzAdam
854415fd33 Fix typo in furnace.lua 2014-12-13 12:52:47 +01:00
PilzAdam
5a06de184c Rewrite furnace
* Move furnace related code into furnace.lua
* Move duplicated code into functions
* Rewrite ABM:
	* Easier to follow strcuture (no returns in the middle)
	* No unnecessary calls to get_craft_result
	* Split logic and "visual feedback" (a bit)
	* Fewer calls to meta:set and meta:get
	* Better feedback on the current state of the furnace
2014-12-06 21:18:02 +01:00