forked from mtcontrib/pipeworks
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
7ee74133e1
@ -193,8 +193,9 @@ local function update_meta(meta, enabled)
|
|||||||
"listring[context;dst]" ..
|
"listring[context;dst]" ..
|
||||||
"listring[current_player;main]"
|
"listring[current_player;main]"
|
||||||
if minetest.get_modpath("digilines") then
|
if minetest.get_modpath("digilines") then
|
||||||
fs = fs.."field[1,3.5;4,1;channel;"..S("Channel")..";${channel}]"
|
fs = fs.."field[0.3,3.5;4.5,1;channel;"..S("Channel")..";${channel}]"..
|
||||||
fs = fs.."button_exit[5,3.2;2,1;save;"..S("Save").."]"
|
"button[4.5,3.2;1.5,1;set_channel;"..S("Set").."]"..
|
||||||
|
"button_exit[6,3.2;2,1;close;"..S("Close").."]"
|
||||||
end
|
end
|
||||||
meta:set_string("formspec",fs)
|
meta:set_string("formspec",fs)
|
||||||
|
|
||||||
@ -279,7 +280,7 @@ minetest.register_node("pipeworks:autocrafter", {
|
|||||||
update_meta(meta, false)
|
update_meta(meta, false)
|
||||||
end,
|
end,
|
||||||
on_receive_fields = function(pos, formname, fields, sender)
|
on_receive_fields = function(pos, formname, fields, sender)
|
||||||
if (fields.quit and not fields.key_enter_field)
|
if not fields.channel or (fields.quit and not fields.key_enter_field)
|
||||||
or not pipeworks.may_configure(pos, sender) then
|
or not pipeworks.may_configure(pos, sender) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -291,8 +292,9 @@ minetest.register_node("pipeworks:autocrafter", {
|
|||||||
if update_meta(meta, true) then
|
if update_meta(meta, true) then
|
||||||
start_crafter(pos)
|
start_crafter(pos)
|
||||||
end
|
end
|
||||||
elseif fields.save then
|
end
|
||||||
meta:set_string("channel",fields.channel)
|
if fields.channel then
|
||||||
|
meta:set_string("channel", fields.channel)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
can_dig = function(pos, player)
|
can_dig = function(pos, player)
|
||||||
|
2
init.lua
2
init.lua
@ -151,7 +151,7 @@ minetest.register_alias("pipeworks:pipe", "pipeworks:pipe_110000_empty")
|
|||||||
|
|
||||||
-- Unified Inventory categories integration
|
-- Unified Inventory categories integration
|
||||||
|
|
||||||
if unified_inventory and unified_inventory.registered_categories then
|
if minetest.global_exists("unified_inventory") and unified_inventory.registered_categories then
|
||||||
if not unified_inventory.registered_categories["automation"] then
|
if not unified_inventory.registered_categories["automation"] then
|
||||||
unified_inventory.register_category("automation", {
|
unified_inventory.register_category("automation", {
|
||||||
symbol = "pipeworks:lua_tube000000",
|
symbol = "pipeworks:lua_tube000000",
|
||||||
|
@ -4,6 +4,9 @@ local filename=minetest.get_worldpath() .. "/teleport_tubes"
|
|||||||
local tp_tube_db = nil -- nil forces a read
|
local tp_tube_db = nil -- nil forces a read
|
||||||
local tp_tube_db_version = 2.0
|
local tp_tube_db_version = 2.0
|
||||||
|
|
||||||
|
-- cached rceiver list: hash(pos) => {receivers}
|
||||||
|
local cache = {}
|
||||||
|
|
||||||
local function hash(pos)
|
local function hash(pos)
|
||||||
return string.format("%.30g", minetest.hash_node_position(pos))
|
return string.format("%.30g", minetest.hash_node_position(pos))
|
||||||
end
|
end
|
||||||
@ -18,6 +21,8 @@ local function save_tube_db()
|
|||||||
else
|
else
|
||||||
error(err)
|
error(err)
|
||||||
end
|
end
|
||||||
|
-- reset tp-tube cache
|
||||||
|
cache = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
local function migrate_tube_db()
|
local function migrate_tube_db()
|
||||||
@ -101,6 +106,12 @@ local function read_node_with_vm(pos)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function get_receivers(pos, channel)
|
local function get_receivers(pos, channel)
|
||||||
|
local hash = minetest.hash_node_position(pos)
|
||||||
|
if cache[hash] then
|
||||||
|
-- re-use cached result
|
||||||
|
return cache[hash]
|
||||||
|
end
|
||||||
|
|
||||||
local tubes = tp_tube_db or read_tube_db()
|
local tubes = tp_tube_db or read_tube_db()
|
||||||
local receivers = {}
|
local receivers = {}
|
||||||
local dirty = false
|
local dirty = false
|
||||||
@ -121,6 +132,8 @@ local function get_receivers(pos, channel)
|
|||||||
if dirty then
|
if dirty then
|
||||||
save_tube_db()
|
save_tube_db()
|
||||||
end
|
end
|
||||||
|
-- cache the result for next time
|
||||||
|
cache[hash] = receivers
|
||||||
return receivers
|
return receivers
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user