Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Sys Quatre 2021-02-07 13:13:20 +01:00
commit be2776fc46
19 changed files with 74 additions and 80 deletions

View File

@ -47,7 +47,7 @@ local function autocraft(inventory, craft)
end end
-- consume material -- consume material
for itemname, number in pairs(consumption) do for itemname, number in pairs(consumption) do
for i = 1, number do -- We have to do that since remove_item does not work if count > stack_max for _ = 1, number do -- We have to do that since remove_item does not work if count > stack_max
inventory:remove_item("src", ItemStack(itemname)) inventory:remove_item("src", ItemStack(itemname))
end end
end end
@ -76,7 +76,7 @@ local function run_autocrafter(pos, elapsed)
return false return false
end end
for step = 1, math.floor(elapsed/craft_time) do for _ = 1, math.floor(elapsed/craft_time) do
local continue = autocraft(inventory, craft) local continue = autocraft(inventory, craft)
if not continue then return false end if not continue then return false end
end end
@ -109,7 +109,6 @@ local function after_recipe_change(pos, inventory)
inventory:set_stack("output", 1, "") inventory:set_stack("output", 1, "")
return return
end end
local recipe_changed = false
local recipe = inventory:get_list("recipe") local recipe = inventory:get_list("recipe")
local hash = minetest.hash_node_position(pos) local hash = minetest.hash_node_position(pos)

View File

@ -81,7 +81,7 @@ local function tube_autoroute(pos)
local basename = nodedef.basename local basename = nodedef.basename
if nodedef.style == "old" then if nodedef.style == "old" then
local nsurround = "" local nsurround = ""
for i, n in ipairs(active) do for _, n in ipairs(active) do
nsurround = nsurround..n nsurround = nsurround..n
end end
nctr.name = basename.."_"..nsurround nctr.name = basename.."_"..nsurround

View File

@ -114,7 +114,7 @@ local fs_helpers = {}
pipeworks.fs_helpers = fs_helpers pipeworks.fs_helpers = fs_helpers
function fs_helpers.on_receive_fields(pos, fields) function fs_helpers.on_receive_fields(pos, fields)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
for field, value in pairs(fields) do for field in pairs(fields) do
if pipeworks.string_startswith(field, "fs_helpers_cycling:") then if pipeworks.string_startswith(field, "fs_helpers_cycling:") then
local l = field:split(":") local l = field:split(":")
local new_value = tonumber(l[2]) local new_value = tonumber(l[2])

View File

@ -65,7 +65,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
open_chests[pn] = nil open_chests[pn] = nil
for k, v in pairs(open_chests) do for _, v in pairs(open_chests) do
if v.pos.x == pos.x and v.pos.y == pos.y and v.pos.z == pos.z then if v.pos.x == pos.x and v.pos.y == pos.y and v.pos.z == pos.z then
return true return true
end end
@ -230,7 +230,7 @@ override.tiles = {
} }
-- Add the extra groups -- Add the extra groups
for i,v in ipairs({override_protected, override, override_open, override_protected_open}) do for _,v in ipairs({override_protected, override, override_open, override_protected_open}) do
v.groups.tubedevice = 1 v.groups.tubedevice = 1
v.groups.tubedevice_receiver = 1 v.groups.tubedevice_receiver = 1
end end

View File

@ -7,7 +7,7 @@ local DS = minetest.get_translator("default")
local fs_helpers = pipeworks.fs_helpers local fs_helpers = pipeworks.fs_helpers
tube_entry = "^pipeworks_tube_connection_stony.png" local tube_entry = "^pipeworks_tube_connection_stony.png"
local function active_formspec(fuel_percent, item_percent, pos, meta) local function active_formspec(fuel_percent, item_percent, pos, meta)
local formspec = local formspec =

View File

@ -10,7 +10,7 @@ function pipeworks.fix_after_rotation(pos, node, user, mode, new_param2)
if string.find(node.name, "spigot") then new_param2 = new_param2 % 4 end if string.find(node.name, "spigot") then new_param2 = new_param2 % 4 end
newnode = string.gsub(node.name, "_on", "_off") local newnode = string.gsub(node.name, "_on", "_off")
minetest.swap_node(pos, { name = newnode, param2 = new_param2 }) minetest.swap_node(pos, { name = newnode, param2 = new_param2 })
pipeworks.scan_for_pipe_objects(pos) pipeworks.scan_for_pipe_objects(pos)
@ -20,7 +20,7 @@ end
function pipeworks.rotate_on_place(itemstack, placer, pointed_thing) function pipeworks.rotate_on_place(itemstack, placer, pointed_thing)
local playername = placer:get_player_name() local playername = placer:get_player_name()
if not minetest.is_protected(pointed_thing.under, playername) if not minetest.is_protected(pointed_thing.under, playername)
and not minetest.is_protected(pointed_thing.above, playername) then and not minetest.is_protected(pointed_thing.above, playername) then
local node = minetest.get_node(pointed_thing.under) local node = minetest.get_node(pointed_thing.under)
@ -36,9 +36,7 @@ function pipeworks.rotate_on_place(itemstack, placer, pointed_thing)
local under = pointed_thing.under local under = pointed_thing.under
local fdir = minetest.dir_to_facedir(placer:get_look_dir()) local fdir = minetest.dir_to_facedir(placer:get_look_dir())
local undernode = minetest.get_node(under) local undernode = minetest.get_node(under)
local abovenode = minetest.get_node(above)
local uname = undernode.name local uname = undernode.name
local aname = abovenode.name
local isabove = (above.x == under.x) and (above.z == under.z) and (pitch > 0) local isabove = (above.x == under.x) and (above.z == under.z) and (pitch > 0)
local pos1 = above local pos1 = above
@ -105,6 +103,7 @@ if minetest.get_modpath("mesecons") then
} }
end end
--[[
local pipes_devicelist = { local pipes_devicelist = {
"pump", "pump",
"valve", "valve",
@ -120,14 +119,15 @@ local pipes_devicelist = {
"storage_tank_9", "storage_tank_9",
"storage_tank_10" "storage_tank_10"
} }
--]]
-- Now define the nodes. -- Now define the nodes.
local states = { "on", "off" } local states = { "on", "off" }
local dgroups = ""
for s in ipairs(states) do for s in ipairs(states) do
local dgroups
if states[s] == "off" then if states[s] == "off" then
dgroups = {snappy=3, pipe=1} dgroups = {snappy=3, pipe=1}
else else
@ -187,11 +187,11 @@ for s in ipairs(states) do
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 } fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 }
}, },
collision_box = { collision_box = {
type = "fixed", type = "fixed",
fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 } fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 }
}, },
groups = dgroups, groups = dgroups,
@ -233,11 +233,11 @@ minetest.register_node(nodename_valve_loaded, {
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 } fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 }
}, },
collision_box = { collision_box = {
type = "fixed", type = "fixed",
fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 } fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 }
}, },
groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
@ -465,7 +465,7 @@ minetest.register_node(nodename_sensor_empty, {
end, end,
on_construct = function(pos) on_construct = function(pos)
if mesecon then if mesecon then
mesecon.receptor_off(pos, rules) mesecon.receptor_off(pos, rules)
end end
end, end,
selection_box = { selection_box = {
@ -504,7 +504,7 @@ minetest.register_node(nodename_sensor_loaded, {
end, end,
on_construct = function(pos) on_construct = function(pos)
if mesecon then if mesecon then
mesecon.receptor_on(pos, rules) mesecon.receptor_on(pos, rules)
end end
end, end,
selection_box = { selection_box = {
@ -626,7 +626,7 @@ minetest.register_node(nodename_fountain_empty, {
end, end,
on_construct = function(pos) on_construct = function(pos)
if mesecon then if mesecon then
mesecon.receptor_on(pos, rules) mesecon.receptor_on(pos, rules)
end end
end, end,
selection_box = { selection_box = {
@ -661,7 +661,7 @@ minetest.register_node(nodename_fountain_loaded, {
end, end,
on_construct = function(pos) on_construct = function(pos)
if mesecon then if mesecon then
mesecon.receptor_on(pos, rules) mesecon.receptor_on(pos, rules)
end end
end, end,
selection_box = { selection_box = {

View File

@ -1,10 +1,6 @@
local S = minetest.get_translator("pipeworks") local S = minetest.get_translator("pipeworks")
local fs_helpers = pipeworks.fs_helpers local fs_helpers = pipeworks.fs_helpers
local function delay(x)
return (function() return x end)
end
local function set_filter_infotext(data, meta) local function set_filter_infotext(data, meta)
local infotext = S("@1 Filter-Injector", data.wise_desc) local infotext = S("@1 Filter-Injector", data.wise_desc)
if meta:get_int("slotseq_mode") == 2 then if meta:get_int("slotseq_mode") == 2 then

View File

@ -60,8 +60,8 @@ pipeworks.check_for_inflows = function(pos,node)
end end
end end
end end
if newnode then if newnode then
minetest.add_node(pos,{name=newnode, param2 = node.param2}) minetest.add_node(pos,{name=newnode, param2 = node.param2})
minetest.get_meta(pos):set_string("source",minetest.pos_to_string(source)) minetest.get_meta(pos):set_string("source",minetest.pos_to_string(source))
end end
end end
@ -75,15 +75,15 @@ pipeworks.check_sources = function(pos,node)
newnode = string.gsub(node.name,"loaded","empty") newnode = string.gsub(node.name,"loaded","empty")
end end
if newnode then if newnode then
minetest.add_node(pos,{name=newnode, param2 = node.param2}) minetest.add_node(pos,{name=newnode, param2 = node.param2})
minetest.get_meta(pos):set_string("source","") minetest.get_meta(pos):set_string("source","")
end end
end end
pipeworks.spigot_check = function(pos, node) pipeworks.spigot_check = function(pos, node)
local belowname = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name local belowname = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name
if belowname and (belowname == "air" or belowname == "default:water_flowing" or belowname == "default:water_source") then if belowname and (belowname == "air" or belowname == "default:water_flowing" or belowname == "default:water_source") then
local spigotname = minetest.get_node(pos).name local spigotname = minetest.get_node(pos).name
local fdir=node.param2 % 4 local fdir=node.param2 % 4
local check = { local check = {
@ -113,7 +113,7 @@ end
pipeworks.fountainhead_check = function(pos, node) pipeworks.fountainhead_check = function(pos, node)
local abovename = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}).name 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 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 fountainhead_name = minetest.get_node(pos).name
local near_node = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}) 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 near_node and string.find(near_node.name, "_loaded") then

View File

@ -6,8 +6,6 @@
pipeworks = {} pipeworks = {}
local DEBUG = false
pipeworks.worldpath = minetest.get_worldpath() pipeworks.worldpath = minetest.get_worldpath()
pipeworks.modpath = minetest.get_modpath("pipeworks") pipeworks.modpath = minetest.get_modpath("pipeworks")
local S = minetest.get_translator("pipeworks") local S = minetest.get_translator("pipeworks")

View File

@ -42,7 +42,7 @@ minetest.register_globalstep(function(dtime)
return return
end end
tube_item_count = {} tube_item_count = {}
for id, entity in pairs(luaentity.entities) do for _, entity in pairs(luaentity.entities) do
if entity.name == "pipeworks:tubed_item" then if entity.name == "pipeworks:tubed_item" then
local h = minetest.hash_node_position(vector.round(entity._pos)) local h = minetest.hash_node_position(vector.round(entity._pos))
tube_item_count[h] = (tube_item_count[h] or 0) + 1 tube_item_count[h] = (tube_item_count[h] or 0) + 1
@ -194,6 +194,7 @@ minetest.register_entity("pipeworks:tubed_item", {
from_data = function(self, itemstring) from_data = function(self, itemstring)
local stack = ItemStack(itemstring) local stack = ItemStack(itemstring)
--[[
local itemtable = stack:to_table() local itemtable = stack:to_table()
local itemname = nil local itemname = nil
if itemtable then if itemtable then
@ -205,6 +206,7 @@ minetest.register_entity("pipeworks:tubed_item", {
item_texture = minetest.registered_items[itemname].inventory_image item_texture = minetest.registered_items[itemname].inventory_image
item_type = minetest.registered_items[itemname].type item_type = minetest.registered_items[itemname].type
end end
--]]
self.object:set_properties({ self.object:set_properties({
is_visible = true, is_visible = true,
textures = {stack:get_name()} textures = {stack:get_name()}
@ -391,7 +393,7 @@ if minetest.get_modpath("mesecons_mvps") then
for _, n in ipairs(moved_nodes) do for _, n in ipairs(moved_nodes) do
moved[minetest.hash_node_position(n.oldpos)] = vector.subtract(n.pos, n.oldpos) moved[minetest.hash_node_position(n.oldpos)] = vector.subtract(n.pos, n.oldpos)
end end
for id, entity in pairs(luaentity.entities) do for _, entity in pairs(luaentity.entities) do
if entity.name == "pipeworks:tubed_item" then if entity.name == "pipeworks:tubed_item" then
local pos = entity:get_pos() local pos = entity:get_pos()
local rpos = vector.round(pos) local rpos = vector.round(pos)

View File

@ -1,6 +1,6 @@
local S = minetest.get_translator("pipeworks") local S = minetest.get_translator("pipeworks")
if not minetest.get_modpath("auto_tree_tap") and if not minetest.get_modpath("auto_tree_tap") and
minetest.get_modpath("technic") then minetest.get_modpath("technic") then
minetest.register_abm({ minetest.register_abm({
@ -38,10 +38,10 @@ if not minetest.get_modpath("auto_tree_tap") and
after_place_node = function (pos, placer) after_place_node = function (pos, placer)
pipeworks.scan_for_tube_objects(pos, placer) pipeworks.scan_for_tube_objects(pos, placer)
local placer_pos = placer:get_pos() local placer_pos = placer:get_pos()
--correct for the player's height --correct for the player's height
if placer:is_player() then placer_pos.y = placer_pos.y + 1.5 end if placer:is_player() then placer_pos.y = placer_pos.y + 1.5 end
--correct for 6d facedir --correct for 6d facedir
if placer_pos then if placer_pos then
local dir = { local dir = {

View File

@ -969,7 +969,7 @@ for white = 0, 1 do
can_go = function(pos, node, velocity, stack) can_go = function(pos, node, velocity, stack)
local src = {name = nil} local src = {name = nil}
-- add color of the incoming tube explicitly; referring to rules, in case they change later -- add color of the incoming tube explicitly; referring to rules, in case they change later
for color, rule in pairs(rules) do for _, rule in pairs(rules) do
if (-velocity.x == rule.x and -velocity.y == rule.y and -velocity.z == rule.z) then if (-velocity.x == rule.x and -velocity.y == rule.y and -velocity.z == rule.z) then
src.name = rule.name src.name = rule.name
break break

View File

@ -9,16 +9,16 @@ local filename = minetest.get_worldpath().."/luaentities"
local function read_file() local function read_file()
local f = io.open(filename, "r") local f = io.open(filename, "r")
if f == nil then return {} end if f == nil then return {} end
local t = f:read("*all") local t = f:read("*all")
f:close() f:close()
if t == "" or t == nil then return {} end if t == "" or t == nil then return {} end
return minetest.deserialize(t) or {} return minetest.deserialize(t) or {}
end end
local function write_file(tbl) local function write_file(tbl)
local f = io.open(filename, "w") local f = io.open(filename, "w")
f:write(minetest.serialize(tbl)) f:write(minetest.serialize(tbl))
f:close() f:close()
end end
local function read_entities() local function read_entities()
@ -36,7 +36,7 @@ local function read_entities()
y=math.min(30927,y) y=math.min(30927,y)
z=math.min(30927,z) z=math.min(30927,z)
entity.start_pos.x = x entity.start_pos.x = x
entity.start_pos.y = y entity.start_pos.y = y
entity.start_pos.z = z entity.start_pos.z = z
@ -211,7 +211,7 @@ local entitydef_default = {
end end
end, end,
get_velocity = function(self) get_velocity = function(self)
return vector.new(self._velocity) return vector.new(self._velocity)
end, end,
set_velocity = function(self, velocity) set_velocity = function(self, velocity)
self._velocity = vector.new(velocity) self._velocity = vector.new(velocity)
@ -289,7 +289,7 @@ function luaentity.add_entity(pos, name)
_acceleration = {x = 0, y = 0, z = 0}, _acceleration = {x = 0, y = 0, z = 0},
_attached_entities = {}, _attached_entities = {},
} }
local prototype = luaentity.registered_entities[name] local prototype = luaentity.registered_entities[name]
setmetatable(entity, prototype) -- Default to prototype for other methods setmetatable(entity, prototype) -- Default to prototype for other methods
luaentity.entities[index] = entity luaentity.entities[index] = entity
@ -318,7 +318,7 @@ end
function luaentity.get_objects_inside_radius(pos, radius) function luaentity.get_objects_inside_radius(pos, radius)
local objects = {} local objects = {}
local index = 1 local index = 1
for id, entity in pairs(luaentity.entities) do for _, entity in pairs(luaentity.entities) do
if vector.distance(pos, entity:get_pos()) <= radius then if vector.distance(pos, entity:get_pos()) <= radius then
objects[index] = entity objects[index] = entity
index = index + 1 index = index + 1
@ -330,7 +330,7 @@ local move_entities_globalstep_part2 = function(dtime)
if not luaentity.entities then if not luaentity.entities then
luaentity.entities = read_entities() luaentity.entities = read_entities()
end end
for id, entity in pairs(luaentity.entities) do for _, entity in pairs(luaentity.entities) do
local master = entity._attached_entities_master local master = entity._attached_entities_master
local master_def = master and entity._attached_entities[master] local master_def = master and entity._attached_entities[master]
local master_entity = master_def and master_def.entity local master_entity = master_def and master_def.entity

View File

@ -11,11 +11,11 @@ local new_flow_logic_register = pipeworks.flowables.register
local polys = "" local polys = ""
if pipeworks.enable_lowpoly then polys = "_lowpoly" end if pipeworks.enable_lowpoly then polys = "_lowpoly" end
local vti = {4, 3, 2, 1, 6, 5} --~ local vti = {4, 3, 2, 1, 6, 5}
local cconnects = {{}, {1}, {1, 2}, {1, 3}, {1, 3, 5}, {1, 2, 3}, {1, 2, 3, 5}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}} local cconnects = {{}, {1}, {1, 2}, {1, 3}, {1, 3, 5}, {1, 2, 3}, {1, 2, 3, 5}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}}
for index, connects in ipairs(cconnects) do for index, connects in ipairs(cconnects) do
local outsel = {} local outsel = {}
local jx = 0 local jx = 0
local jy = 0 local jy = 0
local jz = 0 local jz = 0
@ -30,11 +30,13 @@ for index, connects in ipairs(cconnects) do
table.insert(outsel, pipeworks.pipe_selectboxes[v]) table.insert(outsel, pipeworks.pipe_selectboxes[v])
end end
--[[
if #connects == 1 then if #connects == 1 then
local v = connects[1] local v = connects[1]
v = v-1 + 2*(v%2) -- Opposite side v = v-1 + 2*(v%2) -- Opposite side
end end
--]]
local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1} local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1}
local pipedesc = S("Pipe Segment").." "..dump(connects) local pipedesc = S("Pipe Segment").." "..dump(connects)
@ -42,11 +44,11 @@ for index, connects in ipairs(cconnects) do
pgroups = {snappy = 3, tube = 1} pgroups = {snappy = 3, tube = 1}
pipedesc = S("Pipe Segment") pipedesc = S("Pipe Segment")
end end
local outimg_e = { "pipeworks_pipe_plain.png" } local outimg_e = { "pipeworks_pipe_plain.png" }
local outimg_l = { "pipeworks_pipe_plain.png" } local outimg_l = { "pipeworks_pipe_plain.png" }
if index == 3 then if index == 3 then
outimg_e = { "pipeworks_pipe_3_empty.png" } outimg_e = { "pipeworks_pipe_3_empty.png" }
outimg_l = { "pipeworks_pipe_3_loaded.png" } outimg_l = { "pipeworks_pipe_3_loaded.png" }
end end
@ -88,7 +90,7 @@ for index, connects in ipairs(cconnects) do
check_for_horiz_pole = pipeworks.check_for_horiz_pipe, check_for_horiz_pole = pipeworks.check_for_horiz_pipe,
pipenumber = index pipenumber = index
}) })
local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1} local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1}
minetest.register_node("pipeworks:pipe_"..index.."_loaded", { minetest.register_node("pipeworks:pipe_"..index.."_loaded", {
@ -123,7 +125,7 @@ for index, connects in ipairs(cconnects) do
check_for_horiz_pole = pipeworks.check_for_horiz_pipe, check_for_horiz_pole = pipeworks.check_for_horiz_pipe,
pipenumber = index pipenumber = index
}) })
local emptypipe = "pipeworks:pipe_"..index.."_empty" local emptypipe = "pipeworks:pipe_"..index.."_empty"
local fullpipe = "pipeworks:pipe_"..index.."_loaded" local fullpipe = "pipeworks:pipe_"..index.."_loaded"
table.insert(pipes_empty_nodenames, emptypipe) table.insert(pipes_empty_nodenames, emptypipe)
@ -239,7 +241,7 @@ minetest.register_abm({
nodenames = {"pipeworks:spigot","pipeworks:spigot_pouring"}, nodenames = {"pipeworks:spigot","pipeworks:spigot_pouring"},
interval = 1, interval = 1,
chance = 1, chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider) action = function(pos, node, active_object_count, active_object_count_wider)
pipeworks.spigot_check(pos,node) pipeworks.spigot_check(pos,node)
end end
}) })
@ -248,7 +250,7 @@ minetest.register_abm({
nodenames = {"pipeworks:fountainhead","pipeworks:fountainhead_pouring"}, nodenames = {"pipeworks:fountainhead","pipeworks:fountainhead_pouring"},
interval = 1, interval = 1,
chance = 1, chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider) action = function(pos, node, active_object_count, active_object_count_wider)
pipeworks.fountainhead_check(pos,node) pipeworks.fountainhead_check(pos,node)
end end
}) })

View File

@ -29,7 +29,7 @@ end
local formatvec = function(vec) local sep="," return "("..tostring(vec.x)..sep..tostring(vec.y)..sep..tostring(vec.z)..")" end --~ local formatvec = function(vec) local sep="," return "("..tostring(vec.x)..sep..tostring(vec.y)..sep..tostring(vec.z)..")" end
@ -39,7 +39,7 @@ local formatvec = function(vec) local sep="," return "("..tostring(vec.x)..sep..
local check_for_liquids_v2 = function(pos, limit) local check_for_liquids_v2 = function(pos, limit)
local coords = make_coords_offsets(pos, false) local coords = make_coords_offsets(pos, false)
local total = 0 local total = 0
for index, tpos in ipairs(coords) do for _, tpos in ipairs(coords) do
if total >= limit then break end if total >= limit then break end
local name = minetest.get_node(tpos).name local name = minetest.get_node(tpos).name
if name == "default:water_source" then if name == "default:water_source" then
@ -69,11 +69,13 @@ end
-- logging is unreliable when something is crashing... -- logging is unreliable when something is crashing...
--[[
local nilexplode = function(caller, label, value) local nilexplode = function(caller, label, value)
if value == nil then if value == nil then
error(caller..": "..label.." was nil") error(caller..": "..label.." was nil")
end end
end end
--]]
@ -151,7 +153,7 @@ local get_neighbour_positions = function(pos, node)
-- then, check each possible neighbour to see if they can be reached from this node. -- then, check each possible neighbour to see if they can be reached from this node.
local connections = {} local connections = {}
for index, offset in ipairs(candidates) do for _, offset in ipairs(candidates) do
local npos = vector.add(pos, offset) local npos = vector.add(pos, offset)
local neighbour = minetest.get_node(npos) local neighbour = minetest.get_node(npos)
local nodename = neighbour.name local nodename = neighbour.name
@ -185,13 +187,12 @@ flowlogic.balance_pressure = function(pos, node, currentpressure)
-- local dname = "flowlogic.balance_pressure()@"..formatvec(pos).." " -- local dname = "flowlogic.balance_pressure()@"..formatvec(pos).." "
-- check the pressure of all nearby flowable nodes, and average it out. -- check the pressure of all nearby flowable nodes, and average it out.
-- pressure handles to average over
local connections = {}
-- unconditionally include self in nodes to average over. -- unconditionally include self in nodes to average over.
-- result of averaging will be returned as new pressure for main flow logic callback -- result of averaging will be returned as new pressure for main flow logic callback
local totalv = currentpressure local totalv = currentpressure
local totalc = 1 local totalc = 1
-- pressure handles to average over
local connections = get_neighbour_positions(pos, node) local connections = get_neighbour_positions(pos, node)
-- for each neighbour, add neighbour's pressure to the total to balance out -- for each neighbour, add neighbour's pressure to the total to balance out
@ -287,7 +288,7 @@ flowlogic.run_output = function(pos, node, currentpressure, oldpressure, outputd
local upper = outputdef.upper local upper = outputdef.upper
local lower = outputdef.lower local lower = outputdef.lower
local result = currentpressure local result = currentpressure
local threshold = nil local threshold
if finitemode then threshold = lower else threshold = upper end if finitemode then threshold = lower else threshold = upper end
if currentpressure > threshold then if currentpressure > threshold then
local takenpressure = outputdef.outputfn(pos, node, currentpressure, finitemode) local takenpressure = outputdef.outputfn(pos, node, currentpressure, finitemode)
@ -316,7 +317,7 @@ flowlogic.run_transition = function(node, currentpressure)
local nodename_prev = simplesetdef[1].nodename local nodename_prev = simplesetdef[1].nodename
local result_nodename = node.name local result_nodename = node.name
for index, element in ipairs(simplesetdef) do for _, element in ipairs(simplesetdef) do
-- find the highest element that is below the current pressure. -- find the highest element that is below the current pressure.
local threshold = element.threshold local threshold = element.threshold
if threshold > currentpressure then if threshold > currentpressure then

View File

@ -26,8 +26,8 @@ local insertbase = function(nodename)
end end
local regwarning = function(kind, nodename) local regwarning = function(kind, nodename)
local tail = "" --~ local tail = ""
if pipeworks.toggles.pipe_mode ~= "pressure" then tail = " but pressure logic not enabled" end --~ if pipeworks.toggles.pipe_mode ~= "pressure" then tail = " but pressure logic not enabled" end
--pipeworks.logger(kind.." flow logic registry requested for "..nodename..tail) --pipeworks.logger(kind.." flow logic registry requested for "..nodename..tail)
end end
@ -106,7 +106,7 @@ register.directional_horizonal_rotate = function(nodename, doubleended)
end end
local directionfn = function(node, direction) local directionfn = function(node, direction)
local result = false local result = false
for index, endvec in ipairs(getends(node)) do for _, endvec in ipairs(getends(node)) do
if vector.equals(direction, endvec) then result = true end if vector.equals(direction, endvec) then result = true end
end end
return result return result

View File

@ -23,7 +23,7 @@ end
local function migrate_tube_db() local function migrate_tube_db()
local tmp_db = {} local tmp_db = {}
tp_tube_db.version = nil tp_tube_db.version = nil
for key, val in pairs(tp_tube_db) do for _, val in pairs(tp_tube_db) do
if(val.channel ~= "") then -- skip unconfigured tubes if(val.channel ~= "") then -- skip unconfigured tubes
tmp_db[hash(val)] = val tmp_db[hash(val)] = val
end end
@ -193,7 +193,7 @@ pipeworks.register_tube("pipeworks:teleport_tube", {
minetest.chat_send_player(sender_name, S("Sorry, channel '@1' is reserved for exclusive use by @2", minetest.chat_send_player(sender_name, S("Sorry, channel '@1' is reserved for exclusive use by @2",
new_channel, name)) new_channel, name))
return return
--channels starting with '[name];' can be used by other players, but cannot be received from --channels starting with '[name];' can be used by other players, but cannot be received from
elseif mode == ";" and (fields.cr1 or (can_receive ~= 0 and not fields.cr0)) then elseif mode == ";" and (fields.cr1 or (can_receive ~= 0 and not fields.cr0)) then
minetest.chat_send_player(sender_name, S("Sorry, receiving from channel '@1' is reserved for @2", minetest.chat_send_player(sender_name, S("Sorry, receiving from channel '@1' is reserved for @2",

View File

@ -1,7 +1,7 @@
local S = minetest.get_translator("pipeworks") local S = minetest.get_translator("pipeworks")
minetest.register_node("pipeworks:trashcan", { minetest.register_node("pipeworks:trashcan", {
description = S("Trash Can"), description = S("Trash Can"),
drawtype = "normal", drawtype = "normal",
tiles = { tiles = {
"pipeworks_trashcan_bottom.png", "pipeworks_trashcan_bottom.png",
"pipeworks_trashcan_bottom.png", "pipeworks_trashcan_bottom.png",
@ -9,15 +9,15 @@ minetest.register_node("pipeworks:trashcan", {
"pipeworks_trashcan_side.png", "pipeworks_trashcan_side.png",
"pipeworks_trashcan_side.png", "pipeworks_trashcan_side.png",
"pipeworks_trashcan_side.png", "pipeworks_trashcan_side.png",
}, },
groups = {snappy = 3, tubedevice = 1, tubedevice_receiver = 1}, groups = {snappy = 3, tubedevice = 1, tubedevice_receiver = 1},
tube = { tube = {
insert_object = function(pos, node, stack, direction) insert_object = function(pos, node, stack, direction)
return ItemStack("") return ItemStack("")
end, end,
connect_sides = {left = 1, right = 1, front = 1, back = 1, top = 1, bottom = 1}, connect_sides = {left = 1, right = 1, front = 1, back = 1, top = 1, bottom = 1},
priority = 1, -- Lower than anything else priority = 1, -- Lower than anything else
}, },
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", meta:set_string("formspec",
@ -33,7 +33,7 @@ minetest.register_node("pipeworks:trashcan", {
"listring[]") "listring[]")
meta:set_string("infotext", S("Trash Can")) meta:set_string("infotext", S("Trash Can"))
meta:get_inventory():set_size("trash", 1) meta:get_inventory():set_size("trash", 1)
end, end,
after_place_node = pipeworks.after_place, after_place_node = pipeworks.after_place,
after_dig_node = pipeworks.after_dig, after_dig_node = pipeworks.after_dig,
on_metadata_inventory_put = function(pos, listname, index, stack, player) on_metadata_inventory_put = function(pos, listname, index, stack, player)

View File

@ -1,10 +1,6 @@
local S = minetest.get_translator("pipeworks") local S = minetest.get_translator("pipeworks")
local assumed_eye_pos = vector.new(0, 1.5, 0) local assumed_eye_pos = vector.new(0, 1.5, 0)
local function vector_copy(v)
return { x = v.x, y = v.y, z = v.z }
end
local function delay(x) local function delay(x)
return (function() return x end) return (function() return x end)
end end
@ -353,7 +349,7 @@ if pipeworks.enable_node_breaker then
{pos=pointed_thing.under, gain=sound.gain}) {pos=pointed_thing.under, gain=sound.gain})
end end
wieldstack = virtplayer:get_wielded_item() wieldstack = virtplayer:get_wielded_item()
else --~ else
--pipeworks.logger(dname.."couldn't dig node!") --pipeworks.logger(dname.."couldn't dig node!")
end end
end end