1
0
mirror of https://github.com/mt-mods/pipeworks.git synced 2024-12-24 18:00:22 +01:00
Commit Graph

512 Commits

Author SHA1 Message Date
Vanessa Ezekowitz
1bfc2d4e5b increase length of signal tube pulse 2017-03-17 10:15:09 -04:00
Vanessa Ezekowitz
e5ee0dee90 add turn-to-vertical handling to valve, flow sensor
reuse the code from entry panel
2017-03-17 10:07:34 -04:00
Vanessa Ezekowitz
88ad79163d add screwdriver rotation handling on most pipes-related nodes
caveats:  in order to cleanly handle the entry panel, valve, and sensor
I had to rotate the valve and sensor models 90 degrees
so that their in-/outlet pipes point the same direction as the
entry panel.

This also enables proper handling of a valve or sensor turned vertically.

Some objects have rotation disabled entirely (as flipping them over/around makes
no sense)

When a valve is rotated, it is turned off automatically, to work around a glitch in
the rotation code.
2017-03-17 10:07:34 -04:00
Vanessa Ezekowitz
bd4a27d172 make valve and pump turn on/off via on_rightclick
(instead of on_punch)
2017-03-17 10:07:34 -04:00
Thomas--S
3d845a3f28 Make filter-injector work with latest chest versions 2017-03-17 10:07:34 -04:00
Carter Kolwey
a858145098 Add missing table entries 2017-03-17 10:07:34 -04:00
Vanessa Ezekowitz
7d872c05ee Merge pull request #160 from cheapie/master
Special-case technic machines
2017-03-01 01:01:02 -05:00
Carter Kolwey
acf7ee4a80 Special-case technic machines
This makes them work correctly with filters.
2017-02-28 23:52:10 -06:00
Carter Kolwey
cdbe93cdd8 Allow reversing direction if there's nowhere to go 2017-03-01 01:40:06 -03:00
Vanessa Ezekowitz
f7fe95231d Merge pull request #158 from cheapie/master
Add digilines support to autocrafter
2017-02-26 16:44:22 -05:00
Carter Kolwey
1a15a8b453 Add digilines support to autocrafter
"on" and "off" messages turn it on or off, "single" crafts one item, and sending nested tables in the shape of the crafting grid sets the craft. Example message:
{
{"default:wood","default:wood","default:wood"},
{"default:wood","","default:wood"},
{"default:wood","default:wood","default:wood"}
}
2017-02-26 15:35:51 -06:00
Vanessa Ezekowitz
9ade40ac65 update description a bit (typo, outdated a little) 2017-02-07 16:04:02 -05:00
Vanessa Ezekowitz
62768d243d Use node texture colorization
for priority tube, instead of [colorize
(except for inv image).  Saves a tiny bit of RAM.
2017-01-25 04:33:27 -05:00
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