summaryrefslogtreecommitdiff
path: root/pipeworks
diff options
context:
space:
mode:
Diffstat (limited to 'pipeworks')
-rw-r--r--pipeworks/autoplace_pipes.lua137
-rw-r--r--pipeworks/devices.lua233
-rw-r--r--pipeworks/flowing_logic.lua23
-rw-r--r--pipeworks/models/pipeworks_flow_sensor.obj502
-rw-r--r--pipeworks/models/pipeworks_valve_off.obj537
-rw-r--r--pipeworks/models/pipeworks_valve_on.obj537
-rw-r--r--pipeworks/pipes.lua11
-rw-r--r--pipeworks/signal_tubes.lua2
8 files changed, 1008 insertions, 974 deletions
diff --git a/pipeworks/autoplace_pipes.lua b/pipeworks/autoplace_pipes.lua
index 4fc3665..efd3bcd 100644
--- a/pipeworks/autoplace_pipes.lua
+++ b/pipeworks/autoplace_pipes.lua
@@ -1,3 +1,42 @@
+
+-- get the axis dir (just 6 faces) of target node, assumes the pipe is the axis
+
+function pipeworks.get_axis_dir(nodetable, pattern)
+ local pxm,pxp,pym,pyp,pzm,pzp
+
+ if string.find(nodetable.nxm.name, pattern)
+ and minetest.facedir_to_dir(nodetable.nxm.param2).x ~= 0 then
+ pxm=1
+ end
+
+ if string.find(nodetable.nxp.name, pattern)
+ and minetest.facedir_to_dir(nodetable.nxp.param2).x ~= 0 then
+ pxp=1
+ end
+
+ if string.find(nodetable.nzm.name, pattern)
+ and minetest.facedir_to_dir(nodetable.nzm.param2).z ~= 0 then
+ pzm=1
+ end
+
+ if string.find(nodetable.nzp.name, pattern)
+ and minetest.facedir_to_dir(nodetable.nzp.param2).z ~= 0 then
+ pzp=1
+ end
+
+ if string.find(nodetable.nym.name, pattern)
+ and minetest.facedir_to_dir(nodetable.nym.param2).y ~= 0 then
+ pym=1
+ end
+
+ if string.find(nodetable.nyp.name, pattern)
+ and minetest.facedir_to_dir(nodetable.nyp.param2).y ~= 0 then
+ pyp=1
+ end
+ local match = pxm or pxp or pym or pyp or pzm or pzp
+ return match,pxm,pxp,pym,pyp,pzm,pzp
+end
+
-- autorouting for pipes
local tube_table = {[0] = 1, 2, 2, 4, 2, 4, 4, 5, 2, 3, 4, 6, 4, 6, 5, 7, 2, 4, 3, 6, 4, 5, 6, 7, 4, 6, 6, 8, 5, 7, 7, 9, 2, 4, 4, 5, 3, 6, 6, 7, 4, 6, 5, 7, 6, 8, 7, 9, 4, 5, 6, 7, 6, 7, 8, 9, 5, 7, 7, 9, 7, 9, 9, 10}
local tube_table_facedirs = {[0] = 0, 0, 5, 0, 3, 4, 3, 0, 2, 0, 2, 0, 6, 4, 3, 0, 7, 12, 5, 12, 7, 4, 5, 5, 18, 20, 16, 0, 7, 4, 7, 0, 1, 8, 1, 1, 1, 13, 1, 1, 10, 8, 2, 2, 17, 4, 3, 6, 9, 9, 9, 9, 21, 13, 1, 1, 10, 10, 11, 2, 19, 4, 3, 0}
@@ -40,6 +79,15 @@ function pipeworks.scan_pipe_surroundings(pos)
local nzm = minetest.get_node({ x=pos.x , y=pos.y , z=pos.z-1 })
local nzp = minetest.get_node({ x=pos.x , y=pos.y , z=pos.z+1 })
+ local nodetable = {
+ nxm = nxm,
+ nxp = nxp,
+ nym = nym,
+ nyp = nyp,
+ nzm = nzm,
+ nzp = nzp
+ }
+
if (string.find(nxm.name, "pipeworks:pipe_") ~= nil) then pxm=1 end
if (string.find(nxp.name, "pipeworks:pipe_") ~= nil) then pxp=1 end
if (string.find(nym.name, "pipeworks:pipe_") ~= nil) then pym=1 end
@@ -49,46 +97,26 @@ function pipeworks.scan_pipe_surroundings(pos)
-- Special handling for valves...
- if (string.find(nxm.name, "pipeworks:valve") ~= nil)
- and (nxm.param2 == 0 or nxm.param2 == 2) then
- pxm=1
- end
-
- if (string.find(nxp.name, "pipeworks:valve") ~= nil)
- and (nxp.param2 == 0 or nxp.param2 == 2) then
- pxp=1
- end
-
- if (string.find(nzm.name, "pipeworks:valve") ~= nil)
- and (nzm.param2 == 1 or nzm.param2 == 3) then
- pzm=1
- end
-
- if (string.find(nzp.name, "pipeworks:valve") ~= nil)
- and (nzp.param2 == 1 or nzp.param2 == 3) then
- pzp=1
+ local match,a,b,c,d,e,f = pipeworks.get_axis_dir(nodetable, "pipeworks:valve")
+ if match then
+ pxm = a or pxm
+ pxp = b or pxp
+ pym = c or pym
+ pyp = d or pyp
+ pzm = e or pzm
+ pzp = f or pzp
end
-- ...flow sensors...
- if (string.find(nxm.name, "pipeworks:flow_sensor") ~= nil)
- and (nxm.param2 == 0 or nxm.param2 == 2) then
- pxm=1
- end
-
- if (string.find(nxp.name, "pipeworks:flow_sensor") ~= nil)
- and (nxp.param2 == 0 or nxp.param2 == 2) then
- pxp=1
- end
-
- if (string.find(nzm.name, "pipeworks:flow_sensor") ~= nil)
- and (nzm.param2 == 1 or nzm.param2 == 3) then
- pzm=1
- end
-
- if (string.find(nzp.name, "pipeworks:flow_sensor") ~= nil)
- and (nzp.param2 == 1 or nzp.param2 == 3) then
- pzp=1
+ local match,a,b,c,d,e,f = pipeworks.get_axis_dir(nodetable, "pipeworks:flow_sensor")
+ if match then
+ pxm = a or pxm
+ pxp = b or pxp
+ pym = c or pym
+ pyp = d or pyp
+ pzm = e or pzm
+ pzp = f or pzp
end
-- ...spigots...
@@ -115,37 +143,16 @@ function pipeworks.scan_pipe_surroundings(pos)
-- ...sealed pipe entry/exit...
- if (string.find(nxm.name, "pipeworks:entry_panel") ~= nil)
- and (nxm.param2 == 1 or nxm.param2 == 3) then
- pxm=1
- end
-
- if (string.find(nxp.name, "pipeworks:entry_panel") ~= nil)
- and (nxp.param2 == 1 or nxp.param2 == 3) then
- pxp=1
- end
-
- if (string.find(nzm.name, "pipeworks:entry_panel") ~= nil)
- and (nzm.param2 == 0 or nzm.param2 == 2) then
- pzm=1
- end
-
- if (string.find(nzp.name, "pipeworks:entry_panel") ~= nil)
- and (nzp.param2 == 0 or nzp.param2 == 2) then
- pzp=1
+ local match,a,b,c,d,e,f = pipeworks.get_axis_dir(nodetable, "pipeworks:entry_panel")
+ if match then
+ pxm = a or pxm
+ pxp = b or pxp
+ pym = c or pym
+ pyp = d or pyp
+ pzm = e or pzm
+ pzp = f or pzp
end
- if (string.find(nym.name, "pipeworks:entry_panel") ~= nil)
- and nym.param2 == 13 then
- pym=1
- end
-
- if (string.find(nyp.name, "pipeworks:entry_panel") ~= nil)
- and nyp.param2 == 13 then
- pyp=1
- end
-
-
-- ...pumps, grates...
if (string.find(nym.name, "pipeworks:grating") ~= nil) or
diff --git a/pipeworks/devices.lua b/pipeworks/devices.lua
index a102a28..4b7f574 100644
--- a/pipeworks/devices.lua
+++ b/pipeworks/devices.lua
@@ -1,3 +1,84 @@
+
+-- 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
+
+ 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
+
+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 = 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)
+
+ 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
@@ -76,7 +157,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,18 +171,16 @@ 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(),
walkable = true,
- after_place_node = function(pos)
- pipeworks.scan_for_pipe_objects(pos)
- end,
+ on_place = pipeworks.rotate_on_place,
after_dig_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
end,
@@ -116,7 +196,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,18 +211,16 @@ 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(),
walkable = true,
- after_place_node = function(pos)
- pipeworks.scan_for_pipe_objects(pos)
- end,
+ on_place = pipeworks.rotate_on_place,
after_dig_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
end,
@@ -154,10 +233,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 +263,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 +292,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", {
@@ -237,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)
@@ -251,6 +334,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
@@ -274,66 +358,13 @@ minetest.register_node("pipeworks:entry_panel_empty", {
groups = {snappy=3, pipe=1},
sounds = default.node_sound_wood_defaults(),
walkable = true,
- after_place_node = function(pos)
- pipeworks.scan_for_pipe_objects(pos)
- end,
+ on_place = pipeworks.rotate_on_place,
after_dig_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
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
})
minetest.register_node("pipeworks:entry_panel_loaded", {
@@ -346,15 +377,14 @@ 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,
- after_place_node = function(pos)
- pipeworks.scan_for_pipe_objects(pos)
- end,
+ on_place = pipeworks.rotate_on_place,
after_dig_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
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", {
@@ -368,9 +398,7 @@ minetest.register_node("pipeworks:flow_sensor_empty", {
groups = {snappy=3, pipe=1},
sounds = default.node_sound_wood_defaults(),
walkable = true,
- after_place_node = function(pos)
- pipeworks.scan_for_pipe_objects(pos)
- end,
+ on_place = pipeworks.rotate_on_place,
after_dig_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
end,
@@ -382,18 +410,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", {
@@ -407,9 +436,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,
- after_place_node = function(pos)
- pipeworks.scan_for_pipe_objects(pos)
- end,
+ on_place = pipeworks.rotate_on_place,
after_dig_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
end,
@@ -421,19 +448,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 +501,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 +528,7 @@ for fill = 0, 10 do
after_dig_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
end,
+ on_rotate = false
})
end
@@ -533,6 +563,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", {
@@ -546,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)
@@ -564,9 +596,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
+})
diff --git a/pipeworks/flowing_logic.lua b/pipeworks/flowing_logic.lua
index 5166b15..e1c0bf5 100644
--- a/pipeworks/flowing_logic.lua
+++ b/pipeworks/flowing_logic.lua
@@ -31,19 +31,32 @@ pipeworks.check_for_inflows = function(pos,node)
{x=pos.x-1,y=pos.y,z=pos.z},
{x=pos.x+1,y=pos.y,z=pos.z},
{x=pos.x,y=pos.y,z=pos.z-1},
- {x=pos.x,y=pos.y,z=pos.z+1}, }
+ {x=pos.x,y=pos.y,z=pos.z+1},
+ }
local newnode = false
local source = false
- for i =1,6 do
+ for i = 1, 6 do
if newnode then break end
- local name = minetest.get_node(coords[i]).name
+ local testnode = minetest.get_node(coords[i])
+ local name = testnode.name
if name and (name == "pipeworks:pump_on" and pipeworks.check_for_liquids(coords[i])) or string.find(name,"_loaded") then
if string.find(name,"_loaded") then
source = minetest.get_meta(coords[i]):get_string("source")
if source == minetest.pos_to_string(pos) then break end
end
- newnode = string.gsub(node.name,"empty","loaded")
- source = {x=coords[i].x,y=coords[i].y,z=coords[i].z}
+ if string.find(name, "valve") or string.find(name, "sensor") then
+
+ if ((i == 3 or i == 4) and minetest.facedir_to_dir(testnode.param2).x ~= 0)
+ or ((i == 5 or i == 6) and minetest.facedir_to_dir(testnode.param2).z ~= 0)
+ or ((i == 1 or i == 2) and minetest.facedir_to_dir(testnode.param2).y ~= 0) then
+
+ newnode = string.gsub(node.name,"empty","loaded")
+ source = {x=coords[i].x,y=coords[i].y,z=coords[i].z}
+ end
+ else
+ newnode = string.gsub(node.name,"empty","loaded")
+ source = {x=coords[i].x,y=coords[i].y,z=coords[i].z}
+ end
end
end
if newnode then
diff --git a/pipeworks/models/pipeworks_flow_sensor.obj b/pipeworks/models/pipeworks_flow_sensor.obj
index f0ba87e..56ba370 100644
--- a/pipeworks/models/pipeworks_flow_sensor.obj
+++ b/pipeworks/models/pipeworks_flow_sensor.obj
@@ -1,114 +1,114 @@
-# Blender v2.69 (sub 0) OBJ File: 'pipe-flow-sensor.blend'
+# Blender v2.72 (sub 0) OBJ File: 'pipe-flow-sensor.blend'
# www.blender.org
o Cube.001
-v -0.468750 -0.153248 -0.030483
-v -0.500000 -0.153248 -0.030483
-v -0.468750 -0.153248 0.030483
-v -0.500000 -0.153248 0.030483
-v -0.468750 -0.129917 0.086808
-v -0.500000 -0.129917 0.086808
-v -0.468750 -0.086808 0.129917
-v -0.500000 -0.086808 0.129917
-v -0.468750 -0.030483 0.153248
-v -0.500000 -0.030483 0.153248
-v -0.468750 0.030483 0.153248
-v -0.500000 0.030483 0.153248
-v -0.468750 0.086808 0.129917
-v -0.500000 0.086808 0.129917
-v -0.468750 0.129917 0.086808
-v -0.500000 0.129917 0.086808
-v -0.468750 0.153248 0.030483
-v -0.500000 0.153247 0.030483
-v -0.468750 0.153248 -0.030483
-v -0.500000 0.153248 -0.030483
-v -0.468750 0.129917 -0.086808
-v -0.500000 0.129917 -0.086808
-v -0.468750 0.086808 -0.129917
-v -0.500000 0.086808 -0.129917
-v -0.468750 0.030483 -0.153248
-v -0.500000 0.030483 -0.153248
-v -0.468750 -0.030483 -0.153248
-v -0.500000 -0.030483 -0.153248
-v -0.468750 -0.086808 -0.129917
-v -0.500000 -0.086808 -0.129917
-v -0.468750 -0.129917 -0.086808
-v -0.500000 -0.129917 -0.086808
-v -0.468750 -0.122598 -0.024386
-v -0.468750 -0.122598 0.024386
-v -0.468750 -0.103934 0.069446
-v -0.468750 -0.069446 0.103934
-v -0.468750 -0.024386 0.122598
-v -0.468750 0.024386 0.122598
-v -0.468750 0.069446 0.103934
-v -0.468750 0.103934 0.069446
-v -0.468750 0.122598 0.024386
-v -0.468750 0.122598 -0.024386
-v -0.468750 0.103934 -0.069446
-v -0.468750 0.069446 -0.103934
-v -0.468750 0.024386 -0.122598
-v -0.468750 -0.024387 -0.122598
-v -0.468750 -0.069447 -0.103934
-v -0.468750 -0.103934 -0.069446
-v -0.468750 -0.000000 -0.000000
-v -0.500000 -0.000000 -0.000000
-v 0.468750 -0.069446 0.103934
-v 0.468750 -0.103933 0.069447
-v 0.468750 -0.122598 0.024387
-v 0.468750 -0.122598 -0.024386
-v 0.500000 -0.129917 -0.086807
-v 0.468750 -0.129917 -0.086807
-v 0.500000 -0.086808 -0.129917
-v 0.468750 -0.086808 -0.129917
-v 0.500000 -0.030483 -0.153247
-v 0.468750 -0.030483 -0.153247
-v 0.500000 0.030483 -0.153247
-v 0.468750 0.030483 -0.153247
-v 0.500000 0.086808 -0.129917
-v 0.468750 0.086808 -0.129917
-v 0.500000 0.129917 -0.086808
-v 0.468750 0.129917 -0.086808
-v 0.500000 0.153248 -0.030483
-v 0.468750 0.153248 -0.030483
-v 0.500000 0.153248 0.030483
-v 0.468750 0.153248 0.030483
-v 0.500000 0.129917 0.086808
-v 0.468750 0.129917 0.086808
-v 0.500000 0.086808 0.129917
-v 0.468750 0.086808 0.129917
-v 0.500000 0.030483 0.153248
-v 0.468750 0.030483 0.153248
-v 0.500000 -0.030483 0.153248
-v 0.468750 -0.030483 0.153248
-v 0.500000 -0.086808 0.129917
-v 0.468750 -0.086808 0.129917
-v 0.500000 -0.129917 0.086808
-v 0.468750 -0.129917 0.086808
-v 0.500000 -0.153247 0.030483
-v 0.468750 -0.153247 0.030483
-v 0.500000 -0.153247 -0.030483
-v 0.468750 -0.153247 -0.030483
-v 0.468750 -0.024386 0.122598
-v 0.468750 0.024387 0.122598
-v 0.468750 0.069447 0.103934
-v 0.468750 0.103934 0.069447
-v 0.468750 0.122598 0.024387
-v 0.468750 0.122598 -0.024386
-v 0.468750 0.103934 -0.069446
-v 0.468750 0.069447 -0.103933
-v 0.468750 0.024387 -0.122598
-v 0.468750 -0.024386 -0.122598
-v 0.468750 -0.069446 -0.103933
-v 0.468750 -0.103933 -0.069446
-v 0.468750 0.000000 0.000000
-v 0.500000 0.000000 0.000000
-v 0.250000 -0.187500 0.187500
-v -0.250000 -0.187500 0.187500
-v -0.250000 -0.187500 -0.187500
-v 0.250000 -0.187500 -0.187500
-v 0.250000 0.187500 0.187500
-v -0.250000 0.187500 0.187500
-v -0.250000 0.187500 -0.187500
-v 0.250000 0.187500 -0.187500
+v -0.030483 -0.153248 0.468750
+v -0.030483 -0.153248 0.500000
+v 0.030483 -0.153248 0.468750
+v 0.030483 -0.153248 0.500000
+v 0.086808 -0.129917 0.468750
+v 0.086808 -0.129917 0.500000
+v 0.129917 -0.086808 0.468750
+v 0.129917 -0.086808 0.500000
+v 0.153248 -0.030483 0.468750
+v 0.153248 -0.030483 0.500000
+v 0.153248 0.030483 0.468750
+v 0.153248 0.030483 0.500000
+v 0.129917 0.086808 0.468750
+v 0.129917 0.086808 0.500000
+v 0.086808 0.129917 0.468750
+v 0.086808 0.129917 0.500000
+v 0.030483 0.153248 0.468750
+v 0.030483 0.153247 0.500000
+v -0.030483 0.153248 0.468750
+v -0.030483 0.153248 0.500000
+v -0.086808 0.129917 0.468750
+v -0.086808 0.129917 0.500000
+v -0.129917 0.086808 0.468750
+v -0.129917 0.086808 0.500000
+v -0.153248 0.030483 0.468750
+v -0.153248 0.030483 0.500000
+v -0.153248 -0.030483 0.468750
+v -0.153248 -0.030483 0.500000
+v -0.129917 -0.086808 0.468750
+v -0.129917 -0.086808 0.500000
+v -0.086808 -0.129917 0.468750
+v -0.086808 -0.129917 0.500000
+v -0.024386 -0.122598 0.468750
+v 0.024386 -0.122598 0.468750
+v 0.069446 -0.103934 0.468750
+v 0.103934 -0.069446 0.468750
+v 0.122598 -0.024386 0.468750
+v 0.122598 0.024386 0.468750
+v 0.103934 0.069446 0.468750
+v 0.069446 0.103934 0.468750
+v 0.024386 0.122598 0.468750
+v -0.024386 0.122598 0.468750
+v -0.069446 0.103934 0.468750
+v -0.103934 0.069446 0.468750
+v -0.122598 0.024386 0.468750
+v -0.122598 -0.024387 0.468750
+v -0.103934 -0.069447 0.468750
+v -0.069446 -0.103934 0.468750
+v -0.000000 -0.000000 0.468750
+v -0.000000 -0.000000 0.500000
+v 0.103934 -0.069446 -0.468750
+v 0.069446 -0.103933 -0.468750
+v 0.024386 -0.122598 -0.468750
+v -0.024386 -0.122598 -0.468750
+v -0.086808 -0.129917 -0.500000
+v -0.086808 -0.129917 -0.468750
+v -0.129917 -0.086808 -0.500000
+v -0.129917 -0.086808 -0.468750
+v -0.153248 -0.030483 -0.500000
+v -0.153248 -0.030483 -0.468750
+v -0.153248 0.030483 -0.500000
+v -0.153248 0.030483 -0.468750
+v -0.129917 0.086808 -0.500000
+v -0.129917 0.086808 -0.468750
+v -0.086808 0.129917 -0.500000
+v -0.086808 0.129917 -0.468750
+v -0.030483 0.153248 -0.500000
+v -0.030483 0.153248 -0.468750
+v 0.030483 0.153248 -0.500000
+v 0.030483 0.153248 -0.468750
+v 0.086808 0.129917 -0.500000
+v 0.086808 0.129917 -0.468750
+v 0.129917 0.086808 -0.500000
+v 0.129917 0.086808 -0.468750
+v 0.153248 0.030483 -0.500000
+v 0.153248 0.030483 -0.468750
+v 0.153248 -0.030483 -0.500000
+v 0.153248 -0.030483 -0.468750
+v 0.129917 -0.086808 -0.500000
+v 0.129917 -0.086808 -0.468750
+v 0.086808 -0.129917 -0.500000
+v 0.086808 -0.129917 -0.468750
+v 0.030483 -0.153247 -0.500000
+v 0.030483 -0.153247 -0.468750
+v -0.030483 -0.153247 -0.500000
+v -0.030483 -0.153247 -0.468750
+v 0.122598 -0.024386 -0.468750
+v 0.122598 0.024387 -0.468750
+v 0.103934 0.069447 -0.468750
+v 0.069446 0.103934 -0.468750
+v 0.024386 0.122598 -0.468750
+v -0.024386 0.122598 -0.468750
+v -0.069446 0.103934 -0.468750
+v -0.103934 0.069447 -0.468750
+v -0.122598 0.024387 -0.468750
+v -0.122598 -0.024386 -0.468750
+v -0.103934 -0.069446 -0.468750
+v -0.069446 -0.103933 -0.468750
+v 0.000000 0.000000 -0.468750
+v 0.000000 0.000000 -0.500000
+v 0.187500 -0.187500 -0.250000
+v 0.187500 -0.187500 0.250000
+v -0.187500 -0.187500 0.250000
+v -0.187500 -0.187500 -0.250000
+v 0.187500 0.187500 -0.250000
+v 0.187500 0.187500 0.250000
+v -0.187500 0.187500 0.250000
+v -0.187500 0.187500 -0.250000
vt 0.813725 0.460784
vt 0.774510 0.460784
vt 0.774510 0.500000
@@ -181,40 +181,11 @@ vt 0.460784 0.441176
vt 0.460784 0.127451
vt 0.500000 0.127451
vt 0.500000 0.441176
-vt 0.402558 0.546671
-vt 0.440212 0.531167
-vt 0.460591 0.633009
-vt 0.373738 0.575320
-vt 0.358141 0.612752
-vt 0.358141 0.653267
-vt 0.373738 0.690699
vt 0.402558 0.719348
-vt 0.440212 0.734852
-vt 0.480969 0.734852
vt 0.518623 0.719348
-vt 0.547443 0.690699
-vt 0.563040 0.653267
-vt 0.563040 0.612752
-vt 0.547443 0.575320
-vt 0.518623 0.546671
-vt 0.480969 0.531167
-vt 0.639882 0.546671
-vt 0.677537 0.531167
-vt 0.697915 0.633009
-vt 0.611063 0.575320
-vt 0.595466 0.612752
-vt 0.595466 0.653267
-vt 0.611063 0.690699
vt 0.639882 0.719347
-vt 0.677537 0.734852
-vt 0.718293 0.734852
vt 0.755947 0.719347
-vt 0.784767 0.690699
-vt 0.800364 0.653267
-vt 0.800364 0.612752
-vt 0.784767 0.575320
vt 0.755948 0.546671
-vt 0.718293 0.531167
vt 0.892157 0.441176
vt 0.892157 0.127451
vt 0.931373 0.127451
@@ -269,122 +240,141 @@ vt 0.009804 0.254902
vt 0.323529 0.254902
vt 0.323529 0.490196
vt 0.009804 0.490196
+vn 0.000000 -1.000000 -0.000000
+vn 0.382700 -0.923900 -0.000000
+vn 0.707100 -0.707100 -0.000000
+vn 0.923900 -0.382700 -0.000000
+vn 1.000000 0.000000 0.000000
+vn 0.923900 0.382700 0.000000
+vn 0.707100 0.707100 0.000000
+vn 0.382700 0.923900 0.000000
+vn 0.000000 1.000000 0.000000
+vn -0.382700 0.923900 0.000000
+vn -0.707100 0.707100 0.000000
+vn -0.923900 0.382700 0.000000
+vn -1.000000 -0.000000 0.000000
+vn -0.923900 -0.382700 -0.000000
+vn -0.382700 -0.923900 -0.000000
+vn -0.707100 -0.707100 -0.000000
+vn 0.000000 -0.000000 1.000000
+vn 0.000000 0.000000 -1.000000
+g Cube.001_Cube.001_None
s off
-f 1/1 3/2 4/3 2/4
-f 3/2 5/5 6/6 4/3
-f 5/5 7/7 8/8 6/6
-f 7/7 9/9 10/10 8/8
-f 9/9 11/11 12/12 10/10
-f 11/11 13/13 14/14 12/12
-f 13/13 15/15 16/16 14/14
-f 15/15 17/17 18/18 16/16
-f 17/17 19/19 20/20 18/18
-f 19/19 21/21 22/22 20/20
-f 21/21 23/23 24/24 22/22
-f 23/23 25/25 26/26 24/24
-f 25/27 27/28 28/29 26/30
-f 27/28 29/31 30/32 28/29
-f 31/33 1/1 2/4 32/34
-f 29/31 31/33 32/34 30/32
-f 4/35 50/36 2/37
-f 1/38 49/39 3/40
-f 3/40 49/39 5/41
-f 5/41 49/39 7/42
-f 7/42 49/39 9/43
-f 9/43 49/39 11/44
-f 11/44 49/39 13/45
-f 13/45 49/39 15/46
-f 15/46 49/39 17/47
-f 17/47 49/39 19/48
-f 19/48 49/39 21/49
-f 21/49 49/39 23/50
-f 23/50 49/39 25/51
-f 25/51 49/39 27/52
-f 27/52 49/39 29/53
-f 29/53 49/39 31/54
-f 31/54 49/39 1/38
-f 2/37 50/36 32/55
-f 32/55 50/36 30/56
-f 30/56 50/36 28/57
-f 28/57 50/36 26/58
-f 26/58 50/36 24/59
-f 24/59 50/36 22/60
-f 22/60 50/36 20/61
-f 20/61 50/36 18/62
-f 18/62 50/36 16/63
-f 16/63 50/36 14/64
-f 14/64 50/36 12/65
-f 12/65 50/36 10/66
-f 10/66 50/36 8/67
-f 8/67 50/36 6/68
-f 6/68 50/36 4/35
-f 41/69 91/70 92/71 42/72
-f 81/73 83/74 100/75
-f 79/76 81/73 100/75
-f 77/77 79/76 100/75
-f 75/78 77/77 100/75
-f 73/79 75/78 100/75
-f 71/80 73/79 100/75
-f 69/81 71/80 100/75
-f 67/82 69/81 100/75
-f 65/83 67/82 100/75
-f 63/84 65/83 100/75
-f 61/85 63/84 100/75
-f 59/86 61/85 100/75
-f 57/87 59/86 100/75
-f 55/88 57/87 100/75
-f 85/89 55/88 100/75
-f 56/90 86/91 99/92
-f 58/93 56/90 99/92
-f 60/94 58/93 99/92
-f 62/95 60/94 99/92
-f 64/96 62/95 99/92
-f 66/97 64/96 99/92
-f 68/98 66/97 99/92
-f 70/99 68/98 99/92
-f 72/100 70/99 99/92
-f 74/101 72/100 99/92
-f 76/102 74/101 99/92
-f 78/103 76/102 99/92
-f 80/104 78/103 99/92
-f 82/105 80/104 99/92
-f 84/106 82/105 99/92
-f 86/91 84/106 99/92
-f 83/74 85/89 100/75
-f 58/22 57/21 55/19 56/20
-f 56/20 55/19 85/17 86/18
-f 60/24 59/23 57/21 58/22
-f 62/26 61/25 59/23 60/24
-f 64/29 63/28 61/27 62/30
-f 66/32 65/31 63/28 64/29
-f 68/34 67/33 65/31 66/32
-f 70/4 69/1 67/33 68/34
-f 72/3 71/2 69/1 70/4
-f 74/6 73/5 71/2 72/3
-f 76/8 75/7 73/5 74/6
-f 78/10 77/9 75/7 76/8
-f 80/12 79/11 77/9 78/10
-f 82/14 81/13 79/11 80/12
-f 84/16 83/15 81/13 82/14
-f 86/18 85/17 83/15 84/16
-f 36/107 51/108 87/109 37/110
-f 34/111 53/112 52/113 35/114
-f 47/115 97/116 98/117 48/118
-f 33/119 54/120 53/112 34/111
-f 35/114 52/113 51/108 36/107
-f 48/118 98/117 54/120 33/119
-f 46/121 96/122 97/116 47/115
-f 45/123 95/124 96/122 46/121
-f 44/125 94/126 95/124 45/123
-f 43/127 93/128 94/126 44/125
-f 42/72 92/71 93/128 43/127
-f 40/129 90/130 91/70 41/69
-f 39/131 89/132 90/130 40/129
-f 38/133 88/134 89/132 39/131
-f 37/110 87/109 88/135 38/136
-f 105/137 106/138 102/139 101/140
-f 106/141 107/142 103/143 102/144
-f 107/145 108/146 104/147 103/148
-f 108/149 105/150 101/151 104/152
-f 101/153 102/154 103/155 104/156
-f 108/157 107/158 106/159 105/160
+f 1/1/1 3/2/1 4/3/1 2/4/1
+f 3/2/2 5/5/2 6/6/2 4/3/2
+f 5/5/3 7/7/3 8/8/3 6/6/3
+f 7/7/4 9/9/4 10/10/4 8/8/4
+f 9/9/5 11/11/5 12/12/5 10/10/5
+f 11/11/6 13/13/6 14/14/6 12/12/6
+f 13/13/7 15/15/7 16/16/7 14/14/7
+f 15/15/8 17/17/8 18/18/8 16/16/8
+f 17/17/9 19/19/9 20/20/9 18/18/9
+f 19/19/10 21/21/10 22/22/10 20/20/10
+f 21/21/11 23/23/11 24/24/11 22/22/11
+f 23/23/12 25/25/12 26/26/12 24/24/12
+f 25/27/13 27/28/13 28/29/13 26/30/13
+f 27/28/14 29/31/14 30/32/14 28/29/14
+f 31/33/15 1/1/15 2/4/15 32/34/15
+f 29/31/16 31/33/16 32/34/16 30/32/16
+f 4/35/17 50/36/17 2/37/17
+f 1/38/18 49/39/18 3/40/18
+f 3/40/18 49/39/18 5/41/18
+f 5/41/18 49/39/18 7/42/18
+f 7/42/18 49/39/18 9/43/18
+f 9/43/18 49/39/18 11/44/18
+f 11/44/18 49/39/18 13/45/18
+f 13/45/18 49/39/18 15/46/18
+f 15/46/18 49/39/18 17/47/18
+f 17/47/18 49/39/18 19/48/18
+f 19/48/18 49/39/18 21/49/18
+f 21/49/18 49/39/18 23/50/18
+f 23/50/18 49/39/18 25/51/18
+f 25/51/18 49/39/18 27/52/18
+f 27/52/18 49/39/18 29/53/18
+f 29/53/18 49/39/18 31/54/18
+f 31/54/18 49/39/18 1/38/18
+f 2/37/17 50/36/17 32/55/17
+f 32/55/17 50/36/17 30/56/17
+f 30/56/17 50/36/17 28/57/17
+f 28/57/17 50/36/17 26/58/17
+f 26/58/17 50/36/17 24/59/17
+f 24/59/17 50/36/17 22/60/17
+f 22/60/17 50/36/17 20/61/17
+f 20/61/17 50/36/17 18/62/17
+f 18/62/17 50/36/17 16/63/17
+f 16/63/17 50/36/17 14/64/17
+f 14/64/17 50/36/17 12/65/17
+f 12/65/17 50/36/17 10/66/17
+f 10/66/17 50/36/17 8/67/17
+f 8/67/17 50/36/17 6/68/17
+f 6/68/17 50/36/17 4/35/17
+f 41/69/9 91/70/9 92/71/9 42/72/9
+f 81/55/18 83/37/18 100/36/18
+f 79/56/18 81/55/18 100/36/18
+f 77/57/18 79/56/18 100/36/18
+f 75/58/18 77/57/18 100/36/18
+f 73/59/18 75/58/18 100/36/18
+f 71/73/18 73/59/18 100/36/18
+f 69/61/18 71/73/18 100/36/18
+f 67/62/18 69/61/18 100/36/18
+f 65/74/18 67/62/18 100/36/18
+f 63/64/18 65/74/18 100/36/18
+f 61/65/18 63/64/18 100/36/18
+f 59/66/18 61/65/18 100/36/18
+f 57/67/18 59/66/18 100/36/18
+f 55/68/18 57/67/18 100/36/18
+f 85/35/18 55/68/18 100/36/18
+f 56/54/17 86/38/17 99/39/17
+f 58/53/17 56/54/17 99/39/17
+f 60/52/17 58/53/17 99/39/17
+f 62/51/17 60/52/17 99/39/17
+f 64/50/17 62/51/17 99/39/17
+f 66/75/17 64/50/17 99/39/17
+f 68/48/17 66/75/17 99/39/17
+f 70/47/17 68/48/17 99/39/17
+f 72/76/17 70/47/17 99/39/17
+f 74/45/17 72/76/17 99/39/17
+f 76/44/17 74/45/17 99/39/17
+f 78/43/17 76/44/17 99/39/17
+f 80/42/17 78/43/17 99/39/17
+f 82/77/17 80/42/17 99/39/17
+f 84/40/17 82/77/17 99/39/17
+f 86/38/17 84/40/17 99/39/17
+f 83/37/18 85/35/18 100/36/18
+f 58/22/16 57/21/16 55/19/16 56/20/16
+f 56/20/15 55/19/15 85/17/15 86/18/15
+f 60/24/14 59/23/14 57/21/14 58/22/14
+f 62/26/13 61/25/13 59/23/13 60/24/13
+f 64/29/12 63/28/12 61/27/12 62/30/12
+f 66/32/11 65/31/11 63/28/11 64/29/11
+f 68/34/10 67/33/10 65/31/10 66/32/10
+f 70/4/9 69/1/9 67/33/9 68/34/9
+f 72/3/8 71/2/8 69/1/8 70/4/8
+f 74/6/7 73/5/7 71/2/7 72/3/7
+f 76/8/6 75/7/6 73/5/6 74/6/6
+f 78/10/5 77/9/5 75/7/5 76/8/5
+f 80/12/4 79/11/4 77/9/4 78/10/4
+f 82/14/3 81/13/3 79/11/3 80/12/3
+f 84/16/2 83/15/2 81/13/2 82/14/2
+f 86/18/1 85/17/1 83/15/1 84/16/1
+f 36/78/4 51/79/4 87/80/4 37/81/4
+f 34/82/2 53/83/2 52/84/2 35/85/2
+f 47/86/16 97/87/16 98/88/16 48/89/16
+f 33/90/1 54/91/1 53/83/1 34/82/1
+f 35/85/3 52/84/3 51/79/3 36/78/3
+f 48/89/15 98/88/15 54/91/15 33/90/15
+f 46/92/14 96/93/14 97/87/14 47/86/14
+f 45/94/13 95/95/13 96/93/13 46/92/13
+f 44/96/12 94/97/12 95/95/12 45/94/12
+f 43/98/11 93/99/11 94/97/11 44/96/11
+f 42/72/10 92/71/10 93/99/10 43/98/10
+f 40/100/8 90/101/8 91/70/8 41/69/8
+f 39/102/7 89/103/7 90/101/7 40/100/7
+f 38/104/6 88/105/6 89/103/6 39/102/6
+f 37/81/5 87/80/5 88/106/5 38/107/5
+f 105/108/5 106/109/5 102/110/5 101/111/5
+f 106/112/17 107/113/17 103/114/17 102/115/17
+f 107/116/13 108/117/13 104/118/13 103/119/13
+f 108/120/18 105/121/18 101/122/18 104/123/18
+f 101/124/1 102/125/1 103/126/1 104/127/1
+f 108/128/9 107/129/9 106/130/9 105/131/9
diff --git a/pipeworks/models/pipeworks_valve_off.obj b/pipeworks/models/pipeworks_valve_off.obj
index c5f71be..fef2394 100644
--- a/pipeworks/models/pipeworks_valve_off.obj
+++ b/pipeworks/models/pipeworks_valve_off.obj
@@ -1,131 +1,130 @@
-# Blender v2.69 (sub 0) OBJ File: 'pipe-valve-off.blend'
+# Blender v2.72 (sub 0) OBJ File: 'pipe-valve-off.blend'
# www.blender.org
-mtllib pipeworks_valve_off.mtl
o Cube.003
-v 0.062500 0.281250 -0.312500
-v 0.062500 0.281250 0.093750
-v -0.062500 0.281250 0.093750
-v -0.062500 0.281250 -0.312500
-v 0.062500 0.343750 -0.312500
-v 0.062500 0.343750 0.093750
-v -0.062500 0.343750 0.093750
-v -0.062500 0.343750 -0.312500
+v -0.312500 0.281250 -0.062500
+v 0.093750 0.281250 -0.062500
+v 0.093750 0.281250 0.062500
+v -0.312500 0.281250 0.062500
+v -0.312500 0.343750 -0.062500
+v 0.093750 0.343750 -0.062500
+v 0.093750 0.343750 0.062500
+v -0.312500 0.343750 0.062500
+v -0.031250 0.250000 -0.031250
v 0.031250 0.250000 -0.031250
v 0.031250 0.250000 0.031250
v -0.031250 0.250000 0.031250
-v -0.031250 0.250000 -0.031250
+v -0.031250 0.281250 -0.031250
v 0.031250 0.281250 -0.031250
v 0.031250 0.281250 0.031250
v -0.031250 0.281250 0.031250
-v -0.031250 0.281250 -0.031250
+v -0.250000 -0.250000 -0.250000
v 0.250000 -0.250000 -0.250000
v 0.250000 -0.250000 0.250000
v -0.250000 -0.250000 0.250000
-v -0.250000 -0.250000 -0.250000
+v -0.250000 0.250000 -0.250000
v 0.250000 0.250000 -0.250000
v 0.250000 0.250000 0.250000
v -0.250000 0.250000 0.250000
-v -0.250000 0.250000 -0.250000
-v -0.468750 -0.153248 -0.030483
-v -0.500000 -0.153248 -0.030483
-v -0.468750 -0.153248 0.030483
-v -0.500000 -0.153248 0.030483
-v -0.468750 -0.129917 0.086808
-v -0.500000 -0.129917 0.086808
-v -0.468750 -0.086808 0.129917
-v -0.500000 -0.086808 0.129917
-v -0.468750 -0.030483 0.153248
-v -0.500000 -0.030483 0.153248
-v -0.468750 0.030483 0.153248
-v -0.500000 0.030483 0.153248
-v -0.468750 0.086808 0.129917
-v -0.500000 0.086808 0.129917
-v -0.468750 0.129917 0.086808
-v -0.500000 0.129917 0.086808
-v -0.468750 0.153248 0.030483
-v -0.500000 0.153247 0.030483
-v -0.468750 0.153248 -0.030483
-v -0.500000 0.153248 -0.030483
-v -0.468750 0.129917 -0.086808
-v -0.500000 0.129917 -0.086808
-v -0.468750 0.086808 -0.129917
-v -0.500000 0.086808 -0.129917
-v -0.468750 0.030483 -0.153248
-v -0.500000 0.030483 -0.153248
-v -0.468750 -0.030483 -0.153248
-v -0.500000 -0.030483 -0.153248
-v -0.468750 -0.086808 -0.129917
-v -0.500000 -0.086808 -0.129917
-v -0.468750 -0.129917 -0.086808
-v -0.500000 -0.129917 -0.086808
-v -0.468750 -0.122598 -0.024386
-v -0.468750 -0.122598 0.024386
-v -0.468750 -0.103934 0.069446
-v -0.468750 -0.069446 0.103934
-v -0.468750 -0.024386 0.122598
-v -0.468750 0.024386 0.122598
-v -0.468750 0.069446 0.103934
-v -0.468750 0.103934 0.069446
-v -0.468750 0.122598 0.024386
-v -0.468750 0.122598 -0.024386
-v -0.468750 0.103934 -0.069446
-v -0.468750 0.069446 -0.103934
-v -0.468750 0.024386 -0.122598
-v -0.468750 -0.024387 -0.122598
-v -0.468750 -0.069447 -0.103934
-v -0.468750 -0.103934 -0.069446
-v -0.468750 -0.000000 -0.000000
-v -0.500000 -0.000000 -0.000000
-v 0.468750 -0.069446 0.103934
-v 0.468750 -0.103933 0.069447
-v 0.468750 -0.122598 0.024387
-v 0.468750 -0.122598 -0.024386
-v 0.500000 -0.129917 -0.086807
-v 0.468750 -0.129917 -0.086807
-v 0.500000 -0.086808 -0.129917
-v 0.468750 -0.086808 -0.129917
-v 0.500000 -0.030483 -0.153247
-v 0.468750 -0.030483 -0.153247
-v 0.500000 0.030483 -0.153247
-v 0.468750 0.030483 -0.153247
-v 0.500000 0.086808 -0.129917
-v 0.468750 0.086808 -0.129917
-v 0.500000 0.129917 -0.086808
-v 0.468750 0.129917 -0.086808
-v 0.500000 0.153248 -0.030483
-v 0.468750 0.153248 -0.030483
-v 0.500000 0.153248 0.030483
-v 0.468750 0.153248 0.030483
-v 0.500000 0.129917 0.086808
-v 0.468750 0.129917 0.086808
-v 0.500000 0.086808 0.129917
-v 0.468750 0.086808 0.129917
-v 0.500000 0.030483 0.153248
-v 0.468750 0.030483 0.153248
-v 0.500000 -0.030483 0.153248
-v 0.468750 -0.030483 0.153248
-v 0.500000 -0.086807 0.129917
-v 0.468750 -0.086808 0.129917
-v 0.500000 -0.129917 0.086808
-v 0.468750 -0.129917 0.086808
-v 0.500000 -0.153247 0.030483
-v 0.468750 -0.153247 0.030483
-v 0.500000 -0.153247 -0.030483
-v 0.468750 -0.153247 -0.030483
-v 0.468750 -0.024386 0.122598
-v 0.468750 0.024387 0.122598
-v 0.468750 0.069447 0.103934
-v 0.468750 0.103934 0.069447
-v 0.468750 0.122598 0.024387
-v 0.468750 0.122598 -0.024386
-v 0.468750 0.103934 -0.069446
-v 0.468750 0.069447 -0.103933
-v 0.468750 0.024387 -0.122598
-v 0.468750 -0.024386 -0.122598
-v 0.468750 -0.069446 -0.103933
-v 0.468750 -0.103933 -0.069446
-v 0.468750 0.000000 0.000000
-v 0.500000 0.000000 0.000000
+v -0.030483 -0.153248 0.468750
+v -0.030483 -0.153248 0.500000
+v 0.030483 -0.153248 0.468750
+v 0.030483 -0.153248 0.500000
+v 0.086808 -0.129917 0.468750
+v 0.086808 -0.129917 0.500000
+v 0.129917 -0.086808 0.468750
+v 0.129917 -0.086808 0.500000
+v 0.153248 -0.030483 0.468750
+v 0.153248 -0.030483 0.500000
+v 0.153248 0.030483 0.468750
+v 0.153248 0.030483 0.500000
+v 0.129917 0.086808 0.468750
+v 0.129917 0.086808 0.500000
+v 0.086808 0.129917 0.468750
+v 0.086808 0.129917 0.500000
+v 0.030483 0.153248 0.468750
+v 0.030483 0.153247 0.500000
+v -0.030483 0.153248 0.468750
+v -0.030483 0.153248 0.500000
+v -0.086808 0.129917 0.468750
+v -0.086808 0.129917 0.500000
+v -0.129917 0.086808 0.468750
+v -0.129917 0.086808 0.500000
+v -0.153248 0.030483 0.468750
+v -0.153248 0.030483 0.500000
+v -0.153248 -0.030483 0.468750
+v -0.153248 -0.030483 0.500000
+v -0.129917 -0.086808 0.468750
+v -0.129917 -0.086808 0.500000
+v -0.086808 -0.129917 0.468750
+v -0.086808 -0.129917 0.500000
+v -0.024386 -0.122598 0.468750
+v 0.024386 -0.122598 0.468750
+v 0.069446 -0.103934 0.468750
+v 0.103934 -0.069446 0.468750
+v 0.122598 -0.024386 0.468750
+v 0.122598 0.024386 0.468750
+v 0.103934 0.069446 0.468750
+v 0.069446 0.103934 0.468750
+v 0.024386 0.122598 0.468750
+v -0.024386 0.122598 0.468750
+v -0.069446 0.103934 0.468750
+v -0.103934 0.069446 0.468750
+v -0.122598 0.024386 0.468750
+v -0.122598 -0.024387 0.468750
+v -0.103934 -0.069447 0.468750
+v -0.069446 -0.103934 0.468750
+v -0.000000 -0.000000 0.468750
+v -0.000000 -0.000000 0.500000
+v 0.103934 -0.069446 -0.468750
+v 0.069447 -0.103933 -0.468750
+v 0.024387 -0.122598 -0.468750
+v -0.024386 -0.122598 -0.468750
+v -0.086808 -0.129917 -0.500000
+v -0.086808 -0.129917 -0.468750
+v -0.129917 -0.086808 -0.500000
+v -0.129917 -0.086808 -0.468750
+v -0.153247 -0.030483 -0.500000
+v -0.153247 -0.030483 -0.468750
+v -0.153247 0.030483 -0.500000
+v -0.153247 0.030483 -0.468750
+v -0.129917 0.086808 -0.500000
+v -0.129917 0.086808 -0.468750
+v -0.086808 0.129917 -0.500000
+v -0.086808 0.129917 -0.468750
+v -0.030483 0.153248 -0.500000
+v -0.030483 0.153248 -0.468750
+v 0.030483 0.153248 -0.500000
+v 0.030483 0.153248 -0.468750
+v 0.086808 0.129917 -0.500000
+v 0.086808 0.129917 -0.468750
+v 0.129917 0.086808 -0.500000
+v 0.129917 0.086808 -0.468750
+v 0.153248 0.030483 -0.500000
+v 0.153248 0.030483 -0.468750
+v 0.153248 -0.030483 -0.500000
+v 0.153248 -0.030483 -0.468750
+v 0.129917 -0.086807 -0.500000
+v 0.129917 -0.086808 -0.468750
+v 0.086808 -0.129917 -0.500000
+v 0.086808 -0.129917 -0.468750
+v 0.030483 -0.153247 -0.500000
+v 0.030483 -0.153247 -0.468750
+v -0.030483 -0.153247 -0.500000
+v -0.030483 -0.153247 -0.468750
+v 0.122598 -0.024386 -0.468750
+v 0.122598 0.024387 -0.468750
+v 0.103934 0.069447 -0.468750
+v 0.069447 0.103934 -0.468750
+v 0.024387 0.122598 -0.468750
+v -0.024386 0.122598 -0.468750
+v -0.069446 0.103934 -0.468750
+v -0.103933 0.069447 -0.468750
+v -0.122598 0.024387 -0.468750
+v -0.122598 -0.024386 -0.468750
+v -0.103933 -0.069446 -0.468750
+v -0.069446 -0.103933 -0.468750
+v 0.000000 0.000000 -0.468750
+v 0.000000 0.000000 -0.500000
vt 0.265625 0.234375
vt 0.468750 0.234375
vt 0.468750 0.265625
@@ -262,40 +261,6 @@ vt 0.585938 0.257812
vt 0.585938 0.007812
vt 0.617188 0.007812
vt 0.617188 0.257812
-vt 0.538433 0.340928
-vt 0.568449 0.328495
-vt 0.584693 0.410160
-vt 0.515460 0.363901
-vt 0.503028 0.393916
-vt 0.503028 0.426405
-vt 0.515460 0.456420
-vt 0.538433 0.479393
-vt 0.568449 0.491826
-vt 0.600937 0.491826
-vt 0.630952 0.479393
-vt 0.653925 0.456420
-vt 0.666358 0.426405
-vt 0.666358 0.393916
-vt 0.653925 0.363901
-vt 0.630952 0.340928
-vt 0.600937 0.328495
-vt 0.727611 0.340928
-vt 0.757626 0.328495
-vt 0.773870 0.410160
-vt 0.704638 0.363901
-vt 0.692205 0.393916
-vt 0.692205 0.426405
-vt 0.704638 0.456420
-vt 0.727611 0.479393
-vt 0.757626 0.491826
-vt 0.790115 0.491826
-vt 0.820130 0.479393
-vt 0.843103 0.456420
-vt 0.855535 0.426405
-vt 0.855535 0.393916
-vt 0.843103 0.363901
-vt 0.820130 0.340928
-vt 0.790115 0.328495
vt 0.929688 0.257812
vt 0.929688 0.007812
vt 0.960938 0.007812
@@ -326,133 +291,151 @@ vt 0.492188 0.257812
vt 0.492188 0.007812
vt 0.992188 0.007812
vt 0.992188 0.257812
-usemtl None
+vn 0.000000 0.000000 -1.000000
+vn 1.000000 0.000000 0.000000
+vn -0.000000 0.000000 1.000000
+vn -1.000000 0.000000 -0.000000
+vn 0.000000 -1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn 0.382700 -0.923900 -0.000000
+vn 0.707100 -0.707100 -0.000000
+vn 0.923900 -0.382700 0.000000
+vn 0.923900 0.382700 0.000000
+vn 0.707100 0.707100 0.000000
+vn 0.382700 0.923900 0.000000
+vn -0.382700 0.923900 0.000000
+vn -0.707100 0.707100 0.000000
+vn -0.923900 0.382700 -0.000000
+vn -0.923900 -0.382700 -0.000000
+vn -0.382700 -0.923900 -0.000000
+vn -0.707100 -0.707100 -0.000000
+g Cube.003_Cube.003_None
s off
-f 5/1 6/2 2/3 1/4
-f 6/5 7/6 3/7 2/8
-f 7/9 8/10 4/11 3/12
-f 8/13 5/14 1/15 4/16
-f 1/17 2/18 3/19 4/20
-f 8/21 7/22 6/23 5/24
-f 13/25 14/26 10/27 9/28
-f 14/29 15/30 11/31 10/32
-f 15/33 16/34 12/35 11/36
-f 16/37 13/38 9/39 12/40
-f 21/41 22/42 18/43 17/44
-f 22/45 23/46 19/47 18/48
-f 23/49 24/50 20/51 19/52
-f 24/53 21/54 17/55 20/56
-f 17/57 18/58 19/59 20/60
-f 24/61 23/62 22/63 21/64
-f 25/65 27/66 28/67 26/68
-f 27/66 29/69 30/70 28/67
-f 29/69 31/71 32/72 30/70
-f 31/71 33/73 34/74 32/72
-f 33/73 35/75 36/76 34/74
-f 35/75 37/77 38/78 36/76
-f 37/77 39/79 40/80 38/78
-f 39/79 41/81 42/82 40/80
-f 41/81 43/83 44/84 42/82
-f 43/83 45/85 46/86 44/84
-f 45/85 47/87 48/88 46/86
-f 47/87 49/89 50/90 48/88
-f 49/91 51/92 52/93 50/94
-f 51/92 53/95 54/96 52/93
-f 55/97 25/65 26/68 56/98
-f 53/95 55/97 56/98 54/96
-f 28/99 74/100 26/101
-f 25/102 73/103 27/104
-f 27/104 73/103 29/105
-f 29/105 73/103 31/106
-f 31/106 73/103 33/107
-f 33/107 73/103 35/108
-f 35/108 73/103 37/109
-f 37/109 73/103 39/110
-f 39/110 73/103 41/111
-f 41/111 73/103 43/112
-f 43/112 73/103 45/113
-f 45/113 73/103 47/114
-f 47/114 73/103 49/115
-f 49/115 73/103 51/116
-f 51/116 73/103 53/117
-f 53/117 73/103 55/118
-f 55/118 73/103 25/102
-f 26/101 74/100 56/119
-f 56/119 74/100 54/120
-f 54/120 74/100 52/121
-f 52/121 74/100 50/122
-f 50/122 74/100 48/123
-f 48/123 74/100 46/124
-f 46/124 74/100 44/125
-f 44/125 74/100 42/126
-f 42/126 74/100 40/127
-f 40/127 74/100 38/128
-f 38/128 74/100 36/129
-f 36/129 74/100 34/130
-f 34/130 74/100 32/131
-f 32/131 74/100 30/132
-f 30/132 74/100 28/99
-f 65/133 115/134 116/135 66/136
-f 105/137 107/138 124/139
-f 103/140 105/137 124/139
-f 101/141 103/140 124/139
-f 99/142 101/141 124/139
-f 97/143 99/142 124/139
-f 95/144 97/143 124/139
-f 93/145 95/144 124/139
-f 91/146 93/145 124/139
-f 89/147 91/146 124/139
-f 87/148 89/147 124/139
-f 85/149 87/148 124/139
-f 83/150 85/149 124/139
-f 81/151 83/150 124/139
-f 79/152 81/151 124/139
-f 109/153 79/152 124/139
-f 80/154 110/155 123/156
-f 82/157 80/154 123/156
-f 84/158 82/157 123/156
-f 86/159 84/158 123/156
-f 88/160 86/159 123/156
-f 90/161 88/160 123/156
-f 92/162 90/161 123/156
-f 94/163 92/162 123/156
-f 96/164 94/163 123/156
-f 98/165 96/164 123/156
-f 100/166 98/165 123/156
-f 102/167 100/166 123/156
-f 104/168 102/167 123/156
-f 106/169 104/168 123/156
-f 108/170 106/169 123/156
-f 110/155 108/170 123/156
-f 107/138 109/153 124/139
-f 82/86 81/85 79/83 80/84
-f 80/84 79/83 109/81 110/82
-f 84/88 83/87 81/85 82/86
-f 86/90 85/89 83/87 84/88
-f 88/93 87/92 85/91 86/94
-f 90/96 89/95 87/92 88/93
-f 92/98 91/97 89/95 90/96
-f 94/68 93/65 91/97 92/98
-f 96/67 95/66 93/65 94/68
-f 98/70 97/69 95/66 96/67
-f 100/72 99/71 97/69 98/70
-f 102/74 101/73 99/71 100/72
-f 104/76 103/75 101/73 102/74
-f 106/78 105/77 103/75 104/76
-f 108/80 107/79 105/77 106/78
-f 110/82 109/81 107/79 108/80
-f 60/171 75/172 111/173 61/174
-f 58/175 77/176 76/177 59/178
-f 71/179 121/180 122/181 72/182
-f 57/183 78/184 77/176 58/175
-f 59/178 76/177 75/172 60/171
-f 72/182 122/181 78/184 57/183
-f 70/185 120/186 121/180 71/179
-f 69/187 119/188 120/186 70/185
-f 68/189 118/190 119/188 69/187
-f 67/191 117/192 118/190 68/189
-f 66/136 116/135 117/192 67/191
-f 64/193 114/194 115/134 65/133
-f 63/195 113/196 114/194 64/193
-f 62/197 112/198 113/196 63/195
-f 61/174 111/173 112/199 62/200
+f 5/1/1 6/2/1 2/3/1 1/4/1
+f 6/5/2 7/6/2 3/7/2 2/8/2
+f 7/9/3 8/10/3 4/11/3 3/12/3
+f 8/13/4 5/14/4 1/15/4 4/16/4
+f 1/17/5 2/18/5 3/19/5 4/20/5
+f 8/21/6 7/22/6 6/23/6 5/24/6
+f 13/25/1 14/26/1 10/27/1 9/28/1
+f 14/29/2 15/30/2 11/31/2 10/32/2
+f 15/33/3 16/34/3 12/35/3 11/36/3
+f 16/37/4 13/38/4 9/39/4 12/40/4
+f 21/41/1 22/42/1 18/43/1 17/44/1
+f 22/45/2 23/46/2 19/47/2 18/48/2
+f 23/49/3 24/50/3 20/51/3 19/52/3
+f 24/53/4 21/54/4 17/55/4 20/56/4
+f 17/57/5 18/58/5 19/59/5 20/60/5
+f 24/61/6 23/62/6 22/63/6 21/64/6
+f 25/65/5 27/66/5 28/67/5 26/68/5
+f 27/66/7 29/69/7 30/70/7 28/67/7
+f 29/69/8 31/71/8 32/72/8 30/70/8
+f 31/71/9 33/73/9 34/74/9 32/72/9
+f 33/73/2 35/75/2 36/76/2 34/74/2
+f 35/75/10 37/77/10 38/78/10 36/76/10
+f 37/77/11 39/79/11 40/80/11 38/78/11
+f 39/79/12 41/81/12 42/82/12 40/80/12
+f 41/81/6 43/83/6 44/84/6 42/82/6
+f 43/83/13 45/85/13 46/86/13 44/84/13
+f 45/85/14 47/87/14 48/88/14 46/86/14
+f 47/87/15 49/89/15 50/90/15 48/88/15
+f 49/91/4 51/92/4 52/93/4 50/94/4
+f 51/92/16 53/95/16 54/96/16 52/93/16
+f 55/97/17 25/65/17 26/68/17 56/98/17
+f 53/95/18 55/97/18 56/98/18 54/96/18
+f 28/99/3 74/100/3 26/101/3
+f 25/102/1 73/103/1 27/104/1
+f 27/104/1 73/103/1 29/105/1
+f 29/105/1 73/103/1 31/106/1
+f 31/106/1 73/103/1 33/107/1
+f 33/107/1 73/103/1 35/108/1
+f 35/108/1 73/103/1 37/109/1
+f 37/109/1 73/103/1 39/110/1
+f 39/110/1 73/103/1 41/111/1
+f 41/111/1 73/103/1 43/112/1
+f 43/112/1 73/103/1 45/113/1
+f 45/113/1 73/103/1 47/114/1
+f 47/114/1 73/103/1 49/115/1
+f 49/115/1 73/103/1 51/116/1
+f 51/116/1 73/103/1 53/117/1
+f 53/117/1 73/103/1 55/118/1
+f 55/118/1 73/103/1 25/102/1
+f 26/101/3 74/100/3 56/119/3
+f 56/119/3 74/100/3 54/120/3
+f 54/120/3 74/100/3 52/121/3
+f 52/121/3 74/100/3 50/122/3
+f 50/122/3 74/100/3 48/123/3
+f 48/123/3 74/100/3 46/124/3
+f 46/124/3 74/100/3 44/125/3
+f 44/125/3 74/100/3 42/126/3
+f 42/126/3 74/100/3 40/127/3
+f 40/127/3 74/100/3 38/128/3
+f 38/128/3 74/100/3 36/129/3
+f 36/129/3 74/100/3 34/130/3
+f 34/130/3 74/100/3 32/131/3
+f 32/131/3 74/100/3 30/132/3
+f 30/132/3 74/100/3 28/99/3
+f 65/133/6 115/134/6 116/135/6 66/136/6
+f 105/119/1 107/101/1 124/100/1
+f 103/120/1 105/119/1 124/100/1
+f 101/121/1 103/120/1 124/100/1
+f 99/122/1 101/121/1 124/100/1
+f 97/123/1 99/122/1 124/100/1
+f 95/124/1 97/123/1 124/100/1
+f 93/125/1 95/124/1 124/100/1
+f 91/126/1 93/125/1 124/100/1
+f 89/127/1 91/126/1 124/100/1
+f 87/128/1 89/127/1 124/100/1
+f 85/129/1 87/128/1 124/100/1
+f 83/130/1 85/129/1 124/100/1
+f 81/131/1 83/130/1 124/100/1
+f 79/132/1 81/131/1 124/100/1
+f 109/99/1 79/132/1 124/100/1
+f 80/118/3 110/102/3 123/103/3
+f 82/117/3 80/118/3 123/103/3
+f 84/116/3 82/117/3 123/103/3
+f 86/115/3 84/116/3 123/103/3
+f 88/114/3 86/115/3 123/103/3
+f 90/113/3 88/114/3 123/103/3
+f 92/112/3 90/113/3 123/103/3
+f 94/111/3 92/112/3 123/103/3
+f 96/110/3 94/111/3 123/103/3
+f 98/109/3 96/110/3 123/103/3
+f 100/108/3 98/109/3 123/103/3
+f 102/107/3 100/108/3 123/103/3
+f 104/106/3 102/107/3 123/103/3
+f 106/105/3 104/106/3 123/103/3
+f 108/104/3 106/105/3 123/103/3
+f 110/102/3 108/104/3 123/103/3
+f 107/101/1 109/99/1 124/100/1
+f 82/86/18 81/85/18 79/83/18 80/84/18
+f 80/84/17 79/83/17 109/81/17 110/82/17
+f 84/88/16 83/87/16 81/85/16 82/86/16
+f 86/90/4 85/89/4 83/87/4 84/88/4
+f 88/93/15 87/92/15 85/91/15 86/94/15
+f 90/96/14 89/95/14 87/92/14 88/93/14
+f 92/98/13 91/97/13 89/95/13 90/96/13
+f 94/68/6 93/65/6 91/97/6 92/98/6
+f 96/67/12 95/66/12 93/65/12 94/68/12
+f 98/70/11 97/69/11 95/66/11 96/67/11
+f 100/72/10 99/71/10 97/69/10 98/70/10
+f 102/74/2 101/73/2 99/71/2 100/72/2
+f 104/76/9 103/75/9 101/73/9 102/74/9
+f 106/78/8 105/77/8 103/75/8 104/76/8
+f 108/80/7 107/79/7 105/77/7 106/78/7
+f 110/82/5 109/81/5 107/79/5 108/80/5
+f 60/137/9 75/138/9 111/139/9 61/140/9
+f 58/141/7 77/142/7 76/143/7 59/144/7
+f 71/145/18 121/146/18 122/147/18 72/148/18
+f 57/149/5 78/150/5 77/142/5 58/141/5
+f 59/144/8 76/143/8 75/138/8 60/137/8
+f 72/148/17 122/147/17 78/150/17 57/149/17
+f 70/151/16 120/152/16 121/146/16 71/145/16
+f 69/153/4 119/154/4 120/152/4 70/151/4
+f 68/155/15 118/156/15 119/154/15 69/153/15
+f 67/157/14 117/158/14 118/156/14 68/155/14
+f 66/136/13 116/135/13 117/158/13 67/157/13
+f 64/159/12 114/160/12 115/134/12 65/133/12
+f 63/161/11 113/162/11 114/160/11 64/159/11
+f 62/163/10 112/164/10 113/162/10 63/161/10
+f 61/140/2 111/139/2 112/165/2 62/166/2
diff --git a/pipeworks/models/pipeworks_valve_on.obj b/pipeworks/models/pipeworks_valve_on.obj
index ba08b30..0c8f8b0 100644
--- a/pipeworks/models/pipeworks_valve_on.obj
+++ b/pipeworks/models/pipeworks_valve_on.obj
@@ -1,131 +1,130 @@
-# Blender v2.69 (sub 0) OBJ File: 'pipe-valve-on.blend'
+# Blender v2.72 (sub 0) OBJ File: 'pipe-valve-on.blend'
# www.blender.org
-mtllib pipeworks_valve_on.mtl
o Cube.003
-v 0.312500 0.281250 0.062500
-v -0.093750 0.281250 0.062500
-v -0.093750 0.281250 -0.062500
-v 0.312500 0.281250 -0.062500
-v 0.312500 0.343750 0.062500
-v -0.093750 0.343750 0.062500
-v -0.093750 0.343750 -0.062500
-v 0.312500 0.343750 -0.062500
+v 0.062500 0.281250 -0.312500
+v 0.062500 0.281250 0.093750
+v -0.062500 0.281250 0.093750
+v -0.062500 0.281250 -0.312500
+v 0.062500 0.343750 -0.312500
+v 0.062500 0.343750 0.093750
+v -0.062500 0.343750 0.093750
+v -0.062500 0.343750 -0.312500
+v -0.031250 0.250000 -0.031250
v 0.031250 0.250000 -0.031250
v 0.031250 0.250000 0.031250
v -0.031250 0.250000 0.031250
-v -0.031250 0.250000 -0.031250
+v -0.031250 0.281250 -0.031250
v 0.031250 0.281250 -0.031250
v 0.031250 0.281250 0.031250
v -0.031250 0.281250 0.031250
-v -0.031250 0.281250 -0.031250
+v -0.250000 -0.250000 -0.250000
v 0.250000 -0.250000 -0.250000
v 0.250000 -0.250000 0.250000
v -0.250000 -0.250000 0.250000
-v -0.250000 -0.250000 -0.250000
+v -0.250000 0.250000 -0.250000
v 0.250000 0.250000 -0.250000
v 0.250000 0.250000 0.250000
v -0.250000 0.250000 0.250000
-v -0.250000 0.250000 -0.250000
-v -0.468750 -0.153248 -0.030483
-v -0.500000 -0.153248 -0.030483
-v -0.468750 -0.153248 0.030483
-v -0.500000 -0.153248 0.030483
-v -0.468750 -0.129917 0.086808
-v -0.500000 -0.129917 0.086808
-v -0.468750 -0.086808 0.129917
-v -0.500000 -0.086808 0.129917
-v -0.468750 -0.030483 0.153248
-v -0.500000 -0.030483 0.153248
-v -0.468750 0.030483 0.153248
-v -0.500000 0.030483 0.153248
-v -0.468750 0.086808 0.129917
-v -0.500000 0.086808 0.129917
-v -0.468750 0.129917 0.086808
-v -0.500000 0.129917 0.086808
-v -0.468750 0.153248 0.030483
-v -0.500000 0.153247 0.030483
-v -0.468750 0.153248 -0.030483
-v -0.500000 0.153248 -0.030483
-v -0.468750 0.129917 -0.086808
-v -0.500000 0.129917 -0.086808
-v -0.468750 0.086808 -0.129917
-v -0.500000 0.086808 -0.129917
-v -0.468750 0.030483 -0.153248
-v -0.500000 0.030483 -0.153248
-v -0.468750 -0.030483 -0.153248
-v -0.500000 -0.030483 -0.153248
-v -0.468750 -0.086808 -0.129917
-v -0.500000 -0.086808 -0.129917
-v -0.468750 -0.129917 -0.086808
-v -0.500000 -0.129917 -0.086808
-v -0.468750 -0.122598 -0.024386
-v -0.468750 -0.122598 0.024386
-v -0.468750 -0.103934 0.069446
-v -0.468750 -0.069446 0.103934
-v -0.468750 -0.024386 0.122598
-v -0.468750 0.024386 0.122598
-v -0.468750 0.069446 0.103934
-v -0.468750 0.103934 0.069446
-v -0.468750 0.122598 0.024386
-v -0.468750 0.122598 -0.024386
-v -0.468750 0.103934 -0.069446
-v -0.468750 0.069446 -0.103934
-v -0.468750 0.024386 -0.122598
-v -0.468750 -0.024387 -0.122598
-v -0.468750 -0.069447 -0.103934
-v -0.468750 -0.103934 -0.069446
-v -0.468750 -0.000000 -0.000000
-v -0.500000 -0.000000 -0.000000
-v 0.468750 -0.069446 0.103934
-v 0.468750 -0.103933 0.069447
-v 0.468750 -0.122598 0.024387
-v 0.468750 -0.122598 -0.024386
-v 0.500000 -0.129917 -0.086807
-v 0.468750 -0.129917 -0.086807
-v 0.500000 -0.086808 -0.129917
-v 0.468750 -0.086808 -0.129917
-v 0.500000 -0.030483 -0.153247
-v 0.468750 -0.030483 -0.153247
-v 0.500000 0.030483 -0.153247
-v 0.468750 0.030483 -0.153247
-v 0.500000 0.086808 -0.129917
-v 0.468750 0.086808 -0.129917
-v 0.500000 0.129917 -0.086808
-v 0.468750 0.129917 -0.086808
-v 0.500000 0.153248 -0.030483
-v 0.468750 0.153248 -0.030483
-v 0.500000 0.153248 0.030483
-v 0.468750 0.153248 0.030483
-v 0.500000 0.129917 0.086808
-v 0.468750 0.129917 0.086808
-v 0.500000 0.086808 0.129917
-v 0.468750 0.086808 0.129917
-v 0.500000 0.030483 0.153248
-v 0.468750 0.030483 0.153248
-v 0.500000 -0.030483 0.153248
-v 0.468750 -0.030483 0.153248
-v 0.500000 -0.086807 0.129917
-v 0.468750 -0.086808 0.129917
-v 0.500000 -0.129917 0.086808
-v 0.468750 -0.129917 0.086808
-v 0.500000 -0.153247 0.030483
-v 0.468750 -0.153247 0.030483
-v 0.500000 -0.153247 -0.030483
-v 0.468750 -0.153247 -0.030483
-v 0.468750 -0.024386 0.122598
-v 0.468750 0.024387 0.122598
-v 0.468750 0.069447 0.103934
-v 0.468750 0.103934 0.069447
-v 0.468750 0.122598 0.024387
-v 0.468750 0.122598 -0.024386
-v 0.468750 0.103934 -0.069446
-v 0.468750 0.069447 -0.103933
-v 0.468750 0.024387 -0.122598
-v 0.468750 -0.024386 -0.122598
-v 0.468750 -0.069446 -0.103933
-v 0.468750 -0.103933 -0.069446
-v 0.468750 0.000000 0.000000
-v 0.500000 0.000000 0.000000
+v -0.030483 -0.153248 0.468750
+v -0.030483 -0.153248 0.500000
+v 0.030483 -0.153248 0.468750
+v 0.030483 -0.153248 0.500000
+v 0.086808 -0.129917 0.468750
+v 0.086808 -0.129917 0.500000
+v 0.129917 -0.086808 0.468750
+v 0.129917 -0.086808 0.500000
+v 0.153248 -0.030483 0.468750
+v 0.153248 -0.030483 0.500000
+v 0.153248 0.030483 0.468750
+v 0.153248 0.030483 0.500000
+v 0.129917 0.086808 0.468750
+v 0.129917 0.086808 0.500000
+v 0.086808 0.129917 0.468750
+v 0.086808 0.129917 0.500000
+v 0.030483 0.153248 0.468750
+v 0.030483 0.153247 0.500000
+v -0.030483 0.153248 0.468750
+v -0.030483 0.153248 0.500000
+v -0.086808 0.129917 0.468750
+v -0.086808 0.129917 0.500000
+v -0.129917 0.086808 0.468750
+v -0.129917 0.086808 0.500000
+v -0.153248 0.030483 0.468750
+v -0.153248 0.030483 0.500000
+v -0.153248 -0.030483 0.468750
+v -0.153248 -0.030483 0.500000
+v -0.129917 -0.086808 0.468750
+v -0.129917 -0.086808 0.500000
+v -0.086808 -0.129917 0.468750
+v -0.086808 -0.129917 0.500000
+v -0.024386 -0.122598 0.468750
+v 0.024386 -0.122598 0.468750
+v 0.069446 -0.103934 0.468750
+v 0.103934 -0.069446 0.468750
+v 0.122598 -0.024386 0.468750
+v 0.122598 0.024386 0.468750
+v 0.103934 0.069446 0.468750
+v 0.069446 0.103934 0.468750
+v 0.024386 0.122598 0.468750
+v -0.024386 0.122598 0.468750
+v -0.069446 0.103934 0.468750
+v -0.103934 0.069446 0.468750
+v -0.122598 0.024386 0.468750
+v -0.122598 -0.024387 0.468750
+v -0.103934 -0.069447 0.468750
+v -0.069446 -0.103934 0.468750
+v -0.000000 -0.000000 0.468750
+v -0.000000 -0.000000 0.500000
+v 0.103934 -0.069446 -0.468750
+v 0.069447 -0.103933 -0.468750
+v 0.024387 -0.122598 -0.468750
+v -0.024386 -0.122598 -0.468750
+v -0.086808 -0.129917 -0.500000
+v -0.086808 -0.129917 -0.468750
+v -0.129917 -0.086808 -0.500000
+v -0.129917 -0.086808 -0.468750
+v -0.153247 -0.030483 -0.500000
+v -0.153247 -0.030483 -0.468750
+v -0.153247 0.030483 -0.500000
+v -0.153247 0.030483 -0.468750
+v -0.129917 0.086808 -0.500000
+v -0.129917 0.086808 -0.468750
+v -0.086808 0.129917 -0.500000
+v -0.086808 0.129917 -0.468750
+v -0.030483 0.153248 -0.500000
+v -0.030483 0.153248 -0.468750
+v 0.030483 0.153248 -0.500000
+v 0.030483 0.153248 -0.468750
+v 0.086808 0.129917 -0.500000
+v 0.086808 0.129917 -0.468750
+v 0.129917 0.086808 -0.500000
+v 0.129917 0.086808 -0.468750
+v 0.153248 0.030483 -0.500000
+v 0.153248 0.030483 -0.468750
+v 0.153248 -0.030483 -0.500000
+v 0.153248 -0.030483 -0.468750
+v 0.129917 -0.086807 -0.500000
+v 0.129917 -0.086808 -0.468750
+v 0.086808 -0.129917 -0.500000
+v 0.086808 -0.129917 -0.468750
+v 0.030483 -0.153247 -0.500000
+v 0.030483 -0.153247 -0.468750
+v -0.030483 -0.153247 -0.500000
+v -0.030483 -0.153247 -0.468750
+v 0.122598 -0.024386 -0.468750
+v 0.122598 0.024387 -0.468750
+v 0.103934 0.069447 -0.468750
+v 0.069447 0.103934 -0.468750
+v 0.024387 0.122598 -0.468750
+v -0.024386 0.122598 -0.468750
+v -0.069446 0.103934 -0.468750
+v -0.103933 0.069447 -0.468750
+v -0.122598 0.024387 -0.468750
+v -0.122598 -0.024386 -0.468750
+v -0.103933 -0.069446 -0.468750
+v -0.069446 -0.103933 -0.468750
+v 0.000000 0.000000 -0.468750
+v 0.000000 0.000000 -0.500000
vt 0.265625 0.234375
vt 0.468750 0.234375
vt 0.468750 0.265625
@@ -262,40 +261,6 @@ vt 0.585938 0.257812
vt 0.585938 0.007812
vt 0.617188 0.007812
vt 0.617188 0.257812
-vt 0.538433 0.340928
-vt 0.568449 0.328495
-vt 0.584693 0.410160
-vt 0.515460 0.363901
-vt 0.503028 0.393916
-vt 0.503028 0.426405
-vt 0.515460 0.456420
-vt 0.538433 0.479393
-vt 0.568449 0.491826
-vt 0.600937 0.491826
-vt 0.630952 0.479393
-vt 0.653925 0.456420
-vt 0.666358 0.426405
-vt 0.666358 0.393916
-vt 0.653925 0.363901
-vt 0.630952 0.340928
-vt 0.600937 0.328495
-vt 0.727611 0.340928
-vt 0.757626 0.328495
-vt 0.773870 0.410160
-vt 0.704638 0.363901
-vt 0.692205 0.393916
-vt 0.692205 0.426405
-vt 0.704638 0.456420
-vt 0.727611 0.479393
-vt 0.757626 0.491826
-vt 0.790115 0.491826
-vt 0.820130 0.479393
-vt 0.843103 0.456420
-vt 0.855535 0.426405
-vt 0.855535 0.393916
-vt 0.843103 0.363901
-vt 0.820130 0.340928
-vt 0.790115 0.328495
vt 0.929688 0.257812
vt 0.929688 0.007812
vt 0.960938 0.007812
@@ -326,133 +291,151 @@ vt 0.492188 0.257812
vt 0.492188 0.007812
vt 0.992188 0.007812
vt 0.992188 0.257812
-usemtl None
+vn 1.000000 0.000000 0.000000
+vn -0.000000 0.000000 1.000000
+vn -1.000000 0.000000 -0.000000
+vn 0.000000 0.000000 -1.000000
+vn 0.000000 -1.000000 -0.000000
+vn 0.000000 1.000000 -0.000000
+vn 0.382700 -0.923900 -0.000000
+vn 0.707100 -0.707100 -0.000000
+vn 0.923900 -0.382700 0.000000
+vn 0.923900 0.382700 0.000000
+vn 0.707100 0.707100 0.000000
+vn 0.382700 0.923900 0.000000
+vn -0.382700 0.923900 0.000000
+vn -0.707100 0.707100 0.000000
+vn -0.923900 0.382700 -0.000000
+vn -0.923900 -0.382700 -0.000000
+vn -0.382700 -0.923900 -0.000000
+vn -0.707100 -0.707100 -0.000000
+g Cube.003_Cube.003_None
s off
-f 5/1 6/2 2/3 1/4
-f 6/5 7/6 3/7 2/8
-f 7/9 8/10 4/11 3/12
-f 8/13 5/14 1/15 4/16
-f 1/17 2/18 3/19 4/20
-f 8/21 7/22 6/23 5/24
-f 13/25 14/26 10/27 9/28
-f 14/29 15/30 11/31 10/32
-f 15/33 16/34 12/35 11/36
-f 16/37 13/38 9/39 12/40
-f 21/41 22/42 18/43 17/44
-f 22/45 23/46 19/47 18/48
-f 23/49 24/50 20/51 19/52
-f 24/53 21/54 17/55 20/56
-f 17/57 18/58 19/59 20/60
-f 24/61 23/62 22/63 21/64
-f 25/65 27/66 28/67 26/68
-f 27/66 29/69 30/70 28/67
-f 29/69 31/71 32/72 30/70
-f 31/71 33/73 34/74 32/72
-f 33/73 35/75 36/76 34/74
-f 35/75 37/77 38/78 36/76
-f 37/77 39/79 40/80 38/78
-f 39/79 41/81 42/82 40/80
-f 41/81 43/83 44/84 42/82
-f 43/83 45/85 46/86 44/84
-f 45/85 47/87 48/88 46/86
-f 47/87 49/89 50/90 48/88
-f 49/91 51/92 52/93 50/94
-f 51/92 53/95 54/96 52/93
-f 55/97 25/65 26/68 56/98
-f 53/95 55/97 56/98 54/96
-f 28/99 74/100 26/101
-f 25/102 73/103 27/104
-f 27/104 73/103 29/105
-f 29/105 73/103 31/106
-f 31/106 73/103 33/107
-f 33/107 73/103 35/108
-f 35/108 73/103 37/109
-f 37/109 73/103 39/110
-f 39/110 73/103 41/111
-f 41/111 73/103 43/112
-f 43/112 73/103 45/113
-f 45/113 73/103 47/114
-f 47/114 73/103 49/115
-f 49/115 73/103 51/116
-f 51/116 73/103 53/117
-f 53/117 73/103 55/118
-f 55/118 73/103 25/102
-f 26/101 74/100 56/119
-f 56/119 74/100 54/120
-f 54/120 74/100 52/121
-f 52/121 74/100 50/122
-f 50/122 74/100 48/123
-f 48/123 74/100 46/124
-f 46/124 74/100 44/125
-f 44/125 74/100 42/126
-f 42/126 74/100 40/127
-f 40/127 74/100 38/128
-f 38/128 74/100 36/129
-f 36/129 74/100 34/130
-f 34/130 74/100 32/131
-f 32/131 74/100 30/132
-f 30/132 74/100 28/99
-f 65/133 115/134 116/135 66/136
-f 105/137 107/138 124/139
-f 103/140 105/137 124/139
-f 101/141 103/140 124/139
-f 99/142 101/141 124/139
-f 97/143 99/142 124/139
-f 95/144 97/143 124/139
-f 93/145 95/144 124/139
-f 91/146 93/145 124/139
-f 89/147 91/146 124/139
-f 87/148 89/147 124/139
-f 85/149 87/148 124/139
-f 83/150 85/149 124/139
-f 81/151 83/150 124/139
-f 79/152 81/151 124/139
-f 109/153 79/152 124/139
-f 80/154 110/155 123/156
-f 82/157 80/154 123/156
-f 84/158 82/157 123/156
-f 86/159 84/158 123/156
-f 88/160 86/159 123/156
-f 90/161 88/160 123/156
-f 92/162 90/161 123/156
-f 94/163 92/162 123/156
-f 96/164 94/163 123/156
-f 98/165 96/164 123/156
-f 100/166 98/165 123/156
-f 102/167 100/166 123/156
-f 104/168 102/167 123/156
-f 106/169 104/168 123/156
-f 108/170 106/169 123/156
-f 110/155 108/170 123/156
-f 107/138 109/153 124/139
-f 82/86 81/85 79/83 80/84
-f 80/84 79/83 109/81 110/82
-f 84/88 83/87 81/85 82/86
-f 86/90 85/89 83/87 84/88
-f 88/93 87/92 85/91 86/94
-f 90/96 89/95 87/92 88/93
-f 92/98 91/97 89/95 90/96
-f 94/68 93/65 91/97 92/98
-f 96/67 95/66 93/65 94/68
-f 98/70 97/69 95/66 96/67
-f 100/72 99/71 97/69 98/70
-f 102/74 101/73 99/71 100/72
-f 104/76 103/75 101/73 102/74
-f 106/78 105/77 103/75 104/76
-f 108/80 107/79 105/77 106/78
-f 110/82 109/81 107/79 108/80
-f 60/171 75/172 111/173 61/174
-f 58/175 77/176 76/177 59/178
-f 71/179 121/180 122/181 72/182
-f 57/183 78/184 77/176 58/175
-f 59/178 76/177 75/172 60/171
-f 72/182 122/181 78/184 57/183
-f 70/185 120/186 121/180 71/179
-f 69/187 119/188 120/186 70/185
-f 68/189 118/190 119/188 69/187
-f 67/191 117/192 118/190 68/189
-f 66/136 116/135 117/192 67/191
-f 64/193 114/194 115/134 65/133
-f 63/195 113/196 114/194 64/193
-f 62/197 112/198 113/196 63/195
-f 61/174 111/173 112/199 62/200
+f 5/1/1 6/2/1 2/3/1 1/4/1
+f 6/5/2 7/6/2 3/7/2 2/8/2
+f 7/9/3 8/10/3 4/11/3 3/12/3
+f 8/13/4 5/14/4 1/15/4 4/16/4
+f 1/17/5 2/18/5 3/19/5 4/20/5
+f 8/21/6 7/22/6 6/23/6 5/24/6
+f 13/25/4 14/26/4 10/27/4 9/28/4
+f 14/29/1 15/30/1 11/31/1 10/32/1
+f 15/33/2 16/34/2 12/35/2 11/36/2
+f 16/37/3 13/38/3 9/39/3 12/40/3
+f 21/41/4 22/42/4 18/43/4 17/44/4
+f 22/45/1 23/46/1 19/47/1 18/48/1
+f 23/49/2 24/50/2 20/51/2 19/52/2
+f 24/53/3 21/54/3 17/55/3 20/56/3
+f 17/57/5 18/58/5 19/59/5 20/60/5
+f 24/61/6 23/62/6 22/63/6 21/64/6
+f 25/65/5 27/66/5 28/67/5 26/68/5
+f 27/66/7 29/69/7 30/70/7 28/67/7
+f 29/69/8 31/71/8 32/72/8 30/70/8
+f 31/71/9 33/73/9 34/74/9 32/72/9
+f 33/73/1 35/75/1 36/76/1 34/74/1
+f 35/75/10 37/77/10 38/78/10 36/76/10
+f 37/77/11 39/79/11 40/80/11 38/78/11
+f 39/79/12 41/81/12 42/82/12 40/80/12
+f 41/81/6 43/83/6 44/84/6 42/82/6
+f 43/83/13 45/85/13 46/86/13 44/84/13
+f 45/85/14 47/87/14 48/88/14 46/86/14
+f 47/87/15 49/89/15 50/90/15 48/88/15
+f 49/91/3 51/92/3 52/93/3 50/94/3
+f 51/92/16 53/95/16 54/96/16 52/93/16
+f 55/97/17 25/65/17 26/68/17 56/98/17
+f 53/95/18 55/97/18 56/98/18 54/96/18
+f 28/99/2 74/100/2 26/101/2
+f 25/102/4 73/103/4 27/104/4
+f 27/104/4 73/103/4 29/105/4
+f 29/105/4 73/103/4 31/106/4
+f 31/106/4 73/103/4 33/107/4
+f 33/107/4 73/103/4 35/108/4
+f 35/108/4 73/103/4 37/109/4
+f 37/109/4 73/103/4 39/110/4
+f 39/110/4 73/103/4 41/111/4
+f 41/111/4 73/103/4 43/112/4
+f 43/112/4 73/103/4 45/113/4
+f 45/113/4 73/103/4 47/114/4
+f 47/114/4 73/103/4 49/115/4
+f 49/115/4 73/103/4 51/116/4
+f 51/116/4 73/103/4 53/117/4
+f 53/117/4 73/103/4 55/118/4
+f 55/118/4 73/103/4 25/102/4
+f 26/101/2 74/100/2 56/119/2
+f 56/119/2 74/100/2 54/120/2
+f 54/120/2 74/100/2 52/121/2
+f 52/121/2 74/100/2 50/122/2
+f 50/122/2 74/100/2 48/123/2
+f 48/123/2 74/100/2 46/124/2
+f 46/124/2 74/100/2 44/125/2
+f 44/125/2 74/100/2 42/126/2
+f 42/126/2 74/100/2 40/127/2
+f 40/127/2 74/100/2 38/128/2
+f 38/128/2 74/100/2 36/129/2
+f 36/129/2 74/100/2 34/130/2
+f 34/130/2 74/100/2 32/131/2
+f 32/131/2 74/100/2 30/132/2
+f 30/132/2 74/100/2 28/99/2
+f 65/133/6 115/134/6 116/135/6 66/136/6
+f 105/119/4 107/101/4 124/100/4
+f 103/120/4 105/119/4 124/100/4
+f 101/121/4 103/120/4 124/100/4
+f 99/122/4 101/121/4 124/100/4
+f 97/123/4 99/122/4 124/100/4
+f 95/124/4 97/123/4 124/100/4
+f 93/125/4 95/124/4 124/100/4
+f 91/126/4 93/125/4 124/100/4
+f 89/127/4 91/126/4 124/100/4
+f 87/128/4 89/127/4 124/100/4
+f 85/129/4 87/128/4 124/100/4
+f 83/130/4 85/129/4 124/100/4
+f 81/131/4 83/130/4 124/100/4
+f 79/132/4 81/131/4 124/100/4
+f 109/99/4 79/132/4 124/100/4
+f 80/118/2 110/102/2 123/103/2
+f 82/117/2 80/118/2 123/103/2
+f 84/116/2 82/117/2 123/103/2
+f 86/115/2 84/116/2 123/103/2
+f 88/114/2 86/115/2 123/103/2
+f 90/113/2 88/114/2 123/103/2
+f 92/112/2 90/113/2 123/103/2
+f 94/111/2 92/112/2 123/103/2
+f 96/110/2 94/111/2 123/103/2
+f 98/109/2 96/110/2 123/103/2
+f 100/108/2 98/109/2 123/103/2
+f 102/107/2 100/108/2 123/103/2
+f 104/106/2 102/107/2 123/103/2
+f 106/105/2 104/106/2 123/103/2
+f 108/104/2 106/105/2 123/103/2
+f 110/102/2 108/104/2 123/103/2
+f 107/101/4 109/99/4 124/100/4
+f 82/86/18 81/85/18 79/83/18 80/84/18
+f 80/84/17 79/83/17 109/81/17 110/82/17
+f 84/88/16 83/87/16 81/85/16 82/86/16
+f 86/90/3 85/89/3 83/87/3 84/88/3
+f 88/93/15 87/92/15 85/91/15 86/94/15
+f 90/96/14 89/95/14 87/92/14 88/93/14
+f 92/98/13 91/97/13 89/95/13 90/96/13
+f 94/68/6 93/65/6 91/97/6 92/98/6
+f 96/67/12 95/66/12 93/65/12 94/68/12
+f 98/70/11 97/69/11 95/66/11 96/67/11
+f 100/72/10 99/71/10 97/69/10 98/70/10
+f 102/74/1 101/73/1 99/71/1 100/72/1
+f 104/76/9 103/75/9 101/73/9 102/74/9
+f 106/78/8 105/77/8 103/75/8 104/76/8
+f 108/80/7 107/79/7 105/77/7 106/78/7
+f 110/82/5 109/81/5 107/79/5 108/80/5
+f 60/137/9 75/138/9 111/139/9 61/140/9
+f 58/141/7 77/142/7 76/143/7 59/144/7
+f 71/145/18 121/146/18 122/147/18 72/148/18
+f 57/149/5 78/150/5 77/142/5 58/141/5
+f 59/144/8 76/143/8 75/138/8 60/137/8
+f 72/148/17 122/147/17 78/150/17 57/149/17
+f 70/151/16 120/152/16 121/146/16 71/145/16
+f 69/153/3 119/154/3 120/152/3 70/151/3
+f 68/155/15 118/156/15 119/154/15 69/153/15
+f 67/157/14 117/158/14 118/156/14 68/155/14
+f 66/136/13 116/135/13 117/158/13 67/157/13
+f 64/159/12 114/160/12 115/134/12 65/133/12
+f 63/161/11 113/162/11 114/160/11 64/159/11
+f 62/163/10 112/164/10 113/162/10 63/161/10
+f 61/140/1 111/139/1 112/165/1 62/166/1
diff --git a/pipeworks/pipes.lua b/pipeworks/pipes.lua
index 2056fdf..9771e3b 100644
--- a/pipeworks/pipes.lua
+++ b/pipeworks/pipes.lua
@@ -80,7 +80,8 @@ for index, connects in ipairs(cconnects) do
end,
after_dig_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
- end
+ end,
+ on_rotate = false
})
local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1}
@@ -106,11 +107,13 @@ for index, connects in ipairs(cconnects) do
walkable = true,
drop = "pipeworks:pipe_1_empty",
after_place_node = function(pos)
+ minetest.set_node(pos, { name = "pipeworks:pipe_"..index.."_empty" })
pipeworks.scan_for_pipe_objects(pos)
end,
after_dig_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
- end
+ end,
+ on_rotate = false
})
table.insert(pipes_empty_nodenames, "pipeworks:pipe_"..index.."_empty")
@@ -134,6 +137,8 @@ if REGISTER_COMPATIBILITY then
after_place_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
end,
+ on_rotate = false
+
})
minetest.register_node(cloaded, {
drawtype = "airlike",
@@ -145,6 +150,8 @@ if REGISTER_COMPATIBILITY then
after_place_node = function(pos)
pipeworks.scan_for_pipe_objects(pos)
end,
+ on_rotate = false
+
})
for xm = 0, 1 do
for xp = 0, 1 do
diff --git a/pipeworks/signal_tubes.lua b/pipeworks/signal_tubes.lua
index dfd7649..3b2653c 100644
--- a/pipeworks/signal_tubes.lua
+++ b/pipeworks/signal_tubes.lua
@@ -1,5 +1,5 @@
if pipeworks.enable_detector_tube then
- local detector_tube_step = 2 * tonumber(minetest.setting_get("dedicated_server_step"))
+ local detector_tube_step = 5 * tonumber(minetest.setting_get("dedicated_server_step"))
pipeworks.register_tube("pipeworks:detector_tube_on", {
description = "Detecting Pneumatic Tube Segment on (you hacker you)",
inventory_image = "pipeworks_detector_tube_inv.png",