pipeworks/init.lua

673 lines
18 KiB
Lua

-- Pipes mod by VanessaE
-- 2012-06-12
--
-- Entirely my own code. This mod merely supplies enough nodes to build
-- a bunch of pipes in all directions and with all types of junctions.
--
-- License: WTFPL
--
local DEBUG = 1
-- Local Functions
local dbg = function(s)
if DEBUG == 1 then
print('[PIPES] ' .. s)
end
end
-- Nodes (empty)
minetest.register_node("pipes:vertical", {
description = "Pipe (vertical)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_plain.png",
"pipes_windowed_empty.png",
"pipes_windowed_empty.png"
},
paramtype = "light",
-- paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.15, 0.5, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
{ -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:horizontal", {
description = "Pipe (horizontal)",
drawtype = "nodebox",
tile_images = { "pipes_windowed_empty.png",
"pipes_windowed_empty.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_plain.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.15, -0.15, 0.5, 0.15, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:junction_xy", {
description = "Pipe (junction between X/Y axes)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_windowed_empty.png",
"pipes_windowed_empty.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.5, 0.5, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
{ -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
{ 0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:junction_xz", {
description = "Pipe (junction between X/Z axes)",
drawtype = "nodebox",
tile_images = { "pipes_windowed_empty.png",
"pipes_windowed_empty.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.15, -0.15, 0.5, 0.15, 0.5 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 },
{ -0.1 , -0.1 , 0.1 , 0.1 , 0.1 , 0.45 },
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:bend_xy_down", {
description = "Pipe (downward bend between X/Y axes)",
drawtype = "nodebox",
tile_images = { "pipes_plain.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_windowed_empty.png",
"pipes_windowed_empty.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.5, 0.15, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.1 , 0.1 },
{ -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:bend_xy_up", {
description = "Pipe (upward bend between X/Y axes)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_plain.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_windowed_empty.png",
"pipes_windowed_empty.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.15, -0.15, 0.5, 0.5, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, 0.45 , -0.15, 0.15, 0.5, 0.15 },
{ -0.1 , -0.1 , -0.1 , 0.1 , 0.45, 0.1 },
{ -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:bend_xz", {
description = "Pipe (bend between X/Z axes)",
drawtype = "nodebox",
tile_images = { "pipes_windowed_empty.png",
"pipes_windowed_empty.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_pipe_end.png",
"pipes_plain.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.15, -0.15, 0.5, 0.15, 0.5 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 },
{ -0.1 , -0.1 , 0.1 , 0.1 , 0.1 , 0.45 },
{ -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:crossing_xz", {
description = "Pipe (4-way crossing between X/Z axes)",
drawtype = "nodebox",
tile_images = { "pipes_windowed_empty.png",
"pipes_windowed_empty.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png"
},
paramtype = "light",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.15, -0.5, 0.5, 0.15, 0.5 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
{ -0.15, -0.15, -0.5 , 0.15, 0.15, -0.45 },
{ -0.1 , -0.1 , -0.45, 0.1 , 0.1 , 0.45 },
{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:crossing_xy", {
description = "Pipe (4-way crossing between X/Y axes)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_windowed_empty.png",
"pipes_windowed_empty.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.15, 0.5, 0.5, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
{ -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:crossing_xyz", {
description = "Pipe (6-way crossing between X/Y/Z axes)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png"
},
paramtype = "light",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
{ -0.15, -0.15, -0.5 , 0.15, 0.15, -0.45 },
{ -0.1 , -0.1 , -0.45, 0.1 , 0.1 , 0.45 },
{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 },
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
{ -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
-- Nodes (full/loaded)
minetest.register_node("pipes:vertical_loaded", {
description = "Pipe (vertical)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_plain.png",
"pipes_windowed_loaded.png",
"pipes_windowed_loaded.png"
},
paramtype = "light",
-- paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.15, 0.5, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
{ -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:horizontal_loaded", {
description = "Pipe (horizontal)",
drawtype = "nodebox",
tile_images = { "pipes_windowed_loaded.png",
"pipes_windowed_loaded.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_plain.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.15, -0.15, 0.5, 0.15, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:junction_xy_loaded", {
description = "Pipe (junction between X/Y axes)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_windowed_loaded.png",
"pipes_windowed_loaded.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.5, 0.5, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
{ -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
{ 0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:junction_xz_loaded", {
description = "Pipe (junction between X/Z axes)",
drawtype = "nodebox",
tile_images = { "pipes_windowed_loaded.png",
"pipes_windowed_loaded.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.15, -0.15, 0.5, 0.15, 0.5 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 },
{ -0.1 , -0.1 , 0.1 , 0.1 , 0.1 , 0.45 },
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:bend_xy_down_loaded", {
description = "Pipe (downward bend between X/Y axes)",
drawtype = "nodebox",
tile_images = { "pipes_plain.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_windowed_loaded.png",
"pipes_windowed_loaded.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.5, 0.15, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.1 , 0.1 },
{ -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:bend_xy_up_loaded", {
description = "Pipe (upward bend between X/Y axes)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_plain.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_windowed_loaded.png",
"pipes_windowed_loaded.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.15, -0.15, 0.5, 0.5, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, 0.45 , -0.15, 0.15, 0.5, 0.15 },
{ -0.1 , -0.1 , -0.1 , 0.1 , 0.45, 0.1 },
{ -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:bend_xz_loaded", {
description = "Pipe (bend between X/Z axes)",
drawtype = "nodebox",
tile_images = { "pipes_windowed_loaded.png",
"pipes_windowed_loaded.png",
"pipes_pipe_end.png",
"pipes_plain.png",
"pipes_pipe_end.png",
"pipes_plain.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.15, -0.15, -0.15, 0.5, 0.15, 0.5 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 },
{ -0.1 , -0.1 , 0.1 , 0.1 , 0.1 , 0.45 },
{ -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:crossing_xz_loaded", {
description = "Pipe (4-way crossing between X/Z axes)",
drawtype = "nodebox",
tile_images = { "pipes_windowed_loaded.png",
"pipes_windowed_loaded.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png"
},
paramtype = "light",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.15, -0.5, 0.5, 0.15, 0.5 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
{ -0.15, -0.15, -0.5 , 0.15, 0.15, -0.45 },
{ -0.1 , -0.1 , -0.45, 0.1 , 0.1 , 0.45 },
{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:crossing_xy_loaded", {
description = "Pipe (4-way crossing between X/Y axes)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_windowed_loaded.png",
"pipes_windowed_loaded.png"
},
paramtype = "light",
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.15, 0.5, 0.5, 0.15 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
{ -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
minetest.register_node("pipes:crossing_xyz_loaded", {
description = "Pipe (6-way crossing between X/Y/Z axes)",
drawtype = "nodebox",
tile_images = { "pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png",
"pipes_pipe_end.png"
},
paramtype = "light",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
},
node_box = {
type = "fixed",
fixed = {
{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
{ -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
{ 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
{ -0.15, -0.15, -0.5 , 0.15, 0.15, -0.45 },
{ -0.1 , -0.1 , -0.45, 0.1 , 0.1 , 0.45 },
{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 },
{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
{ -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
{ -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
}
},
groups = {snappy=3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
})
print("[Pipes] Loaded!")