2022-11-21 16:12:22 -05:00
|
|
|
|
2022-11-24 00:51:57 -05:00
|
|
|
minetest.register_node(":waterworks:pipe", {
|
2022-11-21 16:12:22 -05:00
|
|
|
description = "Waterworks Pipe",
|
|
|
|
tiles = {
|
|
|
|
{name="waterworks_pipe.png^waterworks_pipe_rivets_offset.png", scale=4, align_style="world"},
|
|
|
|
{name="waterworks_pipe.png^waterworks_pipe_rivets_offset_2.png", scale=4, align_style="world"},
|
|
|
|
{name="waterworks_pipe.png^waterworks_pipe_rivets.png", scale=4, align_style="world"},
|
|
|
|
{name="waterworks_pipe.png^waterworks_pipe_rivets_offset_2.png", scale=4, align_style="world"},
|
|
|
|
{name="waterworks_pipe.png^waterworks_pipe_rivets.png", scale=4, align_style="world"},
|
|
|
|
{name="waterworks_pipe.png^waterworks_pipe_rivets_offset_2.png", scale=4, align_style="world"},
|
|
|
|
},
|
|
|
|
connects_to = {"group:waterworks_pipe", "group:waterworks_connected", "group:waterworks_inert"},
|
|
|
|
connect_sides = { "top", "bottom", "front", "left", "back", "right" },
|
|
|
|
drawtype = "nodebox",
|
|
|
|
node_box = {
|
|
|
|
type = "connected",
|
|
|
|
fixed = {-0.25,-0.25,-0.25,0.25,0.25,0.25},
|
|
|
|
connect_top = {-0.375, 0, -0.375, 0.375, 0.5, 0.375},
|
|
|
|
connect_bottom = {-0.375, -0.5, -0.375, 0.375, 0, 0.375},
|
|
|
|
connect_back = {-0.375, -0.375, 0, 0.375, 0.375, 0.5},
|
|
|
|
connect_right = {0, -0.375, -0.375, 0.5, 0.375, 0.375},
|
|
|
|
connect_front = {-0.375, -0.375, -0.5, 0.375, 0.375, 0},
|
|
|
|
connect_left = {-0.5, -0.375, -0.375, 0, 0.375, 0.375},
|
|
|
|
disconnected = {-0.375,-0.375,-0.375,0.375,0.375,0.375},
|
|
|
|
},
|
|
|
|
paramtype = "light",
|
|
|
|
|
|
|
|
is_ground_content = false,
|
2022-11-27 14:08:38 -05:00
|
|
|
groups = {cracky = 3, waterworks_pipe = 1},
|
2022-11-21 16:12:22 -05:00
|
|
|
--sounds = default.node_sound_metal_defaults(),
|
|
|
|
on_construct = function(pos)
|
|
|
|
waterworks.place_pipe(pos)
|
|
|
|
end,
|
|
|
|
on_destruct = function(pos)
|
|
|
|
waterworks.remove_pipe(pos)
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
|
|
|
-----------------------------------------------------------------
|
|
|
|
|
2022-11-24 00:51:57 -05:00
|
|
|
minetest.register_node(":waterworks:valve_on", {
|
2022-11-21 16:12:22 -05:00
|
|
|
description = "Waterworks Valve (open)",
|
|
|
|
tiles = {"waterworks_metal.png^waterworks_valve_seam.png^waterworks_valve_on.png",},
|
|
|
|
connects_to = {"group:waterworks_pipe", "group:waterworks_connected", "group:waterworks_inert"},
|
|
|
|
connect_sides = { "top", "bottom", "front", "left", "back", "right" },
|
|
|
|
drawtype = "nodebox",
|
|
|
|
node_box = {
|
|
|
|
type = "connected",
|
|
|
|
fixed = {-0.4375,-0.4375,-0.4375,0.4375,0.4375,0.4375},
|
|
|
|
connect_top = {-0.375, 0.4375, -0.375, 0.375, 0.5, 0.375},
|
|
|
|
connect_bottom = {-0.375, -0.5, -0.375, 0.375, -0.4375, 0.375},
|
|
|
|
connect_back = {-0.375, -0.375, 0.4375, 0.375, 0.375, 0.5},
|
|
|
|
connect_right = {0.4375, -0.375, -0.375, 0.5, 0.375, 0.375},
|
|
|
|
connect_front = {-0.375, -0.375, -0.5, 0.375, 0.375, -0.4375},
|
|
|
|
connect_left = {-0.5, -0.375, -0.375, -0.4375, 0.375, 0.375},
|
|
|
|
},
|
|
|
|
paramtype = "light",
|
|
|
|
|
|
|
|
is_ground_content = false,
|
2022-11-27 14:08:38 -05:00
|
|
|
groups = {cracky = 3, waterworks_pipe = 1},
|
2022-11-21 16:12:22 -05:00
|
|
|
--sounds = default.node_sound_metal_defaults(),
|
|
|
|
on_construct = function(pos)
|
|
|
|
waterworks.place_pipe(pos)
|
|
|
|
end,
|
|
|
|
on_destruct = function(pos)
|
|
|
|
waterworks.remove_pipe(pos)
|
|
|
|
end,
|
|
|
|
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
|
|
|
node.name = "waterworks:valve_off"
|
|
|
|
minetest.set_node(pos, node)
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
2022-11-24 00:51:57 -05:00
|
|
|
minetest.register_node(":waterworks:valve_off", {
|
2022-11-21 16:12:22 -05:00
|
|
|
description = "Waterworks Valve (closed)",
|
|
|
|
tiles = {"waterworks_metal.png^waterworks_valve_seam.png^waterworks_valve_off.png",},
|
|
|
|
connects_to = {"group:waterworks_pipe", "group:waterworks_connected", "group:waterworks_inert"},
|
|
|
|
connect_sides = { "top", "bottom", "front", "left", "back", "right" },
|
|
|
|
drawtype = "nodebox",
|
|
|
|
node_box = {
|
|
|
|
type = "connected",
|
|
|
|
fixed = {-0.4375,-0.4375,-0.4375,0.4375,0.4375,0.4375},
|
|
|
|
connect_top = {-0.375, 0.4375, -0.375, 0.375, 0.5, 0.375},
|
|
|
|
connect_bottom = {-0.375, -0.5, -0.375, 0.375, -0.4375, 0.375},
|
|
|
|
connect_back = {-0.375, -0.375, 0.4375, 0.375, 0.375, 0.5},
|
|
|
|
connect_right = {0.4375, -0.375, -0.375, 0.5, 0.375, 0.375},
|
|
|
|
connect_front = {-0.375, -0.375, -0.5, 0.375, 0.375, -0.4375},
|
|
|
|
connect_left = {-0.5, -0.375, -0.375, -0.4375, 0.375, 0.375},
|
|
|
|
},
|
|
|
|
paramtype = "light",
|
|
|
|
drops = "waterworks:valve_on",
|
|
|
|
|
|
|
|
is_ground_content = false,
|
2022-11-27 14:08:38 -05:00
|
|
|
groups = {cracky = 3, waterworks_inert = 1, not_in_creative_inventory = 1},
|
2022-11-21 16:12:22 -05:00
|
|
|
--sounds = default.node_sound_metal_defaults(),
|
|
|
|
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
|
|
|
node.name = "waterworks:valve_on"
|
|
|
|
minetest.set_node(pos, node)
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
|
|
|
-----------------------------------------------------------------
|
|
|
|
|
|
|
|
local place_inlet = function(pos)
|
|
|
|
local node = minetest.get_node(pos)
|
|
|
|
local dir = minetest.facedir_to_dir(node.param2)
|
|
|
|
local target = vector.subtract(pos, dir)
|
|
|
|
waterworks.place_connected(pos, "inlet", {pos = pos, target = target, pressure = target.y})
|
|
|
|
local meta = minetest.get_meta(pos)
|
|
|
|
meta:set_string("infotext", "Inlet elevation " .. tostring(target.y))
|
|
|
|
end
|
2022-11-24 00:51:57 -05:00
|
|
|
minetest.register_node(":waterworks:inlet", {
|
2022-11-21 16:12:22 -05:00
|
|
|
description = "Waterworks Inlet",
|
|
|
|
tiles = {
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png^waterworks_connected_back.png",
|
|
|
|
"waterworks_metal.png^waterworks_inlet.png",
|
|
|
|
},
|
|
|
|
paramtype2 = "facedir",
|
|
|
|
is_ground_content = false,
|
2022-11-27 14:08:38 -05:00
|
|
|
groups = {cracky = 3, waterworks_connected = 1},
|
2022-11-21 16:12:22 -05:00
|
|
|
--sounds = default.node_sound_metal_defaults(),
|
|
|
|
paramtype = "light",
|
|
|
|
drawtype = "nodebox",
|
|
|
|
node_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {{-0.375, -0.375, -0.375, 0.375, 0.375, 0.5}, {-0.5, -0.5, -0.5, 0.5, 0.5, -0.375}},
|
|
|
|
},
|
|
|
|
_waterworks_update_connected = place_inlet,
|
|
|
|
on_construct = function(pos)
|
|
|
|
place_inlet(pos)
|
|
|
|
end,
|
|
|
|
on_destruct = function(pos)
|
|
|
|
waterworks.remove_connected(pos, "inlet")
|
|
|
|
end,
|
|
|
|
on_rotate = function(pos, node, user, mode, new_param2)
|
|
|
|
waterworks.remove_connected(pos, "inlet")
|
|
|
|
node.param2 = new_param2
|
|
|
|
minetest.swap_node(pos, node)
|
|
|
|
place_inlet(pos)
|
|
|
|
return true
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
|
|
|
local place_pumped_inlet = function(pos)
|
|
|
|
local node = minetest.get_node(pos)
|
|
|
|
local dir = minetest.facedir_to_dir(node.param2)
|
|
|
|
local target = vector.subtract(pos, dir)
|
|
|
|
waterworks.place_connected(pos, "inlet", {pos = pos, target = target, pressure = target.y + 100})
|
|
|
|
local meta = minetest.get_meta(pos)
|
|
|
|
meta:set_string("infotext", "Pump effective elevation " .. tostring(target.y + 100))
|
|
|
|
end
|
2022-11-24 00:51:57 -05:00
|
|
|
minetest.register_node(":waterworks:pumped_inlet", {
|
2022-11-21 16:12:22 -05:00
|
|
|
description = "Waterworks Pumped Inlet",
|
|
|
|
tiles = {
|
|
|
|
"waterworks_turbine_base.png",
|
|
|
|
"waterworks_turbine_base.png",
|
|
|
|
"waterworks_turbine_side.png^[transformFX",
|
|
|
|
"waterworks_turbine_side.png",
|
|
|
|
"waterworks_metal.png^waterworks_connected_back.png",
|
|
|
|
"waterworks_turbine_base.png^waterworks_turbine.png",
|
|
|
|
},
|
|
|
|
paramtype2 = "facedir",
|
|
|
|
is_ground_content = false,
|
2022-11-27 14:08:38 -05:00
|
|
|
groups = {cracky = 3, waterworks_connected = 1},
|
2022-11-21 16:12:22 -05:00
|
|
|
--sounds = default.node_sound_metal_defaults(),
|
|
|
|
paramtype = "light",
|
|
|
|
drawtype = "normal",
|
|
|
|
_waterworks_update_connected = place_pumped_inlet,
|
|
|
|
on_construct = function(pos)
|
|
|
|
place_pumped_inlet(pos)
|
|
|
|
end,
|
|
|
|
on_destruct = function(pos)
|
|
|
|
waterworks.remove_connected(pos, "inlet")
|
|
|
|
end,
|
|
|
|
on_rotate = function(pos, node, user, mode, new_param2)
|
|
|
|
waterworks.remove_connected(pos, "inlet")
|
|
|
|
node.param2 = new_param2
|
|
|
|
minetest.swap_node(pos, node)
|
|
|
|
place_pumped_inlet(pos)
|
|
|
|
return true
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
|
|
|
local place_outlet = function(pos)
|
|
|
|
local node = minetest.get_node(pos)
|
|
|
|
local dir = minetest.facedir_to_dir(node.param2)
|
|
|
|
local target = vector.subtract(pos, dir)
|
|
|
|
waterworks.place_connected(pos, "outlet", {pos = pos, target = target, pressure = target.y})
|
|
|
|
local meta = minetest.get_meta(pos)
|
|
|
|
meta:set_string("infotext", "Outlet elevation " .. tostring(target.y))
|
|
|
|
end
|
2022-11-24 00:51:57 -05:00
|
|
|
minetest.register_node(":waterworks:outlet", {
|
2022-11-21 16:12:22 -05:00
|
|
|
description = "Waterworks Outlet",
|
|
|
|
tiles = {
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png^waterworks_connected_back.png",
|
|
|
|
"waterworks_metal.png^waterworks_outlet.png",
|
|
|
|
},
|
|
|
|
paramtype2 = "facedir",
|
|
|
|
is_ground_content = false,
|
2022-11-27 14:08:38 -05:00
|
|
|
groups = {cracky = 3, waterworks_connected = 1},
|
2022-11-21 16:12:22 -05:00
|
|
|
|
|
|
|
paramtype = "light",
|
|
|
|
drawtype = "nodebox",
|
|
|
|
node_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {{-0.375, -0.375, -0.375, 0.375, 0.375, 0.5}, {-0.5, -0.5, -0.5, 0.5, 0.5, -0.375}},
|
|
|
|
},
|
|
|
|
|
|
|
|
--sounds = default.node_sound_metal_defaults(),
|
|
|
|
_waterworks_update_connected = place_outlet,
|
|
|
|
on_construct = function(pos)
|
|
|
|
place_outlet(pos)
|
|
|
|
end,
|
|
|
|
on_destruct = function(pos)
|
|
|
|
waterworks.remove_connected(pos, "outlet")
|
|
|
|
end,
|
|
|
|
on_rotate = function(pos, node, user, mode, new_param2)
|
|
|
|
waterworks.remove_connected(pos, "outlet")
|
|
|
|
node.param2 = new_param2
|
|
|
|
minetest.swap_node(pos, node)
|
|
|
|
place_outlet(pos)
|
|
|
|
return true
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
|
|
|
local place_grate = function(pos)
|
|
|
|
local node = minetest.get_node(pos)
|
|
|
|
local dir = minetest.facedir_to_dir(node.param2)
|
|
|
|
local target = vector.subtract(pos, dir)
|
|
|
|
waterworks.place_connected(pos, "outlet", {pos = pos, target = target, pressure = target.y})
|
|
|
|
local meta = minetest.get_meta(pos)
|
|
|
|
meta:set_string("infotext", "Grate elevation " .. tostring(target.y))
|
|
|
|
end
|
2022-11-24 00:51:57 -05:00
|
|
|
minetest.register_node(":waterworks:grate", {
|
2022-11-21 16:12:22 -05:00
|
|
|
description = "Waterworks Grate",
|
|
|
|
tiles = {
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png",
|
|
|
|
"waterworks_metal.png^waterworks_connected_back.png",
|
|
|
|
"waterworks_metal.png^waterworks_grate.png",
|
|
|
|
},
|
|
|
|
paramtype2 = "facedir",
|
|
|
|
is_ground_content = false,
|
2022-11-27 14:08:38 -05:00
|
|
|
groups = {cracky = 3, waterworks_connected = 1},
|
2022-11-21 16:12:22 -05:00
|
|
|
|
|
|
|
paramtype = "light",
|
|
|
|
drawtype = "nodebox",
|
|
|
|
node_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {{-0.375, -0.375, -0.375, 0.375, 0.375, 0.5}, {-0.5, -0.5, -0.5, 0.5, 0.5, -0.375}},
|
|
|
|
},
|
|
|
|
|
|
|
|
--sounds = default.node_sound_metal_defaults(),
|
|
|
|
_waterworks_update_connected = place_outlet,
|
|
|
|
on_construct = function(pos)
|
|
|
|
place_outlet(pos)
|
|
|
|
end,
|
|
|
|
on_destruct = function(pos)
|
|
|
|
waterworks.remove_connected(pos, "outlet")
|
|
|
|
waterworks.remove_connected(pos, "inlet")
|
|
|
|
end,
|
|
|
|
on_rotate = function(pos, node, user, mode, new_param2)
|
|
|
|
waterworks.remove_connected(pos, "outlet")
|
|
|
|
waterworks.remove_connected(pos, "inlet")
|
|
|
|
node.param2 = new_param2
|
|
|
|
minetest.swap_node(pos, node)
|
|
|
|
place_outlet(pos)
|
|
|
|
return true
|
|
|
|
end,
|
|
|
|
})
|