Fork pipeworks is a mod for Minetest allowing the crafting and usage of pipes and tubes
28328d975c
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 |
||
---|---|---|
textures | ||
.gitignore | ||
autocrafter.lua | ||
autoplace.lua | ||
changelog.txt | ||
compat.lua | ||
crafts.lua | ||
default_settings.txt | ||
depends.txt | ||
deployer.lua | ||
devices.lua | ||
flowing_logic.lua | ||
init.lua | ||
item_transport.lua | ||
LICENSE | ||
node_breaker.lua | ||
pipes.lua | ||
README | ||
teleport_tube.lua | ||
tubes.lua |
This mod uses nodeboxes to supply a complete set of 3D pipes and tubes, along devices that work with them. See http://vanessae.github.io/pipeworks/ for detailed information about usage of this mod. Unlike the previous version of this mod, these pipes are rounded, and when placed, they'll automatically join together as needed. Pipes can go vertically or horizontally, and there are enough nodes defined to allow for all possible connections. Valves and pumps can only be placed horizontally, and will automatically rotate and join with neighboring pipes as objects are added, as well as joining with each other under certain circumstances. Pipes come in two variants: one type bears one or more dark windows on each pipe, suggesting they're empty, while the other type bears green-tinted windows, as if full (the two colors should also be easy to select if you want to change them in a paint program). These windows only appear on straight lengths and on certain junctions. This mod is a work in progress. Please note that owing to the nature of this mod, I have opted to use 64px textures. Anything less just looks terrible.