1
0
mirror of https://github.com/mt-mods/pipeworks.git synced 2024-11-14 06:20:33 +01:00
Commit Graph

599 Commits

Author SHA1 Message Date
electrodude
a3d2e69a42 Allow Digiline Filter-Injector to match wear, metadata, and group
You can now make reqyests like `{group="stick"}`, `"default:pick_wood 1
30000"`, and `"mod:block <count> <exact wear> <meta>"` to match
items precisely.

If you don't specify a field, that field won't be checked.  If you
specify a field in an invalid way, that rule will match nothing.

You can also specify wear as a table `wear={min, max}` to specify
a range `[min, max)` of acceptable wear values.  For example,
`{name="default:pick_wood", wear={0, 32768}}` matches only wooden
pickaxes that have at least half of their life left.

You can even do things like `{count=2, metadata="whatever")}`, which
will match any item at all, as long as its metadata matches, and will
retrieve at most two of those items.
2016-10-10 14:15:44 -07:00
electrodude
36d9e1fc08 Digiline Filter-Injector tweaks
* Made digiline filter-injectors not pull a whole stack if the count is exactly 1
* Made digiline filter-injectors pull a whole stack if no count specified
  * `default:dirt` still has a count of 1, but `{name="name"}` has no count
2016-10-10 14:15:44 -07:00
Vanessa Ezekowitz
6e0e7c47d0 Merge pull request #150 from t4im/master
Add list rings and enable sorting tube reordering
2016-08-30 14:13:01 -04:00
Tim
4fdf73fbcd add list rings to pipework inventories 2016-08-29 18:28:43 +02:00
Tim
aba1ce5b36 allow reordering of itemstacks in sorting tube 2016-08-29 18:28:24 +02:00
Tim
a65eaa7cf2 update .gitignore 2016-08-29 18:25:40 +02:00
electrodude
a1ed3acd7a Add digiline detector tube (#139)
* Add digiline detector tube

The digiline detector tube outputs an itemstring of every stack
that passes through it on the channel specified in its formspec.

* Don't store digiline detector tube's formspec in a temporary local
2016-06-11 17:14:38 -07:00
Auke Kok
f76668969e Do not trust node.param2.
The table lookup will fail if node.param2 is outside [0-3] which
is easily possible since there are several ways to modify param2
values of nodes. Force truncating param2 to always be 0-3 before
using it in a table lookup.
2016-06-11 17:09:07 -07:00
Auke Kok
32f331e7c4 Don't make passing arguments this complex.
This shouldn't be this complex. For me, both syntaxes work,
but I bet it breaks others.
2016-05-27 17:37:56 -07:00
electrodude
10bfa30b93 Fixed settings file leak and invalid io.close (#136)
Before, init.lua called io.open on
pipeworks.worldpath..'/pipeworks_settings.txt'
to see if it existed, but did not close the resulting file handle if
it was found to exist.  It instead erroneously called io.close() with
no argument, which does nothing if the default output file is set to
stdout, which it is.

Now, the result of io.open is saved to a local variable.  If that value
is not nil (i.e. if the world settings file exists), the file handle is
passed to io.close before calling dofile.

Also, this saves pipeworks.worldpath..'/pipeworks_settings.txt' to a
local variable to reduce redundancy.
2016-05-23 10:52:26 -07:00
electrodude
649c7d79f6 Add Digiline Filter-Injector
This adds a new type of Filter-Injector that waits for a digiline
message on its channel and then pulls the items described by the
message out of the inventory. It is basically a Stackwise Injector
that, on receiving a digiline message, sets its filter to the contents
of the digiline message and then activates itself.

Sending the message {name="default:brick", count=2} should do the
same thing as setting the filter of a Stackwise Filter-Injector to
two Brick Blocks and then punching it.

If no count is specified, it defaults to 1. Since this is based off
of the Stackwise Injector, it might make more sense if the default
were an entire stack. I can change this trivially.

You can also send requests like {{name="default:brick", count=1},
{name="default:dirt", count=1}}, which acts the same as setting the
filter to one Brick Block and one Dirt Block and then punching it.

If you send a string "default:dirt" instead of a table
{name="default:dirt"}, the string is passed to ItemStack and the
name and count are extracted from the resulting ItemStack. You can
also send a list of strings instead of tables: {"default:dirt",
"default:brick"}, and the first item found will be pulled.

Punching this or activating it with Mesecons currently does
nothing. I'm not really sure what would be the right thing to do in
either of those two cases, so I made it do nothing. I guess I could
make it use the previously-used filter, but I can't really see any
usefulness in that.

The recipe is probably too cheap. The darker of the two blue texture
colors could probably be better.
2016-05-10 16:13:41 -07:00
Auke Kok
193a5f8db9 Merge pull request #135 from electrodude/bugs
Fixed mixup between enables for conductor and detector tubes
2016-04-17 20:21:12 -07:00
electrodude
b2f9047e60 Fixed mixup between enables for conductor and detector tubes
pipeworks.enable_detector_tube would define detector tubes but the
recipe for conductor tubes, and vice versa
2016-04-17 23:05:38 -04:00
Auke Kok
66cfc745e1 Squelch a warning if no mesecons. 2016-04-14 22:24:43 -07:00
Prot EuPhobos
82c03466d7 add exact mode to the filter 2016-04-14 22:18:05 -07:00
Auke Kok
b1b9a7e994 Don't use item_drop(, nil,) 2016-04-01 22:20:07 -07:00
greencopper
e30364b2dd Changed item_drop to add_item for items dropped during transport.
item_drop makes Minetest 0.4.13 crash, but add_item works in all
versions and the behavior is identical when looking at the blocks.
2016-04-01 22:20:07 -07:00
Auke Kok
a107ca40f0 Add screenshot.png 2016-03-27 22:31:33 -07:00
Auke Kok
c26d6932ba Adding standard mod files 2016-03-27 21:28:04 -07:00
Vanessa Ezekowitz
b3177a4827 Merge pull request #134 from sofar/furnacefix
Work with NodeTimer based furnaces.
2016-03-27 20:20:03 -04:00
Auke Kok
c61c090ac4 Work with NodeTimer based furnaces.
If we insert items through tubes, we must start the furnace timer
otherwise it will never start operating. This shouldn't break
older versions, as not having a timer function should just cancel
out.
2016-03-27 16:30:23 -07:00
HybridDog
6de437b83d fix 2 other minetest.item_drops 2015-11-18 10:07:00 +01:00
HybridDog
352e23cfb1 fix crash caused by deprecated usage of minetest.item_drop, fixes #122 2015-11-17 07:52:20 -05:00
HybridDog
17a83d0474 reduce texture sizes
reduce texture sizes
2015-11-17 09:02:26 +01:00
LeMagnesium
fd1318d9e1 fix "sand" vacuum tubes not working 2015-11-15 14:24:07 -05:00
Sokomine
fca10f613d added is_fake_player entry to the fake player table passed on to allow_metadata_* functions 2015-10-10 05:44:42 +02:00
Thomas--S
af2c3778fe removed hud_change from TODO 2015-09-26 09:18:42 +02:00
Thomas--S
7e61d38ef5 Fixed typo
Changed hud_channge to hud_change
2015-09-26 09:02:41 +02:00
est31
bb4a1756ff "Implement" two further functions for fake player
Implement two functions for fake player used by the hunger mod.
Also, add a list of functions to be implemented for an overview.
2015-09-25 03:27:57 +02:00
Novatux
4eeb6950c4 Fix crash when deleting luaentities with //clearobjects. 2015-08-01 16:36:50 +02:00
Novatux
bedcf4d646 Try to fix items dropping in unloaded areas 2015-07-25 14:29:57 +02:00
Novatux
8e642df6a2 Try to fix crash (2) 2015-06-23 19:26:01 +02:00
Novatux
528b21da7f Try to fix crash 2015-06-23 19:16:22 +02:00
Novatux
dada8474fe Revert "fix multiple crash points if luaentity.entities or values returned from"
This reverts commit d0952a97fc.
2015-06-23 19:00:17 +02:00
Vanessa Ezekowitz
d0952a97fc fix multiple crash points if luaentity.entities or values returned from
luaentity.add_entity() are nil
2015-06-23 12:48:20 -04:00
Vanessa Ezekowitz
5822f60ba9 fix deprecated time_images use 2015-04-26 18:46:00 -04:00
Vanessa Ezekowitz
f80dec1220 drop direct support for dedicated protection mods
just use minetest's standard protection functions instead

(leave it up to those protection mods to do their job properly)
2015-03-23 17:40:00 -04:00
Rainer
388297de4e teleport_tube.lua recipe change
The default mese block has been changed to default:mese, so a change of the recipe of the teleport_tube_1 had to be made
2015-03-14 21:06:24 +01:00
Vanessa Ezekowitz
c4aa351fa0 add missing alias for entry panel
side effect left over from new_flow_logic tests
2015-03-12 10:21:55 -04:00
Tim
d167aacf4d add ownership/protection handling for device configuration
take any available ownership into account before deciding on area protection
2015-03-11 19:36:41 +01:00
Phvli
86ee58b17c New wiki url in README 2015-03-09 00:05:13 +02:00
Tim
674450236b label the vacuum tube logic abms for profiling purposes
useable with the mtt profiler starting with t4im/mtt@48eff13
2015-03-04 22:31:56 -05:00
Tim
e8ab36a2c9 document wielder pointed_thing problems and revert "fix wielder mixing up above and under, which had for example an effect on the deployer trying to place seeds"
This reverts commit 6e2f1fcd635398387a49911a996ccaba65bffdd3.
2015-03-04 22:17:36 -05:00
MT-Modder
aa5f155100 Use group:sand for sand_tube_1 recipes 2015-03-04 22:17:36 -05:00
Tim
ac4f761919 fix wielder mixing up above and under, which had for example an effect on the deployer trying to place seeds 2015-03-04 22:17:36 -05:00
est31
c505088fbb Set the owner for locked chests on placing 2015-02-11 19:37:19 +01:00
Tim
9af43b9f6f fix conductor_tube_on texture 2015-02-08 11:04:32 +01:00
Vanessa Ezekowitz
6abed742e8 also fix chests and furnaces 2015-02-07 03:01:25 -05:00
Vanessa Ezekowitz
ce12c83306 fix filters also 2015-02-07 02:51:06 -05:00
Vanessa Ezekowitz
364633d884 make all tubes call the routing functions
using their after_place/after_dig callbacks
2015-02-07 02:45:17 -05:00