From bd4a27d1722a8e31a5f47a2405f1f9a3871e3341 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Fri, 17 Mar 2017 05:26:10 -0400 Subject: make valve and pump turn on/off via on_rightclick (instead of on_punch) --- devices.lua | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'devices.lua') diff --git a/devices.lua b/devices.lua index e4c5f43..a102a28 100644 --- a/devices.lua +++ b/devices.lua @@ -73,8 +73,8 @@ for s in ipairs(states) do minetest.add_node(pos,{name="pipeworks:pump_off", param2 = node.param2}) end }}, - on_punch = function(pos, node, puncher) - local fdir = minetest.get_node(pos).param2 + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local fdir = node.param2 minetest.add_node(pos, { name = "pipeworks:pump_"..states[3-s], param2 = fdir }) end }) @@ -104,7 +104,7 @@ for s in ipairs(states) do after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, - drop = "pipeworks:valve_off_empty", + drop = "pipeworks:valve_off_empty", mesecons = {effector = { action_on = function (pos, node) minetest.add_node(pos,{name="pipeworks:valve_on_empty", param2 = node.param2}) @@ -113,8 +113,8 @@ for s in ipairs(states) do minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2}) end }}, - on_punch = function(pos, node, puncher) - local fdir = minetest.get_node(pos).param2 + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local fdir = node.param2 minetest.add_node(pos, { name = "pipeworks:valve_"..states[3-s].."_empty", param2 = fdir }) end }) @@ -154,8 +154,8 @@ minetest.register_node("pipeworks:valve_on_loaded", { minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2}) end }}, - on_punch = function(pos, node, puncher) - local fdir = minetest.get_node(pos).param2 + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local fdir = node.param2 minetest.add_node(pos, { name = "pipeworks:valve_off_empty", param2 = fdir }) end }) -- cgit v1.2.3 From 88ad79163dab74d247d6e70aba5ec7b1f7d4a3b8 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Fri, 17 Mar 2017 09:02:34 -0400 Subject: 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. --- devices.lua | 88 +++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 66 insertions(+), 22 deletions(-) (limited to 'devices.lua') diff --git a/devices.lua b/devices.lua index a102a28..908a195 100644 --- a/devices.lua +++ b/devices.lua @@ -1,3 +1,15 @@ + +function pipeworks.fix_after_rotation(pos, node, user, mode, new_param2) + + if string.find(node.name, "spigot") then new_param2 = new_param2 % 4 end + + newnode = string.gsub(node.name, "_on", "_off") + minetest.swap_node(pos, { name = newnode, param2 = new_param2 }) + pipeworks.scan_for_pipe_objects(pos) + + return true +end + -- List of devices that should participate in the autoplace algorithm local pipereceptor_on = nil @@ -76,7 +88,8 @@ for s in ipairs(states) do on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) local fdir = node.param2 minetest.add_node(pos, { name = "pipeworks:pump_"..states[3-s], param2 = fdir }) - end + end, + on_rotate = screwdriver.rotate_simple }) minetest.register_node("pipeworks:valve_"..states[s].."_empty", { @@ -89,11 +102,11 @@ for s in ipairs(states) do paramtype2 = "facedir", selection_box = { type = "fixed", - fixed = { -8/16, -4/16, -5/16, 8/16, 5/16, 5/16 } + fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 } }, collision_box = { type = "fixed", - fixed = { -8/16, -4/16, -5/16, 8/16, 5/16, 5/16 } + fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 } }, groups = dgroups, sounds = default.node_sound_wood_defaults(), @@ -116,7 +129,8 @@ for s in ipairs(states) do on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) local fdir = node.param2 minetest.add_node(pos, { name = "pipeworks:valve_"..states[3-s].."_empty", param2 = fdir }) - end + end, + on_rotate = pipeworks.fix_after_rotation }) end @@ -130,11 +144,11 @@ minetest.register_node("pipeworks:valve_on_loaded", { paramtype2 = "facedir", selection_box = { type = "fixed", - fixed = { -8/16, -4/16, -5/16, 8/16, 5/16, 5/16 } + fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 } }, collision_box = { type = "fixed", - fixed = { -8/16, -4/16, -5/16, 8/16, 5/16, 5/16 } + fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 } }, groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), @@ -154,10 +168,11 @@ minetest.register_node("pipeworks:valve_on_loaded", { minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2}) end }}, - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) local fdir = node.param2 minetest.add_node(pos, { name = "pipeworks:valve_off_empty", param2 = fdir }) - end + end, + on_rotate = pipeworks.fix_after_rotation }) -- grating @@ -183,6 +198,7 @@ minetest.register_node("pipeworks:grating", { after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, + on_rotate = false }) -- outlet spigot @@ -211,7 +227,8 @@ minetest.register_node("pipeworks:spigot", { collision_box = { type = "fixed", fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 } - } + }, + on_rotate = pipeworks.fix_after_rotation }) minetest.register_node("pipeworks:spigot_pouring", { @@ -251,6 +268,7 @@ minetest.register_node("pipeworks:spigot_pouring", { fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 } }, drop = "pipeworks:spigot", + on_rotate = pipeworks.fix_after_rotation }) -- sealed pipe entry/exit (horizontal pipe passing through a metal @@ -333,7 +351,8 @@ minetest.register_node("pipeworks:entry_panel_empty", { end end return itemstack - end + end, + on_rotate = pipeworks.fix_after_rotation }) minetest.register_node("pipeworks:entry_panel_loaded", { @@ -354,7 +373,8 @@ minetest.register_node("pipeworks:entry_panel_loaded", { end, selection_box = panel_cbox, collision_box = panel_cbox, - drop = "pipeworks:entry_panel_empty" + drop = "pipeworks:entry_panel_empty", + on_rotate = pipeworks.fix_after_rotation }) minetest.register_node("pipeworks:flow_sensor_empty", { @@ -382,18 +402,19 @@ minetest.register_node("pipeworks:flow_sensor_empty", { selection_box = { type = "fixed", fixed = { - { -8/16, -2/16, -2/16, 8/16, 2/16, 2/16 }, - { -4/16, -3/16, -3/16, 4/16, 3/16, 3/16 }, + { -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 }, + { -3/16, -3/16, -4/16, 3/16, 3/16, 4/16 }, } }, collision_box = { type = "fixed", fixed = { - { -8/16, -2/16, -2/16, 8/16, 2/16, 2/16 }, - { -4/16, -3/16, -3/16, 4/16, 3/16, 3/16 }, + { -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 }, + { -3/16, -3/16, -4/16, 3/16, 3/16, 4/16 }, } }, - mesecons = pipereceptor_off + mesecons = pipereceptor_off, + on_rotate = pipeworks.fix_after_rotation }) minetest.register_node("pipeworks:flow_sensor_loaded", { @@ -421,19 +442,20 @@ minetest.register_node("pipeworks:flow_sensor_loaded", { selection_box = { type = "fixed", fixed = { - { -8/16, -2/16, -2/16, 8/16, 2/16, 2/16 }, - { -4/16, -3/16, -3/16, 4/16, 3/16, 3/16 }, + { -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 }, + { -3/16, -3/16, -4/16, 3/16, 3/16, 4/16 }, } }, collision_box = { type = "fixed", fixed = { - { -8/16, -2/16, -2/16, 8/16, 2/16, 2/16 }, - { -4/16, -3/16, -3/16, 4/16, 3/16, 3/16 }, + { -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 }, + { -3/16, -3/16, -4/16, 3/16, 3/16, 4/16 }, } }, drop = "pipeworks:flow_sensor_empty", - mesecons = pipereceptor_on + mesecons = pipereceptor_on, + on_rotate = pipeworks.fix_after_rotation }) -- tanks @@ -473,6 +495,7 @@ for fill = 0, 10 do after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, + on_rotate = false }) minetest.register_node("pipeworks:storage_tank_"..fill, { @@ -499,6 +522,7 @@ for fill = 0, 10 do after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, + on_rotate = false }) end @@ -533,6 +557,7 @@ minetest.register_node("pipeworks:fountainhead", { type = "fixed", fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 } }, + on_rotate = false }) minetest.register_node("pipeworks:fountainhead_pouring", { @@ -564,9 +589,28 @@ minetest.register_node("pipeworks:fountainhead_pouring", { type = "fixed", fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 } }, - drop = "pipeworks:fountainhead" + drop = "pipeworks:fountainhead", + on_rotate = false }) minetest.register_alias("pipeworks:valve_off_loaded", "pipeworks:valve_off_empty") minetest.register_alias("pipeworks:entry_panel", "pipeworks:entry_panel_empty") +minetest.register_lbm({ + name = "pipeworks:rotate_valves_flowsensors", + label = "Flip pipeworks valves and flow sensors around X/Z", + run_at_every_load = false, + nodenames = { + "pipeworks:flow_sensor_empty", + "pipeworks:flow_sensor_loaded", + "pipeworks:valve_off_empty", + "pipeworks:valve_on_empty", + "pipeworks:valve_off_loaded", + }, + action = function(pos, node) + local dir = minetest.facedir_to_dir(node.param2) + local newdir = { x=dir.z, y=dir.y, z=dir.x } + local newfdir = minetest.dir_to_facedir(newdir) + minetest.swap_node(pos, { name = node.name, param2 = newfdir }) + end +}) -- cgit v1.2.3 From e5ee0dee907ca083846513ddc2eede4ac5c1da6b Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Fri, 17 Mar 2017 09:36:17 -0400 Subject: add turn-to-vertical handling to valve, flow sensor reuse the code from entry panel --- devices.lua | 125 +++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 73 insertions(+), 52 deletions(-) (limited to 'devices.lua') diff --git a/devices.lua b/devices.lua index 908a195..b64fe5e 100644 --- a/devices.lua +++ b/devices.lua @@ -1,4 +1,6 @@ +-- rotation handlers + function pipeworks.fix_after_rotation(pos, node, user, mode, new_param2) if string.find(node.name, "spigot") then new_param2 = new_param2 % 4 end @@ -10,6 +12,71 @@ function pipeworks.fix_after_rotation(pos, node, user, mode, new_param2) return true end +function pipeworks.rotate_on_place(itemstack, placer, pointed_thing) + + local playername = placer:get_player_name() + if not minetest.is_protected(pointed_thing.under, playername) + and not minetest.is_protected(pointed_thing.above, playername) then + + local node = minetest.get_node(pointed_thing.under) + + if (not placer:get_player_control().sneak) + and minetest.registered_nodes[node.name] + and minetest.registered_nodes[node.name].on_rightclick then + minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) + else + + local pitch = placer:get_look_pitch() + local above = pointed_thing.above + local under = pointed_thing.under + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local undernode = minetest.get_node(under) + local abovenode = minetest.get_node(above) + local uname = undernode.name + local aname = abovenode.name + local isabove = (above.x == under.x) and (above.z == under.z) and (pitch > 0) + local pos1 = above + + -- check if the object should be turned vertically + if above.x == under.x + and above.z == under.z + and ( + string.find(uname, "pipeworks:pipe_") + or string.find(uname, "pipeworks:storage_") + or string.find(uname, "pipeworks:expansion_") + or ( string.find(uname, "pipeworks:grating") and not isabove ) + or ( string.find(uname, "pipeworks:pump_") and not isabove ) + + or ( + ( string.find(uname, "pipeworks:valve") + or string.find(uname, "pipeworks:entry_panel") + or string.find(uname, "pipeworks:flow_sensor") ) + and minetest.facedir_to_dir(undernode.param2).y ~= 0 ) + ) + then + fdir = 17 + end + + if minetest.registered_nodes[uname] + and minetest.registered_nodes[uname]["buildable_to"] then + pos1 = under + end + + if minetest.registered_nodes[minetest.get_node(pos1).name] + and not minetest.registered_nodes[minetest.get_node(pos1).name]["buildable_to"] then return end + + local placednode = itemstack:get_name() + minetest.add_node(pos1, {name = placednode, param2 = fdir }) + pipeworks.scan_for_pipe_objects(pos1) + + if not pipeworks.expect_infinite_stacks then + itemstack:take_item() + end + end + end + return itemstack +end + -- List of devices that should participate in the autoplace algorithm local pipereceptor_on = nil @@ -111,6 +178,7 @@ for s in ipairs(states) do groups = dgroups, sounds = default.node_sound_wood_defaults(), walkable = true, + on_place = pipeworks.rotate_on_place, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -153,6 +221,7 @@ minetest.register_node("pipeworks:valve_on_loaded", { groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + on_place = pipeworks.rotate_on_place, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -292,6 +361,7 @@ minetest.register_node("pipeworks:entry_panel_empty", { groups = {snappy=3, pipe=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + on_place = pipeworks.rotate_on_place, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -300,58 +370,6 @@ minetest.register_node("pipeworks:entry_panel_empty", { end, selection_box = panel_cbox, collision_box = panel_cbox, - on_place = function(itemstack, placer, pointed_thing) - local playername = placer:get_player_name() - if not minetest.is_protected(pointed_thing.under, playername) - and not minetest.is_protected(pointed_thing.above, playername) then - local node = minetest.get_node(pointed_thing.under) - - if not minetest.registered_nodes[node.name] - or not minetest.registered_nodes[node.name].on_rightclick then - local pitch = placer:get_look_pitch() - local above = pointed_thing.above - local under = pointed_thing.under - local fdir = minetest.dir_to_facedir(placer:get_look_dir()) - local undernode = minetest.get_node(under) - local abovenode = minetest.get_node(above) - local uname = undernode.name - local aname = abovenode.name - local isabove = (above.x == under.x) and (above.z == under.z) and (pitch > 0) - local pos1 = above - - if above.x == under.x - and above.z == under.z - and ( string.find(uname, "pipeworks:pipe_") - or string.find(uname, "pipeworks:storage_") - or string.find(uname, "pipeworks:expansion_") - or ( string.find(uname, "pipeworks:grating") and not isabove ) - or ( string.find(uname, "pipeworks:pump_") and not isabove ) - or ( string.find(uname, "pipeworks:entry_panel") - and undernode.param2 == 13 ) - ) - then - fdir = 13 - end - - if minetest.registered_nodes[uname]["buildable_to"] then - pos1 = under - end - - if not minetest.registered_nodes[minetest.get_node(pos1).name]["buildable_to"] then return end - - minetest.add_node(pos1, {name = "pipeworks:entry_panel_empty", param2 = fdir }) - pipeworks.scan_for_pipe_objects(pos1) - - if not pipeworks.expect_infinite_stacks then - itemstack:take_item() - end - - else - minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) - end - end - return itemstack - end, on_rotate = pipeworks.fix_after_rotation }) @@ -365,6 +383,7 @@ minetest.register_node("pipeworks:entry_panel_loaded", { groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + on_place = pipeworks.rotate_on_place, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -388,6 +407,7 @@ minetest.register_node("pipeworks:flow_sensor_empty", { groups = {snappy=3, pipe=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + on_place = pipeworks.rotate_on_place, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -428,6 +448,7 @@ minetest.register_node("pipeworks:flow_sensor_loaded", { groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + on_place = pipeworks.rotate_on_place, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, -- cgit v1.2.3 From 64b2611d8adbbc07bb92315eca9d71b74ea51756 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Fri, 17 Mar 2017 11:04:59 -0400 Subject: prevent being able to place "loaded" and "on" items (forces them to "empty" and "off") --- devices.lua | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) (limited to 'devices.lua') diff --git a/devices.lua b/devices.lua index b64fe5e..4b7f574 100644 --- a/devices.lua +++ b/devices.lua @@ -65,7 +65,9 @@ function pipeworks.rotate_on_place(itemstack, placer, pointed_thing) if minetest.registered_nodes[minetest.get_node(pos1).name] and not minetest.registered_nodes[minetest.get_node(pos1).name]["buildable_to"] then return end - local placednode = itemstack:get_name() + local placednode = string.gsub(itemstack:get_name(), "_loaded", "_empty") + placednode = string.gsub(placednode, "_on", "_off") + minetest.add_node(pos1, {name = placednode, param2 = fdir }) pipeworks.scan_for_pipe_objects(pos1) @@ -179,9 +181,6 @@ for s in ipairs(states) do sounds = default.node_sound_wood_defaults(), walkable = true, on_place = pipeworks.rotate_on_place, - after_place_node = function(pos) - pipeworks.scan_for_pipe_objects(pos) - end, after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -222,9 +221,6 @@ minetest.register_node("pipeworks:valve_on_loaded", { sounds = default.node_sound_wood_defaults(), walkable = true, on_place = pipeworks.rotate_on_place, - after_place_node = function(pos) - pipeworks.scan_for_pipe_objects(pos) - end, after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -323,6 +319,7 @@ minetest.register_node("pipeworks:spigot_pouring", { sounds = default.node_sound_wood_defaults(), walkable = true, after_place_node = function(pos) + minetest.set_node(pos, { name = "pipeworks:spigot", param2 = minetest.get_node(pos).param2 }) pipeworks.scan_for_pipe_objects(pos) end, after_dig_node = function(pos) @@ -362,9 +359,6 @@ minetest.register_node("pipeworks:entry_panel_empty", { sounds = default.node_sound_wood_defaults(), walkable = true, on_place = pipeworks.rotate_on_place, - after_place_node = function(pos) - pipeworks.scan_for_pipe_objects(pos) - end, after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -384,9 +378,6 @@ minetest.register_node("pipeworks:entry_panel_loaded", { sounds = default.node_sound_wood_defaults(), walkable = true, on_place = pipeworks.rotate_on_place, - after_place_node = function(pos) - pipeworks.scan_for_pipe_objects(pos) - end, after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -408,9 +399,6 @@ minetest.register_node("pipeworks:flow_sensor_empty", { sounds = default.node_sound_wood_defaults(), walkable = true, on_place = pipeworks.rotate_on_place, - after_place_node = function(pos) - pipeworks.scan_for_pipe_objects(pos) - end, after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -449,9 +437,6 @@ minetest.register_node("pipeworks:flow_sensor_loaded", { sounds = default.node_sound_wood_defaults(), walkable = true, on_place = pipeworks.rotate_on_place, - after_place_node = function(pos) - pipeworks.scan_for_pipe_objects(pos) - end, after_dig_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -592,6 +577,7 @@ minetest.register_node("pipeworks:fountainhead_pouring", { sounds = default.node_sound_wood_defaults(), walkable = true, after_place_node = function(pos) + minetest.set_node(pos, { name = "pipeworks:fountainhead", param2 = minetest.get_node(pos).param2 }) pipeworks.scan_for_pipe_objects(pos) end, after_dig_node = function(pos) -- cgit v1.2.3 From f44993cd846ab8b45408fba2c4b84664e77f4930 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Wed, 12 Apr 2017 03:39:43 -0400 Subject: allow external devices to connect to pipes and use that feature to handle most of the existing devices) also, fix the "xray" glitch in the grating --- devices.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'devices.lua') diff --git a/devices.lua b/devices.lua index 4b7f574..0121e2f 100644 --- a/devices.lua +++ b/devices.lua @@ -139,6 +139,7 @@ for s in ipairs(states) do groups = dgroups, sounds = default.node_sound_wood_defaults(), walkable = true, + pipe_connections = { top = 1 }, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -252,11 +253,17 @@ minetest.register_node("pipeworks:grating", { "pipeworks_grating_sides.png", "pipeworks_grating_sides.png" }, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { -0.49, -0.49, -0.49, 0.49, 0.5, 0.49 } + }, sunlight_propagates = true, paramtype = "light", groups = {snappy=3, pipe=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + pipe_connections = { top = 1 }, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -279,6 +286,8 @@ minetest.register_node("pipeworks:spigot", { groups = {snappy=3, pipe=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + pipe_connections = { left=1, right=1, front=1, back=1, + left_param2 = 3, right_param2 = 1, front_param2 = 2, back_param2 = 0 }, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -318,6 +327,8 @@ minetest.register_node("pipeworks:spigot_pouring", { groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + pipe_connections = { left=1, right=1, front=1, back=1, + left_param2 = 3, right_param2 = 1, front_param2 = 2, back_param2 = 0 }, after_place_node = function(pos) minetest.set_node(pos, { name = "pipeworks:spigot", param2 = minetest.get_node(pos).param2 }) pipeworks.scan_for_pipe_objects(pos) @@ -494,6 +505,7 @@ for fill = 0, 10 do sounds = default.node_sound_wood_defaults(), walkable = true, drop = "pipeworks:storage_tank_0", + pipe_connections = { top = 1, bottom = 1}, after_place_node = function(pos) pipeworks.look_for_stackable_tanks(pos) pipeworks.scan_for_pipe_objects(pos) @@ -521,6 +533,7 @@ for fill = 0, 10 do sounds = default.node_sound_wood_defaults(), walkable = true, drop = "pipeworks:storage_tank_0", + pipe_connections = { top = 1, bottom = 1}, after_place_node = function(pos) pipeworks.look_for_stackable_tanks(pos) pipeworks.scan_for_pipe_objects(pos) @@ -544,6 +557,7 @@ minetest.register_node("pipeworks:fountainhead", { groups = {snappy=3, pipe=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + pipe_connections = { bottom = 1 }, after_place_node = function(pos) pipeworks.scan_for_pipe_objects(pos) end, @@ -576,6 +590,7 @@ minetest.register_node("pipeworks:fountainhead_pouring", { groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), walkable = true, + pipe_connections = { bottom = 1 }, after_place_node = function(pos) minetest.set_node(pos, { name = "pipeworks:fountainhead", param2 = minetest.get_node(pos).param2 }) pipeworks.scan_for_pipe_objects(pos) -- cgit v1.2.3