Added test object for pneumatic tube autorouting code, made tubes connect to
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>
Mon, 17 Sep 2012 16:32:47 +0000 (12:32 -0400)
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>
Mon, 17 Sep 2012 16:32:47 +0000 (12:32 -0400)
it and any object that bears groups={tubedevice=1} (connects to any side)

autoplace.lua
textures/pipeworks_testobject.png [new file with mode: 0644]
tubes.lua

index 492f558ca70f7138759fc15eec78065b9896af44..390c66a1ca3b70e81b5287be712354555ee1b7e6 100644 (file)
@@ -43,7 +43,9 @@ end
 
 function tube_autoroute(pos)
        nctr = minetest.env:get_node(pos)
-       if (string.find(nctr.name, "pipeworks:tube_") == nil) then return end
+       print ("minetest.get_item_group("..nctr.name..',"tubedevice") == '..minetest.get_item_group(nctr.name, "tubedevice"))
+       if (string.find(nctr.name, "pipeworks:tube_") == nil)
+               and minetest.get_item_group(nctr.name, "tubedevice") ~= 1 then return end
 
        pxm=0
        pxp=0
@@ -59,15 +61,24 @@ function tube_autoroute(pos)
        nzm = minetest.env:get_node({ x=pos.x  , y=pos.y  , z=pos.z-1 })
        nzp = minetest.env:get_node({ x=pos.x  , y=pos.y  , z=pos.z+1 })
 
-       if (string.find(nxm.name, "pipeworks:tube_") ~= nil) then pxm=1 end
-       if (string.find(nxp.name, "pipeworks:tube_") ~= nil) then pxp=1 end
-       if (string.find(nym.name, "pipeworks:tube_") ~= nil) then pym=1 end
-       if (string.find(nyp.name, "pipeworks:tube_") ~= nil) then pyp=1 end
-       if (string.find(nzm.name, "pipeworks:tube_") ~= nil) then pzm=1 end
-       if (string.find(nzp.name, "pipeworks:tube_") ~= nil) then pzp=1 end
+       if (string.find(nxm.name, "pipeworks:tube_") ~= nil) 
+               or minetest.get_item_group(nxm.name, "tubedevice") == 1 then pxm=1 end
+       if (string.find(nxp.name, "pipeworks:tube_") ~= nil) 
+               or minetest.get_item_group(nxp.name, "tubedevice") == 1 then pxp=1 end
+       if (string.find(nym.name, "pipeworks:tube_") ~= nil) 
+               or minetest.get_item_group(nym.name, "tubedevice") == 1 then pym=1 end
+       if (string.find(nyp.name, "pipeworks:tube_") ~= nil) 
+               or minetest.get_item_group(nyp.name, "tubedevice") == 1 then pyp=1 end
+       if (string.find(nzm.name, "pipeworks:tube_") ~= nil) 
+               or minetest.get_item_group(nzm.name, "tubedevice") == 1 then pzm=1 end
+       if (string.find(nzp.name, "pipeworks:tube_") ~= nil) 
+               or minetest.get_item_group(nzp.name, "tubedevice") == 1 then pzp=1 end
 
        nsurround = pxm..pxp..pym..pyp..pzm..pzp
-       minetest.env:add_node(pos, { name = "pipeworks:tube_"..nsurround })
+       if minetest.get_item_group(nctr.name, "tubedevice") ~= 1 then
+               minetest.env:add_node(pos, { name = "pipeworks:tube_"..nsurround })
+       end
+
 end
 
 -- auto-rotation code for various devices the tubes attach to
diff --git a/textures/pipeworks_testobject.png b/textures/pipeworks_testobject.png
new file mode 100644 (file)
index 0000000..38f85b7
Binary files /dev/null and b/textures/pipeworks_testobject.png differ
index e7844a3209979ce7619a2ba8f25bae918615741c..7a05d9270ff645316f6ba509efedec5e4c4dc978 100644 (file)
--- a/tubes.lua
+++ b/tubes.lua
@@ -1,4 +1,21 @@
--- This file supplies pneumatic tubes.
+-- This file supplies pneumatic tubes and a 'test' device
+
+minetest.register_node("pipeworks:testobject", {
+       description = "Pneumatic tube test ojbect",
+       tiles = {
+               "pipeworks_testobject.png",
+       },
+       paramtype = "light",
+       groups = {snappy=3, tubedevice=1},
+       sounds = default.node_sound_wood_defaults(),
+       walkable = true,
+       after_place_node = function(pos)
+                       tube_scanforobjects(pos)
+       end,
+       after_dig_node = function(pos)
+                       tube_scanforobjects(pos)
+       end,
+})
 
 -- tables