forked from mtcontrib/pipeworks
Add fountainhead (vertical spigot, basically).
This commit is contained in:
parent
a59e147013
commit
3d19cca557
@ -479,6 +479,12 @@ function pipes_scansurroundings(pos)
|
|||||||
pym=1
|
pym=1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- ...fountainheads...
|
||||||
|
|
||||||
|
if (string.find(nyp.name, "pipeworks:fountainhead") ~= nil) then
|
||||||
|
pyp=1
|
||||||
|
end
|
||||||
|
|
||||||
-- ... and storage tanks.
|
-- ... and storage tanks.
|
||||||
|
|
||||||
if (string.find(nym.name, "pipeworks:storage_tank_") ~= nil) then
|
if (string.find(nym.name, "pipeworks:storage_tank_") ~= nil) then
|
||||||
|
93
devices.lua
93
devices.lua
@ -75,6 +75,28 @@ spigot_stream = {
|
|||||||
entry_panel = {
|
entry_panel = {
|
||||||
{ -8/16, -8/16, -1/16, 8/16, 8/16, 1/16 }
|
{ -8/16, -8/16, -1/16, 8/16, 8/16, 1/16 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fountainhead_model = {
|
||||||
|
{ -2/64, -32/64, -6/64, 2/64, 21/64, 6/64 }, -- main segment
|
||||||
|
{ -4/64, -32/64, -5/64, 4/64, 21/64, 5/64 },
|
||||||
|
{ -5/64, -32/64, -4/64, 5/64, 21/64, 4/64 },
|
||||||
|
{ -6/64, -32/64, -2/64, 6/64, 21/64, 2/64 },
|
||||||
|
|
||||||
|
{ -3/64, -32/64, -8/64, 3/64, -30/64, 8/64 }, -- bottom flange
|
||||||
|
{ -5/64, -32/64, -7/64, 5/64, -30/64, 7/64 },
|
||||||
|
{ -6/64, -32/64, -6/64, 6/64, -30/64, 6/64 },
|
||||||
|
{ -7/64, -32/64, -5/64, 7/64, -30/64, 5/64 },
|
||||||
|
{ -8/64, -32/64, -3/64, 8/64, -30/64, 3/64 },
|
||||||
|
|
||||||
|
{ -3/64, 20/64, -8/64, 3/64, 32/64, 8/64 }, -- top flange/outlet
|
||||||
|
{ -5/64, 20/64, -7/64, 5/64, 32/64, 7/64 },
|
||||||
|
{ -6/64, 20/64, -6/64, 6/64, 32/64, 6/64 },
|
||||||
|
{ -7/64, 20/64, -5/64, 7/64, 32/64, 5/64 },
|
||||||
|
{ -8/64, 20/64, -3/64, 8/64, 32/64, 3/64 }
|
||||||
|
}
|
||||||
|
|
||||||
-- Now define the nodes.
|
-- Now define the nodes.
|
||||||
|
|
||||||
local states = { "on", "off" }
|
local states = { "on", "off" }
|
||||||
@ -652,6 +674,77 @@ for fill = 0, 10 do
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- fountainhead
|
||||||
|
|
||||||
|
minetest.register_node("pipeworks:fountainhead", {
|
||||||
|
description = "Fountainhead",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {
|
||||||
|
"pipeworks_fountainhead_top.png",
|
||||||
|
"pipeworks_pipe_end.png",
|
||||||
|
"pipeworks_plain.png",
|
||||||
|
},
|
||||||
|
sunlight_propagates = true,
|
||||||
|
paramtype = "light",
|
||||||
|
groups = {snappy=3, pipe=1},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
walkable = true,
|
||||||
|
after_place_node = function(pos)
|
||||||
|
pipe_scanforobjects(pos)
|
||||||
|
end,
|
||||||
|
after_dig_node = function(pos)
|
||||||
|
pipe_scanforobjects(pos)
|
||||||
|
end,
|
||||||
|
on_construct = function(pos)
|
||||||
|
if mesecon then
|
||||||
|
mesecon:receptor_on(pos, rules)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = fountainhead_model ,
|
||||||
|
},
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 }
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("pipeworks:fountainhead_pouring", {
|
||||||
|
description = "Fountainhead",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {
|
||||||
|
"pipeworks_fountainhead_top.png",
|
||||||
|
"pipeworks_pipe_end.png",
|
||||||
|
"pipeworks_plain.png",
|
||||||
|
},
|
||||||
|
sunlight_propagates = true,
|
||||||
|
paramtype = "light",
|
||||||
|
groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
walkable = true,
|
||||||
|
after_place_node = function(pos)
|
||||||
|
pipe_scanforobjects(pos)
|
||||||
|
end,
|
||||||
|
after_dig_node = function(pos)
|
||||||
|
pipe_scanforobjects(pos)
|
||||||
|
end,
|
||||||
|
on_construct = function(pos)
|
||||||
|
if mesecon then
|
||||||
|
mesecon:receptor_on(pos, rules)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = fountainhead_model,
|
||||||
|
},
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 },
|
||||||
|
},
|
||||||
|
drop = "pipeworks:fountainhead"
|
||||||
|
})
|
||||||
|
|
||||||
-- various actions
|
-- various actions
|
||||||
|
|
||||||
minetest.register_on_punchnode(function (pos, node)
|
minetest.register_on_punchnode(function (pos, node)
|
||||||
|
@ -97,3 +97,25 @@ pipeworks_spigot_check = function(pos, node)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
pipeworks_fountainhead_check = function(pos, node)
|
||||||
|
local abovename = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}).name
|
||||||
|
if abovename and (abovename == "air" or abovename == "default:water_flowing" or abovename == "default:water_source") then
|
||||||
|
local fountainhead_name = minetest.get_node(pos).name
|
||||||
|
local near_node = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
|
if near_node and string.find(near_node.name, "_loaded") then
|
||||||
|
if fountainhead_name and fountainhead_name == "pipeworks:fountainhead" then
|
||||||
|
minetest.add_node(pos,{name = "pipeworks:fountainhead_pouring"})
|
||||||
|
if finitewater or abovename ~= "default:water_source" then
|
||||||
|
minetest.add_node({x=pos.x,y=pos.y+1,z=pos.z},{name = "default:water_source"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if fountainhead_name == "pipeworks:fountainhead_pouring" then
|
||||||
|
minetest.add_node({x=pos.x,y=pos.y,z=pos.z},{name = "pipeworks:fountainhead"})
|
||||||
|
if abovename == "default:water_source" and not finitewater then
|
||||||
|
minetest.remove_node({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
10
pipes.lua
10
pipes.lua
@ -312,3 +312,13 @@ minetest.register_abm({
|
|||||||
pipeworks_spigot_check(pos,node)
|
pipeworks_spigot_check(pos,node)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"pipeworks:fountainhead","pipeworks:fountainhead_pouring"},
|
||||||
|
interval = 1,
|
||||||
|
chance = 1,
|
||||||
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
pipeworks_fountainhead_check(pos,node)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
BIN
textures/pipeworks_fountainhead_top.png
Normal file
BIN
textures/pipeworks_fountainhead_top.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
Loading…
Reference in New Issue
Block a user