summaryrefslogtreecommitdiff
path: root/item_transport.lua
AgeCommit message (Collapse)Author
2015-11-17fix crash caused by deprecated usage of minetest.item_drop, fixes #122HybridDog
2015-07-25Try to fix items dropping in unloaded areasNovatux
2015-06-23Revert "fix multiple crash points if luaentity.entities or values returned from"Novatux
This reverts commit d0952a97fcff08328328d05f630d2b0036a48163.
2015-06-23fix multiple crash points if luaentity.entities or values returned fromVanessa Ezekowitz
luaentity.add_entity() are nil
2015-01-29chmod -x *.luaTim
2015-01-29split the filter-injector specific code out of the generic item_transportTim
2014-11-22update to use current mesecons APIVanessa Ezekowitz
requires mesecons commit 5be179bf110b44bdc06df6dbfde4e61487cf0635 or newer.
2014-11-16Make filters behave correctly with protected areas (fixes #74)Novatux
2014-08-24fix undefined node crashVanessa Ezekowitz
2014-08-15Rename tube_item() to tube_inject_item()Zefram
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-14Fix typoNovatux
2014-08-14Add legacy code for items in tubesNovatux
2014-08-14Major rewrite of items in tubesNovatux
2014-07-21Slot sequencing modes for filter-injectorsZefram
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-21rename "filter" to "filter-injector"Zefram
"Injector" better describes the nodes' main purpose.
2014-07-05Name tube items for function rather than materialZefram
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-02Make non-node items in tubes look more solidZefram
Use the "wielditem" visual type for non-node items, with a fixed 45 degree yaw. This matches the recent change of dropped-item entities from "sprite" visual to "wielditem".
2014-07-02Fix bug with multiple input inventories with the filtersNovatux
2014-07-01Try to fix some bugs that happen on server restartNovatux
2014-06-14Filter inventory fixNovatux
2014-05-23Accept multiple input inventories, fix bug with mesecons_mvpsNovatux
2014-05-18BugfixNovatux
2014-04-13Deployer fixesNovatux
2014-02-10Add optional before/after filter callbacksCiaran Gultnieks
These allow nodes that manage inventory in a non-standard manner (e.g. a barrel) to still be able to work with pipeworks filters.
2014-01-11allow_metadata_inventory_take returns a number, not a boolNovatux
2014-01-10Prevent items from leaving below filtersNovatux
2014-01-03Support for the mesecons mvps callbackNovatux
2013-12-24fix filters and mese filters not working correctlyNovatux
2013-12-21Fix item transport codeNovatux
2013-12-21A few fixesNovatux
2013-12-15notvel function can't be local - made global and confined to pipeworks.{}Vanessa Ezekowitz
2013-12-15tube_item has to be global. confined it to pipeworks.{} table.Vanessa Ezekowitz
2013-12-15local-ize a few more variablesVanessa Ezekowitz
2013-12-15local-ize a few more variables and functionsVanessa Ezekowitz
2013-12-15local-ize a few more functionsVanessa Ezekowitz
2013-12-15default settings have to be global or pipeworks can't see themVanessa Ezekowitz
(duh!) confined them to pipeworks.{} table.
2013-12-15local-ize pretty muchg everything that was previously global except whereVanessa Ezekowitz
stuff needs to be globally-visible. Also, fix a bad drop on valve.
2013-11-26Make the tube_connects={} method work properly for technic devices.Vanessa Ezekowitz
Also phase out "old new" API, leaving only the "tube_connects={}" method, as nothing in technic or pipeworks uses it. Fix a few more places where minetest.facedir_to_dir() was duplicated, since that code is part of Minetest 0.4.8.
2013-10-29make worldpath and modpath pipeworks-namespace-specific and globalVanessa Ezekowitz
2013-10-21Fix crossing tube and one way tube.Novatux
2013-10-15Check for on_metadata_inventory_takeCy
2013-10-14Multiple updates:Cy
1) Refactor autoplace, There was a lot of redundant code and like a dozen unneccessary string scans for every node next to every tube placed! I put it all into indexed tables and loops instead of bizarre and unexplainable variable names and copy and pasted code. There was also no support for notifying a chest when an item has been taken from it by a filter, so I added something for that. I also thought it prudent to fall back on the allow_metadata_inventory_take function should a special can_remove not exist. In fact if can_insert doesn't exist, it calls allow_metadata_inventory_put instead. I also added a thing for allowing pipes to attach to nodes of other modules, without having to hard code type all those node names into autoplace.lua. Basically node.tube.collects(i,param2) and i is the direction from the pipe and param2 is the param2 of what it's pointing at. I also abstracted the inscrutable correlation between i and param2 by trial and error (and the paramwand mod) into understandable functions. There was no pipeworks namespace so I created it, and put these functions into pipeworks.collects (as distinguished from a node.tube.collects function, which uses those functions) And now it's too late to cart my old clothes to the thrift store, dangit. 2) My "node.tube.collects" idea might be redundant with the node.tube.connect_sides thing, though possibly more versatile so I'll leave it in. 3) I was using node.tube.connects and fancy functions for checking if it's the sides or top or whatnot, and this connect_side thing came in. This should make both my way and the way using connect_side work. Also removed some debugging cruft
2013-07-19added support for 6d facedir for all tube components, changed autoplace.lua ↵hdastwb
to follow tubes.connect_sides rather than having each component coded individually, and added support for placing deployers and node breakers facing vertically
2013-07-15fixed a nil reference (filter code didn't check for unknown nodes)Vanessa Ezekowitz
2013-06-30Phased out all deprecated minetest.env:* uses in favor of minetest.*Vanessa Ezekowitz
2013-06-28Add option to disable cyclic behaviourNovatux
2013-06-23rewrote autoplacement code to make it more aware of filters,Vanessa Ezekowitz
autocrafter, nodebreaker, deployer, and made sure each item will only initiate a connection to those sides which can accept such. Fixed various autorouting bugs as I ran across them. Autorouting for various devices is now: filters: left and right sides only nodebreaker, deployer: back only autocrafter: all six sides chests: top, bottom, left, right, back (not front) furnace: bottom, left, right, back (not the top or front)
2013-06-21workaround for transported items sometimes just appearing out of nowhereVanessa Ezekowitz
but not being diggable. Made them have a really tiny collision box so they can be pointed at if carefully done
2013-06-05Fix crash sometimes with tubesNovatux
2013-04-03retouched the formspec of the filter and mese-filterbas080