1
0
mirror of https://github.com/mt-mods/pipeworks.git synced 2025-06-28 14:26:15 +02:00
Commit Graph

849 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
66cfc745e1 Squelch a warning if no mesecons. 2016-04-14 22:24:43 -07:00
82c03466d7 add exact mode to the filter 2016-04-14 22:18:05 -07:00
b1b9a7e994 Don't use item_drop(, nil,) 2016-04-01 22:20:07 -07:00
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
a107ca40f0 Add screenshot.png 2016-03-27 22:31:33 -07:00
c26d6932ba Adding standard mod files 2016-03-27 21:28:04 -07:00
b3177a4827 Merge pull request #134 from sofar/furnacefix
Work with NodeTimer based furnaces.
2016-03-27 20:20:03 -04:00
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
6de437b83d fix 2 other minetest.item_drops 2015-11-18 10:07:00 +01:00
352e23cfb1 fix crash caused by deprecated usage of minetest.item_drop, fixes #122 2015-11-17 07:52:20 -05:00
17a83d0474 reduce texture sizes
reduce texture sizes
2015-11-17 09:02:26 +01:00
fd1318d9e1 fix "sand" vacuum tubes not working 2015-11-15 14:24:07 -05:00
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
af2c3778fe removed hud_change from TODO 2015-09-26 09:18:42 +02:00
7e61d38ef5 Fixed typo
Changed hud_channge to hud_change
2015-09-26 09:02:41 +02:00
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
4eeb6950c4 Fix crash when deleting luaentities with //clearobjects. 2015-08-01 16:36:50 +02:00
bedcf4d646 Try to fix items dropping in unloaded areas 2015-07-25 14:29:57 +02:00
8e642df6a2 Try to fix crash (2) 2015-06-23 19:26:01 +02:00
528b21da7f Try to fix crash 2015-06-23 19:16:22 +02:00
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
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
5822f60ba9 fix deprecated time_images use 2015-04-26 18:46:00 -04:00
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
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
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
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
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
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
6abed742e8 also fix chests and furnaces 2015-02-07 03:01:25 -05:00
ce12c83306 fix filters also 2015-02-07 02:51:06 -05:00
364633d884 make all tubes call the routing functions
using their after_place/after_dig callbacks
2015-02-07 02:45:17 -05:00