Commit Graph

732 Commits

Author SHA1 Message Date
Tim
fb98963810 use a hashmap to manage teleportation tubes, to speedup lookups and tablemodifications 2015-01-25 23:42:35 +01:00
Tim
5b026d2cc7 improve tp_tube configuration handling to decrease disk i/o, handle empty strings and form escapes 2015-01-25 20:05:10 +01:00
Vanessa Ezekowitz
cdd3eb209b OPTIMIZE _ALL_ THE TEXTURES! \:D/ 2015-01-23 14:07:02 -05:00
Diego Martinez
9493478e59 Fix tubes only taking a single designated path. 2015-01-22 11:18:23 -05:00
Tim
82a7b6a749 rewrite parts of the teleportation tube to avoid a few grave performance issues:
* don't forceload the block of every single tube in the world on every item being send through any one of them
* cache file contents to avoid unnecessary reads on every single item send through a tp tube
* reduce redundant metadata and table lookups
* reduce write operations during the same changes to a file

still to do is a switch from an arraylist-table to a hashmap-table to make lookups and updates on the cache faster
2015-01-20 19:29:49 -05:00
Diego Martinez
9a83380b2b Optimize sorting tube code a bit. 2015-01-20 14:06:44 -03:00
Vanessa Ezekowitz
dad386b564 use animated water for pouring spigot
also remove a couple of extranous .mtl files and a redundant spigot texture
2015-01-16 04:38:17 -05:00
Vanessa Ezekowitz
50359104c7 Use mesh nodes for all nodebox-based pipe-related nodes 2015-01-15 06:25:41 -05:00
Vanessa Ezekowitz
e0039f22f8 sanity checking, stop crash in case of garbage inventory data
(i.e. that looks like nil)
2015-01-10 01:31:22 -05:00
Tim
6f16dd24c2 allow sorting tubes to be dug, despite virtual items in the inventories 2014-12-27 22:14:33 +01:00
Vanessa Ezekowitz
614f6f4da1 minetest.env:* --> minetest.* 2014-11-30 12:38:06 -05:00
Vanessa Ezekowitz
28cef5e82f update to use current mesecons API
requires mesecons commit 5be179bf110b44bdc06df6dbfde4e61487cf0635 or newer.
2014-11-22 13:55:54 -05:00
Novatux
b49428721a Make filters behave correctly with protected areas (fixes #74) 2014-11-16 13:14:17 +01:00
Novatux
3f85f83e35 Make items in autocrafters virtual as well 2014-11-02 09:35:43 +01:00
Tim
cf9c4fa3b1 use default copper instead of moreores copper for the water pump recipe 2014-09-21 13:51:55 +02:00
Novatux
5b2e3a44c3 Fix #73 2014-09-12 19:47:43 +02:00
Vanessa Ezekowitz
bbc530a067 fix undefined node crash 2014-08-24 11:51:43 -04:00
Vanessa Ezekowitz
42a364b818 quick hack to prevent crash in load_position() call if given a set of
coords that are out of valid range
2014-08-23 17:59:32 -04:00
Zefram
2838f0125f Escape text for cycling form button 2014-08-17 14:53:21 +01:00
Novatux
17cae3a650 Fix possible race condition crash 2014-08-16 11:16:23 +02:00
Novatux
f8a8046a7b Fix mese tube formspec 2014-08-15 15:35:42 +02:00
Zefram
7915e7f51e Rename tube_item() to tube_inject_item()
The new function has no API compatibility with the old one, so give it
a different name to avoid confusion among caller mods, which need to
change their usage.  Have a function under the old name that outputs a
helpful error message.
2014-08-15 13:24:52 +02:00
Novatux
b77146f29c Fix old mese tube detection 2014-08-15 11:51:23 +02:00
Novatux
8cc2ecb55f Fix wielder 2014-08-14 22:10:39 +02:00
Novatux
bf6fe237de Fix typo 2014-08-14 22:02:36 +02:00
Novatux
15db1d23cc Remove useless callbacks 2014-08-14 21:24:20 +02:00
Novatux
d4e14bc891 Add legacy code for items in tubes 2014-08-14 21:18:48 +02:00
Novatux
d5480f5ff0 Major rewrite of items in tubes 2014-08-14 16:22:03 +02:00
Zefram
a9866aa5d5 Node breaker fixup for ones lacking pick slot
This has been seen on Vanessa's server, and caused the wielding code
to crash.
2014-08-09 10:57:43 -04:00
Vanessa Ezekowitz
487007f2a4 don't add active furnace to creative inv 2014-08-06 17:14:16 -04:00
Kevin Zheng
a7d8d99913 Use 'group:stick' instead of 'default:stick' 2014-07-30 16:22:28 -05:00
Vanessa Ezekowitz
e2a8c03066 get rid of the old pipeworks clone node function
use minetest.override_item() instead
2014-07-30 14:13:17 -04:00
Vanessa Ezekowitz
3c348592cb use current homedecor plastic sheet texture 2014-07-28 21:18:40 -04:00
Vanessa Ezekowitz
39b56074ad update pipeworks to use modern homedecor-style crafting chain
craft 6 any leaves -> oil extract, cook oil -> paraffin,
cook paraffin -> plastic

old "plastic base" is aliased to paraffin.
2014-07-28 21:14:38 -04:00
Zefram
7cf5e3cfb9 Refactor node breaker
Merge node breaker into the generic wielder mechanism.  Center the wield
inventory in all wielders' formspecs.  Implement full auto-upgrade of
legacy node breakers, occurring upon use or punching of the node breaker.
Make node breaker respect on_dig hooks.
2014-07-23 09:50:50 -04:00
Zefram
46d44eebcf Refactor deployer and dispenser
Merge implementations into a single "wielder" mechanism.  Clean up the
code a bit.  Fix get_player_control_bits for the dispenser (it wasn't
indicating the sneak setting).  Fix drops for dispenser (dispenser_on was
dropping as itself).  Show item image, as well as name, at head of form.
2014-07-23 09:50:50 -04:00
Zefram
b832c0ad06 Slot sequencing modes for filter-injectors
The filter-injectors used to always prefer to take items from the
beginning of the source inventory.  Because items also tend to get placed
at the beginning of an inventory, this could lead to a chest+injector
buffer only passing through a trickle of one type of item, where other
item types are flowing in and getting later inventory slots.  So now,
the sequencing of source inventory slots is configurable, per-injector,
by form.  In addition to the old priority mode, there's now a random
mode and a rotation mode.

Incidentally refactor the filter-injector code, to avoid duplication
between the itemwise and stackwise variants.
2014-07-21 19:03:56 -04:00
Zefram
1c3fb6b1c5 rename "filter" to "filter-injector"
"Injector" better describes the nodes' main purpose.
2014-07-21 14:47:50 -04:00
Zefram
bd37e96222 Make sorting tube dialog lag-resistant 2014-07-21 14:43:37 -04:00
Zefram
c5ab801741 Better teleport tube control dialog
Describe the two modes as "Send and Receive" and "Send only", rather
than the misleading "On" and "Off".  Also make the mode toggle button
lag-resistant.
2014-07-21 14:43:37 -04:00
Zefram
ebccf81758 Add dispenser
The dispenser is an automated item dropper.
2014-07-21 09:52:58 -04:00
Zefram
22eb00e5d1 Let stack of projectiles diminish in node breaker
The logic that prevents mechanically wearing a tool was also preventing
the diminution of a stack of items to use, such as a stack of snowballs.
Restrict the use of pickcopy to the case where the stack still has the
same item type, count, and metadata.
2014-07-21 09:52:53 -04:00
Zefram
aee9f7e6d6 Add trash can
The trash can can be used either manually (via form) or at the end of
a pipe.  It destroys whatever is placed in it.
2014-07-15 00:52:33 +01:00
Zefram
571d1d45ee Don't show legacy auto-tree-tap in creative invy 2014-07-14 14:55:31 -04:00
Zefram
2b5aeda9d1 Set infotext for node breakers
As node breakers now have a form, they should also have infotext to draw
attention to it, as do most form-containing nodes.
2014-07-14 14:55:29 -04:00
Zefram
6432bf721d Don't spill an extra pick from old node breakers
Due to historical shenanigans around the addition of the pick slot to
node breakers, some breakers that were placed before the addition have
ended up with a mese pick in their newly-acquired pick slot, rather than
in the ghost_pick slot where it belongs.  This causes these breakers to
spill this ghost pick when they are broken.  To avoid this, make pick
spilling conditional on the breaker having a formspec: pre-slot breakers
don't have one.
2014-07-14 14:55:27 -04:00
Zefram
ce1505d008 Fix detector tube item counting
A detector tube would sometimes miss a decrement, due to the pos structure
passed to can_go being modified by the tubed-item entity while it's also
sitting in the timer queue as an argument to item_exit.  As the can_go
API actually depends on being able to mutate the pos structure (see the
teleporter tube), we can't just start passing in a never-mutated copy
of pos.  So for now just fix in the detector tube's can_go, by copying the
structure there.  Incidentally, make the decrement mechanism consistent
between the two forms of increment.
2014-07-14 14:55:22 -04:00
Vanessa Ezekowitz
8aea4b1a13 add conversion routine for cheapie's auto tree taps
turns them into nodebreakers with technic taps if auto tree taps are not
defined and if technic tree taps are.
2014-07-11 09:48:43 -04:00
Zefram
87d87c91fa Name tube items for function rather than material
Previously, some tube types were named based on their function, and others
based on some arbitrarily-chosen material used in their construction,
with no meaningful system governing which was in each category.  With this
change they are consistently named according to function.  Naming style
is also made consistent in the wording that identifies tubes as such,
and in capitalisation.
2014-07-05 12:55:33 -04:00
Zefram
a7cd0e3ddb Fix drops for storage tanks 2014-07-02 21:40:36 -04:00